استضافة ذاتية لتحليل المشاعر والعواطف لـ DiscourseAI

ملحق Discourse AI يدعم طلب تصنيف المشاعر/العواطف للمنشورات الجديدة، والتي يتم تخزينها في قاعدة البيانات ويمكن استخدامها في التقارير ولوحات معلومات المسؤول.

التشغيل باستخدام HuggingFace TEI

توفر HuggingFace صورة حاوية رائعة يمكنها تشغيلك بسرعة.

على سبيل المثال:

mkdir -p /opt/tei-cache
docker run --rm --gpus all --shm-size 1g -p 8081:80 \
  -v /opt/tei-cache:/data \
  ghcr.io/huggingface/text-embeddings-inference:latest \
  --model-id cardiffnlp/twitter-roberta-base-sentiment-latest \
  --revision refs/pr/30

يجب أن يتيح لك هذا تشغيل نسخة محلية من ‘cardiffnlp/twitter-roberta-base-sentiment-latest’، وهو نموذج مفتوح يمكنه تصنيف المنشورات إلى إيجابي/سلبي/محايد.
يمكنك التحقق مما إذا كان يعمل باستخدام

curl http://localhost:8081/ \
    -X POST \
    -H 'Content-Type: application/json' \
    "{ \"inputs\": \"I am happy\" }"

والذي يجب أن يعيد مصفوفة من الثقة لكل تسمية في ظل التشغيل العادي.

النماذج المدعومة

جعله متاحًا لمثيل Discourse الخاص بك

في معظم الأحيان، ستقوم بتشغيل هذا على خادم مخصص بسبب تسريع وحدة معالجة الرسومات. عند القيام بذلك، أوصي بتشغيل وكيل عكسي، وإجراء إنهاء TLS، وتأمين نقطة النهاية بحيث لا يمكن الاتصال بها إلا بواسطة مثيل Discourse الخاص بك.

تكوين Discourse AI

يتضمن Discourse AI إعدادات الموقع لتكوين خادم الاستدلال للنماذج مفتوحة المصدر. يجب عليك توجيهه إلى خادمك باستخدام الإعداد ai_sentiment_model_configs.

بعد ذلك، قم بتمكين التصنيف عن طريق تبديل ai_sentiment_enabled.

إعجابَين (2)

هل هناك خطط لدعم نماذج أخرى بلغات غير اللغة الإنجليزية؟

إعجاب واحد (1)

@Falco إذا قرر أحد تشغيل هذا على نفس الخادم الذي يشغل discourse (على سبيل المثال، لدينا نشر صغير جدًا ببضع آلاف من المشاركات)، هل يمكنك تحديث التعليمات لتوضح

  1. كيف يمكن ل discourse الاندماج مع نسخة محلية من صورة الحاوية HuggingFace TEI
  2. اقتراحات حول مقدار الذاكرة العشوائية/القرص الإضافي المطلوب لتشغيل ما سبق (على سبيل المثال، إذا كانت النسخة الأساسية من Discourse تعمل بذاكرة RAM 2GB و20GB من القرص)

لقد قمت بإعداد مثيل Discourse جديد مستضاف ذاتيًا وأحاول إعداد المشاعر. هذه هي إعدادات ai_sentiment_model_configs الخاصة بي -

المفتاح القيمة
اسم النموذج cardiffnlp/twitter-roberta-base-sentiment-latest
نقطة النهاية https://my_own_instance
مفتاح API [فارغ]

وهي تعمل، نوعًا ما، أحصل على الرسم البياني الشريطي للمشاعر.

ومع ذلك، فإن جدول المشاعر فارغ. تبدو هذه الوثيقة غير مكتملة، أو صياغتها سيئة بالنسبة لي لفهم ما يجب القيام به.

هل أقوم بتشغيل حاوية Docker أخرى، بمعرف نموذج مختلف (roberta-base-go_emotions؟)، أو شيء آخر؟ ماذا أحتاج أن أفعل لملء جدول المشاعر هذا؟

