Sowohl positive als auch negative Bewertungen können die Kaufentscheidung eines Käufers beeinflussen.
Laut einer externen Studie suchen 82% der Onlinekäufer aktiv nach negativen vor einem Kauf lesen. Diese negativen Bewertungen sind hilfreich für und für Unternehmen, da negative Bewertungen dazu beitragen können, die Rücknahmequoten senken und Herstellern helfen, ihre Produkte zu verbessern.
Hier sind einige Möglichkeiten, wie Sie die Qualität der Erfahrungsberichte verbessern können:
- Prüfen Sie jede Rezension auf unangemessene Inhalte, bevor Sie sie einreichen. Wir könnten Nutzer dazu auffordern, anstößige Formulierungen und andere nicht hilfreiche Anmerkungen zu entfernen, damit ihre Rezensionen anderen Nutzern bei der Kaufentscheidung helfen.
- Negativ: Diese Tasche ist ätzend und ich hasse sie.
- Negativ mit nützlichem Feedback: Die Reißverschlüsse sind sehr steif und das Material fühlt sich billig an. Ich habe diese Tasche zurückgegeben.
- Sie können anhand der in der Rezension verwendeten Sprache automatisch eine Bewertung erstellen.
- Stellen Sie fest, ob die Rezension negativ oder positiv ist.
![Screenshot einer Beispielrezension mit Stimmung und Bewertung](https://developer.chrome.com/static/docs/ai/images/leave-a-review.png?authuser=2&hl=de)
Letztendlich sollte das letzte Wort zur Produktbewertung den Nutzenden folgen.
Das folgende Codelab bietet Lösungen, die direkt auf dem Gerät im Browser ausgeführt werden. Keine KI Kenntnisse zur Entwicklung, Server oder API-Schlüssel erforderlich.
Vorbereitung
Während serverseitige KI mit Lösungen (wie dem Gemini API oder OpenAI API) bieten robuste Lösungen für Anwendungen konzentrieren wir uns in diesem Leitfaden auf die On-Device-Web-KI. Web-KI auf dem Gerät bei der Ausführung von KI-Modellen im Browser, um die Nutzung für Webnutzer zu verbessern ohne Server-Roundtrips.
In diesem Codelab nutzen wir verschiedene Techniken, um dir zu zeigen, für On-Device-Web-KI.
Wir verwenden die folgenden Bibliotheken und Modelle:
- TensforFlow.js zur Analyse von unangemessenen Äußerungen. TensorFlow.js ist eine Open-Source-Bibliothek für maschinelles Lernen für Inferenz und Training im Web.
- transformers.js für die Sentimentanalyse Transformers.js ist eine Web-KI-Bibliothek von Hugging Face.
- Gemma 2B für Bewertungen. Gemma ist eine Familie leichtgewichtiger, offener Modelle, die auf der Forschung und Technologie basieren, mit der Google seine Gemini-Modelle erstellt hat. Um Gemma im Browser auszuführen, verwenden wir es mit der experimentellen LLM Inference API von MediaPipe.
UX- und Sicherheitsaspekte
Für eine optimale Nutzererfahrung und Sicherheit sind einige Dinge zu beachten:
- Der Nutzer darf die Bewertung bearbeiten. Letztendlich sollten die Nutzenden auf die Produktbewertung.
- Machen Sie den Nutzern deutlich, dass Bewertung und Rezensionen automatisiert sind.
- Nutzer dürfen Rezensionen posten, die als unangemessen eingestuft werden, aber eine zweite Überprüfung durchführen auf dem Server. So vermeiden Sie frustrierende Erfahrungen mit einer Rezension, die als nicht unangemessen empfunden wird. fälschlicherweise als unangemessen (falsch positives Ergebnis) eingestuft. Das gilt auch für Fälle, ein böswilliger Nutzer es schafft, die clientseitige Prüfung zu umgehen.
- Eine clientseitige Prüfung auf Toxizität ist hilfreich, kann aber umgangen werden. Achten Sie darauf, führen Sie ebenfalls eine Prüfung auf der Serverseite aus.
Toxizität mit TensorFlow.js analysieren
Mit TensorFlow.js können Sie schnell damit beginnen, die Toxizität einer Nutzerbewertung zu analysieren.
- Installieren und import TensorFlow.js-Bibliothek und das Modell für Toxizität.
- Legen Sie eine minimale Vorhersagekonfidenz fest. Der Standardwert ist 0,85.In unserem Beispiel haben wir den Wert auf 0,9 gesetzt.
- Laden Sie das Modell asynchron.
- Klassifizieren Sie die Rezension asynchron. Unser Code identifiziert Vorhersagen, die die für jede Kategorie einen Grenzwert von 0,9.
Dieses Modell kann Toxizität nach Identitätsangriffen, Beleidigung, Obszönitäten usw. kategorisieren.
Beispiel:
import * as toxicity from '@tensorflow-models/toxicity';
// Minimum prediction confidence allowed
const TOXICITY_COMMENT_THRESHOLD = 0.9;
const toxicityModel = await toxicity.load(TOXICITY_COMMENT_THRESHOLD);
const toxicityPredictions = await toxicityModel.classify([review]);
// `predictions` is an array with the raw toxicity probabilities
const isToxic = toxicityPredictions.some(
(prediction) => prediction.results[0].match
);
Sentimentanalyse mit Transformers.js
Installieren und importieren Sie die Transformers.js-Bibliothek.
Sentimentanalyse einrichten Aufgabe mit einer dedizierten Pipeline. Wenn eine Pipeline zum ersten Mal verwendet wird, wird das Modell heruntergeladen und im Cache gespeichert. Von da an sollte die Sentimentanalyse viel schneller ablaufen.
Klassifizieren Sie die Rezension asynchron. Benutzerdefinierten Schwellenwert verwenden, um die Stufe festzulegen die Sie für Ihre Anwendung als nützlich erachten.
Beispiel:
import { pipeline } from '@xenova/transformers';
const SENTIMENT_THRESHOLD = 0.9;
// Create a pipeline (don't block rendering on this function)
const transformersjsClassifierSentiment = await pipeline(
'sentiment-analysis'
);
// When the user finishes typing
const sentimentResult = await transformersjsClassifierSentiment(review);
const { label, score } = sentimentResult[0];
if (score > SENTIMENT_THRESHOLD) {
// The sentiment is `label`
} else {
// Classification is not conclusive
}
Mit Gemma und MediaPipe eine Bewertung vorschlagen
Mit der LLM Inference API können Sie Large Language Models (LLMs) vollständig ausführen, im Browser.
Diese neue Funktion ist in Anbetracht des Arbeitsspeicher- und Anforderungen von LLMs zu berechnen, die über hundertmal größer herkömmliche On-Device-Modelle. Optimierungen im gesamten Geräte-Stack einschließlich neuer Vorgänge, Quantisierung, Caching und Gewichtungsfreigabe. Quelle: „Large Language Models On-Device with MediaPipe and TensorFlow Lite“.
- Installieren und importieren der MediaPipe LLM Inference API.
- Modell herunterladen Hier verwenden wir Gemma 2B, von Kaggle heruntergeladen haben. Gemma 2B ist das kleinste der offenen Modelle von Google.
- Verweisen Sie den Code auf die richtige Modelldatei mit dem Objekt
FilesetResolver
. Dies ist wichtig, weil Generative-AI-Modelle eine bestimmte Verzeichnisstruktur haben können für ihre Assets. - Laden und konfigurieren Sie das Modell mit der LLM-Schnittstelle von MediaPipe. Bereiten Sie die zu verwendendes Modell: den Modellstandort, die bevorzugte Länge der Antworten, und welches Maß an Kreativität bei der Temperatur vorteilhaft ist.
- Geben Sie dem Modell einen Prompt (Beispiel ansehen).
- Warten Sie auf die Antwort des Modells.
- Bewertung parsen: Extrahieren Sie die Bewertung aus der Antwort des Modells.
import { FilesetResolver, LlmInference } from '@mediapipe/tasks-genai';
const mediaPipeGenAi = await FilesetResolver.forGenAiTasks();
const llmInference = await LlmInference.createFromOptions(mediaPipeGenAi, {
baseOptions: {
modelAssetPath: '/gemma-2b-it-gpu-int4.bin',
},
maxTokens: 1000,
topK: 40,
temperature: 0.5,
randomSeed: 101,
});
const prompt = …
const output = await llmInference.generateResponse(prompt);
const int = /\d/;
const ratingAsString = output.match(int)[0];
rating = parseInt(ratingAsString);
Beispielaussage
const prompt = `Analyze a product review, and then based on your analysis give me the
corresponding rating (integer). The rating should be an integer between 1 and 5.
1 is the worst rating, and 5 is the best rating. A strongly dissatisfied review
that only mentions issues should have a rating of 1 (worst). A strongly
satisfied review that only mentions positives and upsides should have a rating
of 5 (best). Be opinionated. Use the full range of possible ratings (1 to 5). \n\n
\n\n
Here are some examples of reviews and their corresponding analyses and ratings:
\n\n
Review: 'Stylish and functional. Not sure how it'll handle rugged outdoor use, but it's perfect for urban exploring.'
Analysis: The reviewer appreciates the product's style and basic functionality. They express some uncertainty about its ruggedness but overall find it suitable for their intended use, resulting in a positive, but not top-tier rating.
Rating (integer): 4
\n\n
Review: 'It's a solid backpack at a decent price. Does the job, but nothing particularly amazing about it.'
Analysis: This reflects an average opinion. The backpack is functional and fulfills its essential purpose. However, the reviewer finds it unremarkable and lacking any standout features deserving of higher praise.
Rating (integer): 3
\n\n
Review: 'The waist belt broke on my first trip! Customer service was unresponsive too. Would not recommend.'
Analysis: A serious product defect and poor customer service experience naturally warrants the lowest possible rating. The reviewer is extremely unsatisfied with both the product and the company.
Rating (integer): 1
\n\n
Review: 'Love how many pockets and compartments it has. Keeps everything organized on long trips. Durable too!'
Analysis: The enthusiastic review highlights specific features the user loves (organization and durability), indicating great satisfaction with the product. This justifies the highest rating.
Rating (integer): 5
\n\n
Review: 'The straps are a bit flimsy, and they started digging into my shoulders under heavy loads.'
Analysis: While not a totally negative review, a significant comfort issue leads the reviewer to rate the product poorly. The straps are a key component of a backpack, and their failure to perform well under load is a major flaw.
Rating (integer): 1
\n\n
Now, here is the review you need to assess:
\n
Review: "${review}" \n`;
Fazit
Es sind keine KI-/ML-Kenntnisse erforderlich. Das Entwerfen eines Prompts erfordert Iterationen, der Rest des Codes ist die Standard-Webentwicklung.
On-Device-Modelle sind ziemlich genau. Wenn Sie die Snippets aus diesem werden Sie feststellen, dass sowohl die Toxizitäts- als auch die Sentimentanalyse genaue Ergebnisse zu liefern. Die Gemma-Bewertungen entsprachen größtenteils dem Gemini-Modell für einige getestete Referenzbewertungen erhalten. Um die Genauigkeit zu überprüfen, weitere Tests erforderlich.
Dennoch ist das Entwerfen des Prompts für Gemma 2B viel Arbeit. Da Gemma 2B ein LLM klein ist, ist ein detaillierter Prompt erforderlich, um zufriedenstellende Ergebnisse zu liefern. als für die Gemini API erforderlich.
Inferenz kann blitzschnell sein. Wenn Sie die Snippets aus diesem Dokument ausführen, sollten Sie bedenken, dass Inferenzen schnell und potenziell schneller als auf einer Reihe von Geräten. Die Inferenzgeschwindigkeit kann jedoch sehr wichtig. Ein gründliches Benchmarking für die Zielgeräte ist erforderlich. Wir erwarten, dass um mit Web GPU, WebAssembly und Bibliotheksupdates immer schneller zu werden. Zum Beispiel fügt Transformers.js Web-GPU-Unterstützung in v3 was die Inferenz auf dem Gerät um ein Vielfaches beschleunigen kann.
Downloadgrößen können sehr groß sein. Inferenzen im Browser sind schnell, Das Laden von KI-Modellen kann eine Herausforderung sein. Um browserinterne KI zu nutzen, benötigen Sie sowohl eine Bibliothek als auch ein Modell.
Das Tensorflow-Modell für Toxizität (ein klassisches Natural Language Processing-Modell) auf ein paar Kilobyte basiert, werden generative KI-Modelle wie die Standard- Das Sentimentanalysemodell erreicht 60 MB. Large Language Models wie Gemma können so groß wie 1,3 GB. Dieser Wert überschreitet den Medianwert Webseitengröße: 2,2 MB, bereits deutlich größer als für die beste Leistung empfohlen. Auf dem Gerät Generative AI ist in bestimmten Szenarien brauchbar.
Die generative KI im Web entwickelt sich ständig weiter. Kleiner, sind weboptimierte Modelle voraussichtlich zu erhalten.
Nächste Schritte
Chrome testet derzeit eine weitere Möglichkeit, Generative AI im Browser auszuführen. Sie können sich für das Early Preview-Programm registrieren. um sie zu testen.