في هذا المشروع ، قمت ببناء قطعة قماش على LLAMA3-70B-8192 LLM ، تم الوصول إليها باستخدام GROQ API. تم استرداد المستندات المستخدمة لـ RAG عبر WebScrapping للمدونة الصعود ، والتي تحتوي على مقالات حول التمويل الشخصي. كانت المقالات التي استعادتها في الغالب تتعلق بشراء الممتلكات في سياسات سنغافورة وسياسات التأمين. الهدف من ذلك هو تطوير نموذج لغة أكثر إدراكًا وقادرة على الإجابة على الأسئلة المتعلقة بالتمويل الشخصي في سياق سنغافورة.
لقد استخدمت Scrapy لتجنب المقالات ، ونموذج All-Minilm-L6-V2 لتحويل قطع النص إلى تضمينات ، ومتجر Vector Vector لتخزين النص واسترجاعه. أخيرًا ، استخدمت Langchain لتواصل جميع المكونات المختلفة ، من استرجاع قطع النص إلى الهيكلة المطرية والسلاسل لتحقيق الإخراج المطلوب.
يتم إنشاء الإخراج النهائي عن طريق تسلسل مطالبين ، أول شخص يلخص السياق المقدم (أفضل 3 أجزاء نصية متشابهة مع المستخدم الذي طرحه المستخدم) ، والثاني لإنشاء استجابة فعلية. هذا لضمان أن المطالبة المستخدمة لإنشاء استجابات لا تصبح طويلة جدًا (إذا كانت تحتوي على أجزاء نصية كاملة الطول كسياق) ، مما يسمح بتوفير المزيد من السياق إلى LLM.
تعمل سلسلة المطالبات كما هو متوقع ، مع تلخيص أجزاء نصية تمت إضافتها بنجاح إلى المطالبة الثانية. يختلف أداء خط الأنابيب اعتمادًا على جودة مستندات السياق المقدمة.
بالقيام بهذا المشروع ، تعلمت كيفية تنفيذ خرقة باستخدام Langchain ، وكيفية توزيع LLM مع قوالب سريعة وسلاسل سريعة باستخدام لغة تعبير Langchain (LCEL) ، وكيفية استخدام متاجر المتجهات وتضمين وظائف مع Langchain. أعتقد أن هذه المفاهيم الأساسية لتطوير تطبيقات LLM ستسمح لي ببناء تطبيقات LLM أكثر تعقيدًا في المستقبل.