الإنجليزية |. الصينية المبسطة
يمكن نشر نظام تعزيز استرجاع النماذج الكبيرة ThinkRAG بسهولة على جهاز كمبيوتر محمول لتحقيق الإجابة الذكية على الأسئلة في قاعدة المعرفة المحلية.
تم بناء النظام على أساس LlamaIndex وStreamlit، وقد تم تحسينه للمستخدمين المحليين في العديد من المجالات مثل اختيار النموذج ومعالجة النصوص.
ThinkRAG هو نظام تطبيقي نموذجي كبير تم تطويره للمحترفين والباحثين والطلاب وغيرهم من العاملين في مجال المعرفة، ويمكن استخدامه مباشرة على أجهزة الكمبيوتر المحمولة، ويتم حفظ بيانات قاعدة المعرفة محليًا على الكمبيوتر.
يتمتع ThinkRAG بالميزات التالية:
على وجه الخصوص، قامت ThinkRAG أيضًا بالكثير من التخصيص والتحسين للمستخدمين المحليين:
يمكن لـ ThinkRAG استخدام جميع النماذج التي يدعمها إطار بيانات LlamaIndex. للحصول على معلومات قائمة النماذج، يرجى الرجوع إلى الوثائق ذات الصلة.
تلتزم ThinkRAG بإنشاء نظام تطبيقي قابل للاستخدام بشكل مباشر ومفيد وسهل الاستخدام.
ولذلك، قمنا باختيارات ومقايضات دقيقة بين مختلف النماذج والمكونات والتقنيات.
أولاً، باستخدام النماذج الكبيرة، يدعم ThinkRAG واجهة برمجة تطبيقات OpenAI وجميع واجهات برمجة تطبيقات LLM المتوافقة، بما في ذلك الشركات المصنعة للنماذج الكبيرة السائدة المحلية، مثل:
إذا كنت ترغب في نشر نماذج كبيرة محليًا، فإن ThinkRAG تختار Ollama، وهو أمر بسيط وسهل الاستخدام. يمكننا تنزيل نماذج كبيرة لتشغيلها محليًا من خلال شركة Ollama.
حاليًا، تدعم Ollama النشر المحلي لجميع النماذج الكبيرة السائدة تقريبًا، بما في ذلك Llama وGemma وGLM وMistral وPhi وLava وما إلى ذلك. لمزيد من التفاصيل، يرجى زيارة الموقع الرسمي لشركة Ollama أدناه.
يستخدم النظام أيضًا نماذج التضمين والنماذج المعاد ترتيبها، ويدعم معظم النماذج من Hugging Face. حاليًا، يستخدم ThinkRAG بشكل أساسي نماذج سلسلة BGE من BAAI. يمكن للمستخدمين المحليين زيارة موقع المرآة للتعلم والتنزيل.
بعد تنزيل الكود من Github، استخدم النقطة pip لتثبيت المكونات المطلوبة.
pip3 install -r requirements.txt
لتشغيل النظام دون الاتصال بالإنترنت، يرجى أولاً تنزيل تطبيق Ollama من الموقع الرسمي. ثم استخدم أمر Ollama لتنزيل نماذج كبيرة مثل GLM وGemma وQWen.
بشكل متزامن، قم بتنزيل نموذج التضمين (BAAI/bge-large-zh-v1.5) ونموذج إعادة الترتيب (BAAI/bge-reranker-base) من Hugging Face إلى دليل localmodels.
للحصول على خطوات محددة، يرجى الرجوع إلى المستند الموجود في دليل المستندات: HowToDownloadModels.md
من أجل الحصول على أداء أفضل، يوصى باستخدام النموذج التجاري الكبير LLM API مع مئات المليارات من المعلمات.
أولاً، احصل على مفتاح API من موفر خدمة LLM وقم بتكوين متغيرات البيئة التالية.
ZHIPU_API_KEY = " "
MOONSHOT_API_KEY = " "
DEEPSEEK_API_KEY = " "
OPENAI_API_KEY = " "
يمكنك تخطي هذه الخطوة وتكوين مفتاح API من خلال واجهة التطبيق بعد تشغيل النظام.
إذا اخترت استخدام واحدة أو أكثر من واجهات برمجة تطبيقات LLM، فيرجى حذف موفر الخدمة الذي لم تعد تستخدمه في ملف التكوين config.py.
بالطبع، يمكنك أيضًا إضافة موفري خدمات آخرين متوافقين مع OpenAI API في ملف التكوين.
يعمل ThinkRAG في وضع التطوير بشكل افتراضي. في هذا الوضع، يستخدم النظام تخزين الملفات المحلي ولا تحتاج إلى تثبيت أي قاعدة بيانات.
للتبديل إلى وضع الإنتاج، يمكنك تكوين متغيرات البيئة على النحو التالي.
THINKRAG_ENV = production
في وضع الإنتاج، يستخدم النظام قاعدة بيانات المتجهات Chroma وقاعدة بيانات القيمة الرئيسية Redis.
إذا لم يكن Redis مثبتًا لديك، فمن المستحسن تثبيته من خلال Docker أو استخدام مثيل Redis الموجود. يرجى تكوين معلومات المعلمة لمثيل Redis في ملف config.py.
أنت الآن جاهز لتشغيل ThinkRAG.
يرجى تشغيل الأمر التالي في الدليل الذي يحتوي على ملف app.py.
streamlit run app.py
سيقوم النظام بتشغيل عنوان URL التالي وفتحه تلقائيًا على المتصفح لعرض واجهة التطبيق.
http://localhost:8501/
قد يستغرق التشغيل الأول بعض الوقت. إذا لم يتم تنزيل النموذج المضمن في Hugging Face مسبقًا، فسيقوم النظام بتنزيل النموذج تلقائيًا وستحتاج إلى الانتظار لفترة أطول.
يدعم ThinkRAG تكوين واختيار النماذج الكبيرة في واجهة المستخدم، بما في ذلك عنوان URL الأساسي ومفتاح واجهة برمجة التطبيقات (API) للنموذج الكبير LLM API، ويمكنك تحديد النموذج المحدد لاستخدامه، مثل glm-4 من ThinkRAG.
سيكتشف النظام تلقائيًا ما إذا كانت واجهة برمجة التطبيقات (API) والمفتاح متاحين أم لا، إذا كان ذلك متاحًا، فسيتم عرض مثيل النموذج الكبير المحدد حاليًا بنص أخضر في الأسفل.
وبالمثل، يمكن للنظام الحصول تلقائيًا على النماذج التي تم تنزيلها بواسطة Ollama، ويمكن للمستخدم تحديد النموذج المطلوب على واجهة المستخدم.
إذا قمت بتنزيل النموذج المضمن وإعادة ترتيب النموذج إلى دليل localmodels المحلي. على واجهة المستخدم، يمكنك تبديل النموذج المحدد وتعيين معلمات النموذج المعاد ترتيبه، مثل Top N.
في شريط التنقل الأيسر، انقر فوق الإعدادات المتقدمة (الإعدادات-المتقدمة). يمكنك أيضًا تعيين المعلمات التالية:
باستخدام معلمات مختلفة، يمكننا مقارنة مخرجات النماذج الكبيرة والعثور على المجموعة الأكثر فعالية من المعلمات.
يدعم ThinkRAG تحميل ملفات متنوعة مثل PDF، وDOCX، وPPTX، وما إلى ذلك، كما يدعم أيضًا تحميل عناوين URL لصفحات الويب.
انقر فوق الزر "استعراض الملفات"، وحدد الملف الموجود على جهاز الكمبيوتر الخاص بك، ثم انقر فوق الزر "تحميل" ليتم تحميله.
بعد ذلك، انقر فوق الزر "حفظ"، وسيقوم النظام بمعالجة الملف، بما في ذلك تجزئة النص وتضمينه، وحفظه في قاعدة المعرفة.
وبالمثل، يمكنك إدخال أو لصق عنوان URL لصفحة الويب، والحصول على معلومات صفحة الويب، وحفظها في قاعدة المعرفة بعد المعالجة.
يدعم النظام إدارة قاعدة المعرفة.
كما هو موضح في الشكل أعلاه، يمكن لـ ThinkRAG إدراج جميع المستندات الموجودة في قاعدة المعرفة في صفحات.
حدد المستندات المراد حذفها، وسيظهر زر حذف المستندات المحددة. انقر فوق هذا الزر لحذف المستندات من قاعدة المعرفة.
في شريط التنقل الأيسر، انقر فوق استعلام، وستظهر صفحة الأسئلة والأجوبة الذكية.
بعد إدخال السؤال، سيقوم النظام بالبحث في قاعدة المعرفة وتقديم الإجابة. خلال هذه العملية، سيستخدم النظام تقنيات مثل الاسترجاع المختلط وإعادة الترتيب للحصول على محتوى دقيق من قاعدة المعرفة.
على سبيل المثال، قمنا بتحميل مستند Word في قاعدة المعرفة: "David Says Process.docx".
أدخل الآن السؤال: "ما هي الخصائص الثلاث للعملية؟"
كما هو موضح في الشكل، استغرق النظام 2.49 ثانية ليعطي إجابة دقيقة: العملية مستهدفة ومتكررة وإجرائية. وفي الوقت نفسه، يوفر النظام أيضًا وثيقتين مرتبطتين تم استرجاعهما من قاعدة المعرفة.
يمكن ملاحظة أن ThinkRAG ينفذ بشكل كامل وفعال وظيفة الجيل المعزز لاسترجاع النماذج الكبيرة بناءً على قاعدة المعرفة المحلية.
تم تطوير ThinkRAG باستخدام إطار بيانات LlamaIndex ويستخدم Streamlit للواجهة الأمامية. يستخدم وضع التطوير ونمط الإنتاج للنظام مكونات تقنية مختلفة على التوالي، كما هو موضح في الجدول التالي:
وضع التطوير | وضع الإنتاج | |
---|---|---|
إطار RAG | LlamaIndex | LlamaIndex |
إطار الواجهة الأمامية | ستريمليت | ستريمليت |
نموذج مضمن | باي/bge-small-zh-v1.5 | BAAI/bge-large-zh-v1.5 |
إعادة ترتيب النموذج | BAAI/bge-reranker-base | BAAI/bge-reranker-large |
مقسم النص | SentenceSplitter | SpacyTextSplitter |
تخزين المحادثة | SimpleChatStore | ريديس |
تخزين المستندات | SimpleDocumentStore | ريديس |
تخزين الفهرس | SimpleIndexStore | ريديس |
تخزين المتجهات | SimpleVectorStore | لانس دي بي |
تم تصميم هذه المكونات التقنية معماريًا وفقًا لستة أجزاء: الواجهة الأمامية، والإطار، والنموذج الكبير، والأدوات، والتخزين، والبنية التحتية.
كما هو موضح أدناه:
ستواصل ThinkRAG تحسين الوظائف الأساسية والاستمرار في تحسين كفاءة ودقة الاسترجاع، بما في ذلك بشكل أساسي:
وفي الوقت نفسه، سنواصل تحسين بنية التطبيق وتعزيز تجربة المستخدم، بما في ذلك بشكل أساسي:
مرحبًا بكم للانضمام إلى مشروع ThinkRAG مفتوح المصدر والعمل معًا لإنشاء منتجات الذكاء الاصطناعي التي يحبها المستخدمون!
يستخدم ThinkRAG ترخيص MIT.