يمكن أن تساعد المراجعات الإيجابية والسلبية على اتخاذ قرار الشراء الذي يتخذه المشتري.
وفقًا لأبحاث خارجية، %82 من المتسوّقين على الإنترنت يبحثون بشكل نشط عن نتائج سلبية المراجعات قبل إجراء عملية شراء. هذه المراجعات السلبية مفيدة العملاء والأنشطة التجارية، حيث يمكن أن يساعد توفر المراجعات السلبية في في تقليل معدلات الإرجاع ومساعدة صنّاع المحتوى على تحسين منتجاتهم.
وفي ما يلي بعض الطرق التي يمكنك من خلالها تحسين جودة المراجعة:
- قبل إرسالها، تحقَّق من كل مراجعة للتأكّد من خلوها من اللغة غير اللائقة. ويمكننا تشجيع المستخدمين على إزالة اللغة المسيئة بالإضافة إلى الملاحظات الأخرى غير المفيدة، حتى تساعد مراجعاتهم المستخدمين الآخرين على اتخاذ قرار الشراء بشكل أفضل.
- سلبية: هذه الحقيبة مقرفة، وأنا أكرهها.
- سلاسة مع ملاحظات مفيدة: السحّابات صلبة للغاية والمواد منخفضة التكلفة. لقد أرجعت هذه الحقيبة.
- يمكنك إنشاء تقييم تلقائيًا استنادًا إلى اللغة المستخدَمة في المراجعة.
- تحديد ما إذا كانت المراجعة سلبية أو إيجابية
![لقطة شاشة لمثال مراجعة تتضمّن رأيًا وتقييمًا بالنجوم.](https://developer.chrome.com/static/docs/ai/images/leave-a-review.png?authuser=19&hl=ar)
في النهاية، يجب أن يكون للمستخدم الكلمة الأخيرة في تقييم المنتج.
يوفِّر الدرس التطبيقي التالي حول الترميز حلولاً على الجهاز وفي المتصفِّح. ما مِن تكنولوجيات الذكاء الاصطناعي (AI) مطلوب معرفة التطوير أو الخوادم أو مفاتيح واجهة برمجة التطبيقات.
المتطلبات الأساسية
في حين أن الذكاء الاصطناعي من جانب الخادم مع حلول (مثل Gemini API أو OpenAI API) توفر حلولاً فعّالة العديد من التطبيقات، نركّز في هذا الدليل على تقنيات الذكاء الاصطناعي في الويب على الجهاز فقط. الذكاء الاصطناعي على الويب على الجهاز فقط هو عند تشغيل نماذج الذكاء الاصطناعي في المتصفّح لتحسين تجربة مستخدمي الويب بدون جولات ذهاب وعودة للخادم.
في هذا التمرين المعملي حول الترميز، نستخدم مزيجًا من الأساليب لنعرض لك ما يوجد في صندوق أدواتك. لتكنولوجيات الذكاء الاصطناعي على الويب على الجهاز فقط
نستخدم المكتبات والنماذج التالية:
- TensforFlow.js لتحليل اللغة غير اللائقة. TensorFlow.js هي مكتبة مفتوحة المصدر لتعلُّم الآلة لكل من الاستنتاج والتدريب على الويب.
- transformers.js لتحليل الآراء. Transformers.js هي مكتبة للذكاء الاصطناعي على الويب من Hugging Face.
- Gemma 2B للتقييمات بالنجوم. "جيما" هي مجموعة من النماذج المفتوحة والخفيفة التي تم إنشاؤها استنادًا إلى الأبحاث والتكنولوجيا التي استخدمتها Google لإنشاء نماذج Gemini. لتشغيل Gemma في المتصفّح، نستخدمه مع واجهة برمجة التطبيقات التجريبية لغوية كبيرة (LLM) للاستنتاج من MediaPipe.
اعتبارات تجربة المستخدم والأمان
هناك بعض الاعتبارات لضمان توفير أفضل تجربة للمستخدم وأمانه:
- يجب السماح للمستخدم بتعديل التقييم. في النهاية، ينبغي أن يحصل المستخدم على النتيجة حول تصنيف المنتج.
- وضِّح للمستخدم أنّ التقييمات والمراجعات مبرمَجة.
- السماح للمستخدمين بنشر مراجعة مصنَّفة على أنّها غير لائقة، مع إجراء مراجعة أخرى الخادم. وهذا يمنع التجربة المحبطة التي تتضمن مراجعة غير لائقة تم تصنيفه عن طريق الخطأ على أنه سام (موجب خاطئ). يشمل ذلك أيضًا حالات حيث يتمكن أحد المستخدمين الضارين من تجاوز عملية الفحص من جهة العميل.
- إنّ عملية التحقّق من اللغة غير اللائقة مفيدة من جهة العميل، ولكن يمكن تجنّبها. تأكَّد من أنّك تشغيل فحص من جانب الخادم أيضًا.
تحليل اللغة غير اللائقة باستخدام TensorFlow.js
ويمكن البدء بسرعة في تحليل مدى اللغة غير اللائقة في مراجعة أحد المستخدمين باستخدام TensorFlow.js.
- تثبيت والاستيراد مكتبة TensorFlow.js ونموذج اللغة غير اللائقة.
- ضبط حد أدنى لثقة التنبؤ. القيمة الافتراضية هي 0.85، وفي المثال الذي ذكرناه، قمنا بتعيينه على 0.9.
- تحميل النموذج بشكل غير متزامن.
- تصنيف المراجعة بشكل غير متزامن. تحدد تعليماتنا البرمجية التوقعات التي تتجاوز حد أدنى 0.9 لأي فئة.
يمكن لهذا النموذج تصنيف اللغة غير اللائقة عبر الهجوم على الهوية والإهانات والفاحشة وغيرها.
على سبيل المثال:
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
);
تحديد الآراء باستخدام Transformers.js
تثبيت واستيراد مكتبة Transformers.js.
إعداد تحليل الآراء المهمة باستخدام مسار مخصَّص عند استخدام أحد المسارات لأول مرة، يتم تنزيل النموذج وتخزينه مؤقتًا. من ذلك الحين فصاعدًا، من المفترض أن يصبح تحليل الآراء أسرع بكثير.
تصنيف المراجعة بشكل غير متزامن. استخدِم حدًّا مخصّصًا لضبط المستوى. من الثقة تعتبره قابلاً للاستخدام في تطبيقك.
على سبيل المثال:
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
}
اقتراح تقييم بالنجوم مع Gemma وMediaPipe
باستخدام واجهة برمجة التطبيقات للاستنتاج اللغوي الكبير (LLM)، يمكنك تنفيذ النماذج اللغوية الكبيرة (LLM) بالكامل في المتصفح.
واتضح أن هذه الإمكانية الجديدة تحولية بشكل خاص بالنظر إلى الذاكرة احتساب متطلّبات النماذج اللغوية الكبيرة التي يزيد حجمها عن مئة مرّة النماذج التقليدية على الجهاز فقط. تؤدي التحسينات عبر الحزمة على الجهاز فقط إلى تحقيق هذا ممكن، بما في ذلك العمليات الجديدة والتقدير الكمي والتخزين المؤقت ومشاركة الوزن. المصدر: "النماذج اللغوية الكبيرة على الجهاز باستخدام MediaPipe وTensorFlow Lite".
- التثبيت والاستيراد واجهة برمجة تطبيقات الاستنتاج MediaPipe LLM.
- تنزيل نموذج هنا، نستخدم Gemma 2B، تم تنزيله من Kaggle. Gemma 2B هي أصغر النماذج في الوزن المفتوحة من Google.
- وجِّه الرمز إلى ملفات النماذج الصحيحة باستخدام
FilesetResolver
. هذا هو مهم لأنّ نماذج الذكاء الاصطناعي التوليدي قد تحتوي على بنية دليل محدّدة عن أصولها. - حمِّل النموذج واضبطه باستخدام واجهة النموذج اللغوي الكبير في MediaPipe. إعداد نموذج للاستخدام: تحديد موقع النموذج والطول المفضل للردود والمستوى المفضل للإبداع باستخدام درجة الحرارة.
- أرسِل طلبًا إلى النموذج (الاطّلاع على مثال).
- انتظِر استجابة النموذج.
- تحليل التقييم: استخرِج التقييم بالنجوم من ردّ النموذج.
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);
مثال على طلب
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`;
الخلاصات
لا حاجة إلى خبرة في مجال الذكاء الاصطناعي أو تعلُّم الآلة. يتطلب تصميم المطالبة تكرارات، ولكن وباقي الرمز هو التطوير العادي للويب.
إنّ الطُرز التي يتم استخدامها على الجهاز فقط دقيقة إلى حدّ ما. إذا قمتَ بتشغيل المقتطفات من وثيقة، ستلاحظ أن كل من تحليل اللغة غير اللائقة والمشاعر يعطيان نتائج دقيقة. في معظم الأحيان، تتطابق تقييمات Gemma مع نموذج Gemini. التقييمات لبعض المراجعات المرجعية المُختبَرة. وللتحقق من هذه الدقة، يلزم إجراء المزيد من الاختبارات.
ومع ذلك، فإن تصميم مطالبة Gemma 2B يتطلب جهدًا. نظرًا لأن Gemma 2B النموذج اللغوي الكبير (LLM) صغير، فهو يحتاج إلى طلب مفصّل لتقديم نتائج مُرضية، خاصةً أكثر تفصيلاً من المطلوب في Gemini API
يمكن أن يكون الاستنتاج سريعًا جدًا. إذا قمت بتشغيل المقتطفات من هذا المستند، يجب أن تلاحظ أن الاستنتاج يمكن أن يصبح سريعًا، وعلى الأرجح أسرع من الخادم. رحلات ذهاب وعودة على عدد من الأجهزة. ومع ذلك، يمكن أن تتفاوت سرعة الاستنتاج بشكل كبير. يجب إجراء قياس شامل للأجهزة المستهدَفة. نتوقع الدفع على الجهاز الاستنتاج لمواصلة زيادة السرعة من خلال تحديثات وحدة معالجة الرسومات WebAssembly وWebAssembly والمكتبة. على سبيل المثال، تضيف Transformers.js التوافق مع وحدة معالجة رسومات الويب (GPU) في الإصدار 3، التي يمكن أن تسرّع الاستنتاج على الجهاز كثيرًا
يمكن أن تكون أحجام التنزيل كبيرة جدًا. الاستنتاج في المتصفّح سريع، ولكنه قد يشكّل تحميل نماذج الذكاء الاصطناعي تحديًا. لإجراء الذكاء الاصطناعي داخل المتصفح، عادةً ما تحتاج إلى مكتبة ونموذج يمكن إضافتهما إلى حجم تنزيل تطبيق الويب.
في حين أنّ نموذج اللغة غير اللائقة من Tensorflow (نموذج كلاسيكي لمعالجة اللغة الطبيعية) هو بضع كيلوبايت فقط، فإن نماذج الذكاء الاصطناعي التوليدي مثل النموذج التلقائي لـ Transformers.js يصل حجم نموذج تحليل الآراء إلى 60 ميغابايت. يمكن أن تكون النماذج اللغوية الكبيرة مثل Gemma يصل حجمه إلى 1.3 غيغابايت. يتجاوز هذا المتوسط حجم صفحة الويب 2.2 ميغابايت، وهو أكبر بكثير مما يُنصَح به للحصول على أفضل أداء، على الجهاز فقط يمكن الاستفادة من الذكاء الاصطناعي التوليدي في سيناريوهات محدّدة.
يتطوّر مجال الذكاء الاصطناعي التوليدي على الويب بسرعة. أصغر، النماذج المحسّنة للويب المتوقع أن يظهر في المستقبل.
الخطوات التالية
يعمل Chrome على تجربة طريقة أخرى لتشغيل الذكاء الاصطناعي التوليدي في المتصفّح. يمكنك الاشتراك في برنامج المعاينة المبكر. لاختباره.