با هوش مصنوعی وب سمت مشتری، بررسی های مفید محصول را تشویق کنید

مود نالپاس
Maud Nalpas
کنجی باهوکس
Kenji Baheux

تاریخ انتشار: 16 مه 2024

بررسی های مثبت و منفی می تواند تصمیم خریدار را به شما اطلاع دهد.

طبق تحقیقات خارجی، 82 درصد از خریداران آنلاین قبل از خرید به طور فعال به دنبال نظرات منفی هستند. این نظرات منفی برای مشتریان و کسب‌وکارها مفید است، زیرا در دسترس بودن نظرات منفی می‌تواند به کاهش نرخ بازگشت و کمک به سازندگان در بهبود محصولاتشان کمک کند.

در اینجا چند راه وجود دارد که می توانید کیفیت بررسی را بهبود بخشید:

  • هر بررسی را قبل از ارسال برای سمیت بررسی کنید. ما می‌توانیم کاربران را تشویق کنیم که زبان توهین‌آمیز و همچنین سایر اظهارات غیرمفید را حذف کنند تا بررسی آنها به بهترین شکل به سایر کاربران کمک کند تا تصمیم خرید بهتری بگیرند.
    • منفی : این کیف بد است و من از آن متنفرم.
    • منفی با بازخورد مفید زیپ ها بسیار سفت هستند و مواد ارزان به نظر می رسد. من این کیف را پس دادم.
  • بر اساس زبان مورد استفاده در مرور، رتبه‌بندی خودکار ایجاد کنید.
  • تعیین کنید که آیا بررسی منفی است یا مثبت.
اسکرین شات از بررسی نمونه با احساس و رتبه ستاره.
در این مثال، نظر بازبین حس مثبت و امتیاز پنج ستاره داده می شود.

در نهایت، کاربر باید در مورد امتیاز محصول حرف آخر را بزند.

کد لبه زیر راه حل های سمت سرویس گیرنده را، روی دستگاه و در مرورگر ارائه می دهد. بدون نیاز به دانش توسعه هوش مصنوعی، سرور یا کلیدهای API.

پیش نیازها

در حالی که هوش مصنوعی سمت سرور با راه حل ها (مانند Gemini API یا OpenAI API ) راه حل های قوی برای بسیاری از برنامه ها ارائه می دهد، در این راهنما ما بر روی هوش مصنوعی وب سمت مشتری تمرکز می کنیم. استنتاج هوش مصنوعی سمت مشتری در مرورگر رخ می دهد تا با حذف رفت و برگشت سرور، تجربه را برای کاربران وب بهبود بخشد.

در این نرم‌افزار، ما از ترکیبی از تکنیک‌ها استفاده می‌کنیم تا به شما نشان دهیم که چه چیزی در جعبه ابزار شما برای هوش مصنوعی سمت مشتری وجود دارد.

ما از کتابخانه ها و مدل های زیر استفاده می کنیم:

  • TensforFlow.js برای تجزیه و تحلیل سمیت. TensorFlow.js یک کتابخانه یادگیری ماشین منبع باز برای استنباط و آموزش در وب است.
  • transformers.js برای تحلیل احساسات. Transformers.js یک کتابخانه هوش مصنوعی وب از Hugging Face است.
  • Gemma 2B برای رتبه بندی ستاره. Gemma خانواده ای از مدل های سبک وزن است که از تحقیقات و فناوری هایی ساخته شده است که گوگل برای ایجاد مدل های Gemini از آن استفاده کرده است. برای اجرای Gemma در مرورگر، از آن با API آزمایشی LLM Inference MediaPipe استفاده می‌کنیم.

ملاحظات UX و ایمنی

چند ملاحظه برای اطمینان از تجربه و ایمنی مطلوب کاربر وجود دارد:

  • به کاربر اجازه ویرایش امتیاز دهید. در نهایت، کاربر باید در مورد امتیاز محصول حرف آخر را بزند.
  • برای کاربر روشن کنید که رتبه‌بندی و بررسی‌ها خودکار هستند.
  • به کاربران اجازه ارسال نظر طبقه بندی شده به عنوان سمی را بدهید، اما بررسی دوم را روی سرور انجام دهید. این از تجربه ناامیدکننده ای که در آن مرور غیرسمی به اشتباه به عنوان سمی (مثبت کاذب) طبقه بندی می شود، جلوگیری می کند. این همچنین مواردی را پوشش می دهد که یک کاربر مخرب موفق به دور زدن بررسی سمت مشتری می شود.
  • بررسی سمیت سمت مشتری مفید است، اما می توان آن را دور زد. اطمینان حاصل کنید که یک بررسی سمت سرور نیز اجرا می کنید.

سمیت را با TensorFlow.js تجزیه و تحلیل کنید

شروع به تجزیه و تحلیل سمیت یک بررسی کاربر با TensorFlow.js سریع است.

  1. کتابخانه TensorFlow.js و مدل سمیت را نصب و وارد کنید .
  2. حداقل اطمینان پیش بینی را تنظیم کنید. پیش فرض 0.85 است و در مثال ما آن را روی 0.9 قرار داده ایم.
  3. مدل را به صورت ناهمزمان بارگذاری کنید.
  4. بررسی را به صورت ناهمزمان طبقه بندی کنید. کد ما پیش بینی های بیش از آستانه 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 تعیین کنید

  1. کتابخانه Transformers.js را نصب و وارد کنید.

  2. کار تجزیه و تحلیل احساسات را با خط لوله اختصاصی تنظیم کنید. هنگامی که یک خط لوله برای اولین بار استفاده می شود، مدل دانلود و ذخیره می شود. از آن به بعد، تجزیه و تحلیل احساسات باید بسیار سریعتر باشد.

  3. بررسی را به صورت ناهمزمان طبقه بندی کنید. از یک آستانه سفارشی برای تنظیم سطح اطمینانی که برای برنامه خود قابل استفاده می دانید استفاده کنید.

