استضافة ذاتية لنموذج لغة مفتوح المصدر لـ DiscourseAI

يحتوي المكون الإضافي Discourse AI على العديد من الميزات التي تتطلب تمكين نموذج لغوي كبير (LLM)، مثل، على سبيل المثال، التلخيص، والمساعد الذكي، والبحث الذكي، والروبوت الذكي. بينما يمكنك استخدام واجهة برمجة تطبيقات لطرف ثالث، مثل تكوين مفاتيح API لـ OpenAI أو تكوين مفاتيح API لـ Anthropic، فقد قمنا ببناء Discourse AI منذ اليوم الأول لعدم الارتباط بها.

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

توفر HuggingFace صورة حاوية رائعة يمكن أن تجعلك تعمل بسرعة.

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

mkd ir -p /opt/tgi-cache
docker run --rm --gpus all --shm-size 1g -p 8080:80 \
  -v /opt/tgi-cache:/data \
  ghcr.io/huggingface/text-generation-inference:latest \
  --model-id mistralai/Mistral-7B-Instruct-v0.2

يجب أن يجعلك هذا تعمل مع نسخة محلية من Mistral 7B Instruct على localhost بالمنفذ 8080، والتي يمكن اختبارها باستخدام

curl http://localhost:8080/ \
    -X POST \
    -H 'Content-Type: application/json' \
    -d '{"inputs":"<s>[INST] What is your favourite condiment? [/INST] Well, I'm quite partial to a good squeeze of fresh lemon juice. It adds just the right amount of zesty flavour to whatever I'm cooking up in the kitchen!</s> [INST] Do you have mayonnaise recipes? [/INST]","parameters":{"max_new_tokens":500, "temperature":0.5,"top_p": 0.9}}'

التشغيل باستخدام vLLM

خيار آخر لاستضافة نماذج LLM بنفسك يدعمها Discourse AI هو vLLM، وهو مشروع شائع جدًا، مرخص بموجب ترخيص Apache.

إليك كيفية البدء بنموذج:

mkd ir -p /opt/vllm-cache
docker run --gpus all \
  -v /opt/vllm-cache:/root/.cache/huggingface \
  -e "MODEL=mistralai/Mistral-7B-Instruct-v0.2" \
  -p 8080:8000 --ipc=host vllm/vllm-openai:latest

والذي يمكنك اختباره باستخدام

curl -X POST http://localhost:8080/v1/completions \
-H "Content-Type: application/json" \
-d '{
"model": "mistralai/Mistral-7B-Instruct-v0.2",
"prompt": "<s> [INST] What was the latest released hero for Dota 2? [/INST] The latest released hero for Dota 2 was", "max_tokens": 200}'

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

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

تكوين DiscourseAI

يشحن Discourse AI إعدادات الموقع لتكوين خادم الاستدلال للنماذج مفتوحة المصدر. يجب عليك توجيهه إلى الخادم الخاص بك باستخدام ai_hugging_face_api_url أو ai_vllm_endpoint وفقًا لبرنامج الاستدلال الذي اخترته.

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

  • ai_helper_model
  • ai_embeddings_semantic_search_hyde_model
  • استراتيجية التلخيص
  • ai_bot_enabled_chat_bots
16 إعجابًا

لأي شخص يبحث في هذا الموضوع مع/لأجل:
#Llava-Api-keys

أنا أستخدم vLLM أيضًا. أود أيضًا أن أوصي بنموذج openchat v3.5 0106، وهو نموذج بمعامل 7 مليار أداء جيد جدًا.

أنا في الواقع أقوم بتشغيله بتقنية 4bit quantized لكي يعمل بشكل أسرع.

أنا أقوم بتعيين هذه المهمة لمتدرب. هل هناك توصيات من أي شخص بشأن الخدمة المحددة التي يجب الاشتراك فيها؟ هذا للاختبار. لدى المتدرب حاليًا اختبار تم تكوينه مع OpenAI. إنه يعمل بشكل جيد. إنهم مهتمون بتجربة HuggingFace TGI، ولكن يبدو أنني بحاجة إلى تزويدهم بخادم مخصص مزود بوحدة معالجة رسومات؟ ما هي المواصفات الدنيا للاختبار؟

هل هناك روابط يمكنني تقديمها للمتدرب؟

لم ألقِ نظرة متعمقة على هذا المشروع بعد. أنا فقط أتوقع أن يحتاج المتدرب إلى بعض الموارد وأحاول تقديم بعض التوصيات المعقولة بشأن الخدمات للمتدرب في مجال البحث.

مرحباً، أثناء الكشف باستخدام حاوية vllm بشهادة موقعة ذاتيًا على صندوق GPU في المبنى، لم أجد طريقة جيدة لإضافة شهادة CA الجذرية إلى حاوية discourse حتى تتمكن من الوصول بأمان إلى هذه الخدمة في المبنى عبر https.

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

./launcher enter app
curl -L https://vllm.infra.example.com/v1/models
curl: (60) مشكلة شهادة SSL: لا يمكن الحصول على شهادة المصدر المحلي
مزيد من التفاصيل هنا: https://curl.se/docs/sslcerts.html

فشل curl في التحقق من شرعية الخادم وبالتالي لم يتمكن من
إنشاء اتصال آمن به. لمعرفة المزيد حول هذا الموقف و
كيفية إصلاحه، يرجى زيارة صفحة الويب المذكورة أعلاه.

هل هناك طريقة جيدة لإضافة شهادة CA جذرية موقعة ذاتيًا في حاوية discourse والتي ستنجو من تحديثات صور الحاوية؟

على حد علمي، فإن إضافتها في app.yml

run:
  - exec: wget ... && update-ca-certificates

ستعمل بشكل جيد فقط أثناء بناء/إعادة بناء التطبيق.

أي تلميح مرحب به.

تم تقسيم 14 مشاركة إلى موضوع جديد: جعل discourse ai يعمل مع ollama محليًا