أفضل استضافة هذه الخدمات ذاتيًا إذا أمكن. شكرًا مقدمًا إذا كان بإمكان أي شخص توجيهي في الاتجاه الصحيح.

بالنسبة للمشاعر، تحتاج إلى تشغيل

أيضًا.

3 إعجابات

شكراً لك. لذا، سأقوم بتشغيل حاوية دوكر ثانية مع بعض التعديلات، كالتالي:

mkidr -p /opt/tei-cache2
docker run --detach --rm --gpus all --shm-size 1g -p 8082:80 \
  -v /opt/tei-cache2:/data \
  ghcr.io/huggingface/text-embeddings-inference:latest \
  --model-id SamLowe/roberta-base-go_emotions

وإضافة إدخال جديد في ai_sentiment_model_configs وكل شيء يعمل الآن. شكراً لك. :slight_smile:

إعجاب واحد (1)

اصطدمتُ بوجهي بجدار من الطوب من عدم معرفتي بما أفعله لمحاولة تشغيل هذا على مثيل EC2 بدون وحدة معالجة رسومات. على الأقل إلى أقصى حدود قدراتي وفهمي المحدود للغاية هنا، فإن محاولة القيام بذلك مع مثيل يعتمد على وحدة المعالجة المركزية فقط يعني المزيد من أعمال التكوين التي لا يمكنني فهمها. إصدارات cpu من ghcr.io/huggingface/text-embeddings-inference ترفض تحميل أي من نموذجي الاستماع؛ يخبرني كل من Claude و GPT5 أنني بحاجة إلى تحويلهما إلى نماذج ONNX باستخدام مجموعة من أدوات بايثون، وهذا هو المكان الذي انسحبت فيه.

(من الممكن جدًا أيضًا أنني غبي وأفتقد خطوة واضحة!)

أحد الأشياء التي نخطط لها هو السماح لنماذج اللغة الكبيرة (LLMs) بالعمل كتحليل للمشاعر

بهذه الطريقة يمكنك توصيل نموذج رخيص مثل Gemini Flash 2.5 (أو حتى nano) واستخدامه لتحليل المشاعر.

6 إعجابات

نحن نحاول استخدام هذه الميزة مع Azure AI Language (من مثيل Discourse المستضاف ذاتيًا) - حيث أننا نستخدم بالفعل اشتراك Azure الخاص بنا لدمج GPT-4.5 مع Discourse (للتلخيص ووظائف روبوت الدردشة):

  • ولكننا لا نحصل على أي بيانات في لوحة معلومات المشاعر، ويمكننا رؤية هذه الأخطاء في السجلات:

Discourse AI: Errors during bulk classification: Failed to classify 208 posts (example ids: 2256, 909, 2270, 2260, 2797) : JSON::ParserError : An empty string is not a valid JSON string.

يُظهر تتبع المكدس أن Discourse قد يحاول استخدام HuggingFace - هل هذه هي النماذج الوحيدة المدعومة في الوقت الحالي؟

شكرًا،

N

نعم، لدينا تطبيق محدد جدًا، ونفكر في كيفية جعله أكثر عمومية

أنا متفائل بشأن مجرد السماح لنماذج اللغة الكبيرة بإرجاع مخرجات منظمة للمشاعر، لأن ذلك يفتح الأبواب أمام العديد من الخيارات هناك وأشعر أنه كاتجاه، يتم استبدال واجهات برمجة التطبيقات “المحددة للغاية” بواجهات برمجة التطبيقات “العامة للغاية” التي توفرها نماذج اللغة الكبيرة.

إعجاب واحد (1)

هل هناك طريقة مباشرة لتشغيل هذا على ووردبريس مستضاف ذاتيًا دون إعداد مثيل خاص بك لتصنيف المشاعر؟

شكراً سام - سيكون ذلك رائعاً. في غضون ذلك، سنتحقق من تشغيل أحد نماذج HuggingFace المدعومة على جهاز Azure افتراضي…