به عنوان مثال:

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 Inference API، می توانید مدل های زبان بزرگ (LLM) را به طور کامل در مرورگر اجرا کنید.

این قابلیت جدید با توجه به نیازهای حافظه و محاسباتی LLM که بیش از صد برابر بزرگتر از مدل های سمت مشتری است، تحول آفرین است. بهینه سازی در سراسر پشته وب این امکان را فراهم می کند، از جمله عملیات های جدید، کمی سازی، ذخیره سازی و اشتراک وزن. منبع: "مدل های زبان بزرگ روی دستگاه با MediaPipe و TensorFlow Lite" .

  1. API استنتاج MediaPipe LLM را نصب و وارد کنید .
  2. دانلود یک مدل . در اینجا، ما از Gemma 2B ، دانلود شده از Kaggle استفاده می کنیم. Gemma 2B کوچکترین مدل وزن باز گوگل است.
  3. کد را با FilesetResolver روی فایل‌های مدل مناسب قرار دهید. این مهم است زیرا مدل‌های هوش مصنوعی مولد ممکن است ساختار دایرکتوری خاصی برای دارایی‌های خود داشته باشند.
  4. مدل را با رابط LLM MediaPipe بارگیری و پیکربندی کنید. مدل را برای استفاده آماده کنید: مکان مدل، طول پاسخ‌های ترجیحی و سطح خلاقیت ترجیحی با دما را مشخص کنید.
  5. به مدل اعلان بدهید ( مثالی را ببینید ).
  6. منتظر پاسخ مدل باشید
  7. تجزیه برای رتبه بندی: امتیاز ستاره را از پاسخ مدل استخراج کنید.
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`;

غذای آماده

هیچ تخصص AI/ML مورد نیاز نیست . طراحی یک اعلان نیاز به تکرار دارد، اما بقیه کدها توسعه وب استاندارد هستند.

مدل های سمت مشتری نسبتا دقیق هستند . اگر قطعات این سند را اجرا کنید، مشاهده خواهید کرد که هر دو تجزیه و تحلیل سمیت و احساسات نتایج دقیقی را ارائه می دهند. رتبه‌بندی‌های Gemma، در بیشتر موارد، با رتبه‌بندی مدل Gemini برای چند بررسی مرجع آزمایش‌شده مطابقت داشتند. برای تأیید این دقت، آزمایش بیشتری لازم است.

با این حال، طراحی درخواست برای Gemma 2B کار می‌برد. از آنجایی که Gemma 2B یک LLM کوچک است، برای ایجاد نتایج رضایت‌بخش به یک اعلان دقیق نیاز دارد - به ویژه جزئیات بیشتر از آنچه در Gemini API لازم است.

استنتاج می تواند برق آسا باشد . اگر قطعه‌های این سند را اجرا می‌کنید، باید مشاهده کنید که استنتاج می‌تواند سریع‌تر و احتمالاً سریع‌تر از رفت و برگشت سرور در تعدادی از دستگاه‌ها باشد. گفته می شود، سرعت استنتاج می تواند بسیار متفاوت باشد. محک گذاری کامل در دستگاه های هدف مورد نیاز است. انتظار داریم استنتاج مرورگر با به‌روزرسانی WebGPU، WebAssembly و کتابخانه سریع‌تر شود. به عنوان مثال، Transformers.js پشتیبانی از GPU وب را در نسخه 3 اضافه می کند، که می تواند استنتاج روی دستگاه را چندین برابر افزایش دهد .

اندازه های دانلود می تواند بسیار بزرگ باشد. استنباط در مرورگر سریع است، اما بارگیری مدل های هوش مصنوعی می تواند یک چالش باشد. برای انجام هوش مصنوعی درون مرورگر، معمولاً به یک کتابخانه و یک مدل نیاز دارید که به حجم دانلود برنامه وب شما می‌افزاید.

در حالی که مدل سمیت Tensorflow (یک مدل کلاسیک پردازش زبان طبیعی) تنها چند کیلوبایت است، مدل‌های هوش مصنوعی مولد مانند مدل تحلیل احساسات پیش‌فرض Transformers.js به 60 مگابایت می‌رسند. مدل های زبان بزرگ مانند Gemma می توانند به اندازه 1.3 گیگابایت باشند. این اندازه از میانگین 2.2 مگابایت اندازه صفحه وب ، که در حال حاضر برای بهترین عملکرد بسیار بزرگتر است، بسیار بیشتر است. هوش مصنوعی مولد سمت مشتری در سناریوهای خاص قابل اجرا است.

حوزه هوش مصنوعی مولد در وب به سرعت در حال پیشرفت است! انتظار می‌رود در آینده مدل‌های کوچک‌تر و بهینه‌سازی شده برای وب ظاهر شوند .

مراحل بعدی

کروم در حال آزمایش راه دیگری برای اجرای هوش مصنوعی مولد در مرورگر است. برای آزمایش آن می توانید در برنامه پیش نمایش اولیه ثبت نام کنید .