ما هو LangChain؟

31 أكتوبر 2023

ما هو LangChain؟

LangChain هو إطار تنسيق مفتوح المصدر مصمم لتطوير التطبيقات باستخدام النماذج اللغوية الكبيرة (LLMs). تتوفر أدوات إطار LangChain وواجهات برمجة التطبيقات في كل من المكتبات التي تعتمد على Python وJavaScript. وتبسط هذه الأدوات عملية بناء التطبيقات المستندة إلى النماذج اللغوية الكبيرة (LLM) مثل روبوتات المحادثة والوكلاء الافتراضيين.

يعد إطار LangChain بمثابة واجهة عامة لأي نموذج لغوي كبير (LLM) تقريبًا، مما يوفر بيئة تطوير مركزية لبناء تطبيقات LLM ودمجها مع مصادر البيانات الخارجية ومهام سير عمل البرمجيات. يتيح نهج LangChain القائم على الوحدات للمطورين وعلماء البيانات مقارنة الموجِّهات المختلفة وحتى نماذج الأساس المختلفة بشكل ديناميكي دون الحاجة إلى إعادة كتابة التعليمات البرمجية. تسمح هذه البيئة القائمة على الوحدات أيضا بالبرامج التي تستخدم العديد من النماذج اللغوية الكبيرة (LLMs): مثل التطبيقات التي تستخدم نموذجًا لغويًا كبيرًا (LLM) واحدًا لتفسير استعلامات المستخدم وآخر لصياغة الردود.

أطلق Harrison Chase إطار LangChain في أكتوبر 2022، وشهد صعودًا مذهلًا نحو الصدارة: وبحلول من يونيو 2023، كان المشروع الوحيد مفتوح المصدر الأسرع نموا على Github.1 تزامن هذا الإنجاز مع الإطلاق البارز لنموذج ChatGPT من OpenAI في الشهر التالي، واضطلع LangChain بدور كبير في تسهيل استخدام الذكاء الاصطناعي التوليدي بالزامن مع زيادة شعبيته بين عشاق التكنولوجيا.

يمكن لإطار LangChain تسهيل معظم حالات استخدام النماذج اللغوية الكبيرة (LLMs) ومعالجة اللغة الطبيعية (NLP)، مثل روبوتات المحادثة أو البحث الذكي أو الإجابة عن الأسئلة أو خدمات التلخيص أو حتى الوكلاء الافتراضيين القادرين على تنفيذ مهام أتمتة العمليات الآلية.

التكامل مع النماذج اللغوية الكبيرة (LLMs)

النماذج اللغوية الكبيرة ليست تطبيقات مستقلة؛ بل هي نماذج إحصائية مدربة مسبقًا تحتاج إلى الاقتران بتطبيق (وفي بعض الحالات، بمصادر بيانات محددة) لتحقيق أهدافها.

على سبيل المثال، ChatGPT ليس نموذجًا لغويًا كبيرًا (LLM) بحد ذاته، بل هو تطبيق روبوت محادثة يعتمد، حسب الإصدار المستخدم، على نموذج اللغة GPT-3.5 أو GPT-4. على الرغم من أن نموذج GPT هو الذي يفسر مدخلات المستخدم ويولّد استجابة باللغة الطبيعية، فإن التطبيق هو الذي يوفر (من بين أمور أخرى) واجهة المستخدم للكتابة والقراءة وتصميم تجربة المستخدم الذي يحكم تجربة روبوت المحادثة. حتى على مستوى المؤسسات، لا يعد Chat-GPT التطبيق الوحيد الذي يستخدم نموذج GPT: على سبيل المثال، تستخدم Microsoft نموذج GPT-4 لتشغيل دردشة Bing Chat.

علاوة على ذلك، على الرغم من أن نماذج الأساس (مثل النماذج التي تُشغّل نماذج LLMs) مُدرّبة مسبقًا على مجموعات بيانات ضخمة، إلا أنها ليست شاملة المعرفة. إذا تطلبت مهمة معينة الوصول إلى معلومات سياقية محددة، مثل الوثائق الداخلية أو خبرات في مجال معين، يجب ربط النماذج اللغوية الكبيرة (LLMs) بهذه المصادر الخارجية. حتى لو كنت تريد أن يعكس نموذجك الوعي بالأحداث الجارية في الوقت الحقيقي فقط، فعليك توفير مصادر معلومات خارجية: لأن تحديثات البيانات الداخلية للنموذج لا تتجاوز الفترة الزمنية التي تم تدريبه خلالها.

على نحو مماثل، إذا تطلبت مهمة ذكاء اصطناعي توليدي معينة الوصول إلى سير عمل البرامج الخارجية - مثل الوكيل الافتراضي الخاص بك مع Slack- فستحتاج إلى طريقة لدمج LLM مع واجهة برمجة التطبيقات لهذه البرامج.

رغم إمكانية تحقيق هذه التكاملات يدويًا بوجه عام، تُسهل أطر العمل مثل LangChain ومجموعة منتجات الذكاء الاصطناعي من IBM Watsonx العملية إلى حدٍّ كبير. كما تزيد هذه الأدوات من سهولة تجربة نماذج لغوية كبيرة (LLMs) مختلفة لمقارنة النتائج، حيث يمكن تبديل النماذج المختلفة وحذفها بأقل قدر من التغييرات في التعليمات البرمجية.

تصميم ثلاثي الأبعاد لكرات تتدحرج على مسار

أحدث الأخبار والرؤى حول الذكاء الاصطناعي 


تتوفر معارف وأخبار منسقة بمهارة حول الذكاء الاصطناعي والسحابة وغيرها في نشرة Think الإخبارية الأسبوعية. 

كيف يعمل LangChain؟

في جوهر LangChain، توجد بيئة تطوير تبسط برمجة تطبيقات النماذج اللغوية الكبيرة (LLM) باستخدام التجريد: أي تبسيط التعليمات البرمجية من خلال تمثيل العمليات المعقدة كعنصر يحمل اسمًا يشمل جميع خطواته الداخلية.

التجريدات هي عنصر شائع في الحياة اليومية واللغة. على سبيل المثال، يسمح لنا الرمز "π" بتمثيل نسبة طول محيط الدائرة إلى طول قطرها دون الحاجة إلى كتابة أرقامها اللانهائية. وبالمثل، يسمح لنا منظم الحرارة بالتحكم في درجة الحرارة في منزلنا دون الحاجة إلى فهم الدوائر المعقدة - يكفي فقط معرفة كيفية تأثير إعدادات منظم الحرارة المختلفة على درجات الحرارة.

LangChain هي في الأساس مكتبة تجريدية للغة Python وJavascript، تمثل الخطوات والمفاهيم الأساسية للعمل مع النماذج اللغوية. تتكون هذه المكتبة من مكونات نمطية (مثل الدوال والفئات) تُستخدم كوحدات بناء لتطبيقات الذكاء الاصطناعي التوليدي. يمكن "ربطها" معًا لإنشاء تطبيقات معقدة، مما يقلل من كمية التعليمات البرمجية والفهم الدقيق المطلوب لتنفيذ مهام معالجة اللغة الطبيعية (NLP). على الرغم من أن نهج LangChain التجريدي قد يحد من مدى قدرة خبير المبرمج على تخصيص التطبيق بدقة، إلا أنه يمكّن المتخصصين والمبتدئين على حد سواء من التجريب وتطوير نماذج أولية بسرعة.

استيراد النماذج اللغوية

يمكن استخدام أي نموذج لغوي كبير (LLM) تقريبا في LangChain. من السهل استيراد النماذج اللغوية لاستخدامها في LangChain، بشرط امتلاك مفتاح واجهة برمجة التطبيقات. تم تصميم فئة النموذج اللغوي الكبير (LLM) لتوفير واجهة موحدة لجميع النماذج.

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

يمكن الوصول إلى العديد من نماذج المصدر المفتوح، مثل BLOOM من BigScience، وLLaMa من Meta AI، وFlan-T5 من Google، من خلال موقع Hugging Face (الرابط موجود خارج موقع ®ibm.com). تقدم IBM watsonx، بالشراكة مع Hugging Face، أيضًا مجموعة مختارة من النماذج مفتوحة المصدر. سيسمح لك إنشاء حساب على أي من الخدمتين بالحصول على مفتاح API لأي من النماذج التي يقدمها مزود هذه الخدمة.

لا يقتصر LangChain على نماذج الأساس الجاهزة: بل تسمح فئة CustomLLM  (الرابط موجود خارج موقع ibm.com) باستخدام نماذج لغوية كبيرة (LLM) مخصصة. وبالمثل، يمكنك استخدام واجهات برمجة تطبيقات IBM watsonx ومجموعة تطوير البرمجيات Python SDK، المتكاملة مع LangChain، لبناء تطبيقات في LangChain باستخدام نماذج مدرَّبة مسبقًا أو معدلة حسب الحاجة باستخدام فئة watsonxLLM (ومعرف المشروع المحدد لهذا النموذج).

قوالب الموجّهات

الموجهات (Prompts) هي التعليمات المُقدمة للنموذج اللغوي. غالبًا ما يُشار إلى "فنيات" صياغة الموجِّهات التي توفر السياق اللازم للنموذج اللغوي الكبير (LLM) لتفسير المدخلات وهيكلة المخرجات بالطريقة الأكثر فائدة لك باسم "هندسة الموجِّهات".

تنظم فئة PromptTemplate في LangChain تكوين الموجِّهات دون الحاجة إلى ترميز السياق والاستعلامات يدويًا. يتم أيضًا إدخال العناصر المهمة للموجِّه كفئات رسمية، مثل إدخال_variables. وبالتالي يمكن لقالب الموجِّه أن يحتوي على سياق وتعليمات (مثل "لا تستخدم مصطلحات تقنية") أو مجموعة من الأمثلة الإرشادية (فيما يسمى "التوجيه بخطوات قليلة")، أو تنسيق إخراج محدد أو سؤال موحد للإجابة عليه. يمكنك حفظ قالب موجِّه منظم بشكل فعال وتسميته وإعادة استخدامه بسهولة حسب الحاجة.

على الرغم من أن هذه العناصر يمكن برمجتها يدويًا، إلا أن وحدات PromptTemplate تُسهِّل التكامل السلس مع ميزات أخرى في LangChain، مثل السلاسل المعروفة باسم Chains.

السلاسل (Chains)

كما يوحي اسمها، فإن Chains هي جوهر سير عمل LangChain. إنهم يجمعون بين النماذج اللغوية الكبيرة (LLMs) ومكونات أخرى، لإنشاء تطبيقات من خلال تنفيذ تسلسل من الوظائف.

أبسط سلسلة هي سلسلة LLMChain. حيث تستدعي نموذجًا وموجِّهًا (Prompt Template) لهذا النموذج. إذا قمت بحفظ موجه تحت اسم ExamplePrompt وأردت تشغيله باستخدام Flan-T5 يمكنك استيراد LLMChain من مكتبة langchain.chains، ثم تعريف السلسلة كالتالي: chain_example = LLMChain(llm = flan-t5, prompt = ExamplePrompt). لتشغيل السلسلة لإدخال معين، ما عليك سوى استدعاء chain_example.run("input").

لاستخدام مخرجات إحدى الدوال كإدخال للدالة التالية، يمكنك استخدام SimpleSequentialChain. يمكن أن تستخدم كل دالة موجِّهات مختلفة أو أدوات مختلفة أو معلمات مختلفة أو حتى نماذج مختلفة، بناءً على احتياجاتك الخاصة.

الفهارس

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

أدوات تحميل المستندات (Document Loaders)

يقدم إطار LangChain مجموعة واسعة من أدوات تحميل المستندات للتطبيقات الخارجية (الرابط موجود خارج موقع ibm.com). يتيح ذلك استيراد البيانات بسهولة من مصادر متنوعة مثل خدمات تخزين الملفات (مثل Dropbox وGoogle Drive وMicrosoft OneDrive)، ومحتوى الويب (مثل YouTube أو PubMed أو روابط محددة)، وأدوات التعاون (مثل Airtable وTrello وFigma وNotion)، وقواعد البيانات (مثل Pandas وMongoDB وMicrosoft)، وغيرها الكثير.

قواعد البيانات الموجهة

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

توفر LangChain عمليات تكامل لأكثر من 25 طريقة تمثيل مختلفة، كما توفر عمليات تكامل لأكثر من 50 مخزن متجهات مختلف (سواء أكانت مستضافة على السحابة أم محليًا).

مُقسِّمات النصوص 

لزيادة السرعة وتقليل المتطلبات الحسابية، يُوصى غالبا بتقسيم المستندات النصية الكبيرة إلى أجزاء أصغر. تقسّم TextSplitters من LangChain النص إلى أجزاء صغيرة تحمل معنى دلالي يمكن دمجها بعد ذلك باستخدام طرق ومعلمات من اختيارك.

الاسترجاع (Retrieval)

بعد ربط مصادر المعرفة الخارجية، يجب أن يتمكن النموذج من استرجاع المعلومات ذات الصلة بسرعة ودمجها حسب الحاجة. مثل watsonx، تقدم LangChain التوليد المعزز بالاسترجاع (RAG): حيث تقبل وحدات الاسترجاع الخاصة بها استعلامات نصية في صورة مدخلات وتعيد قائمة من  المستندات في صورة مخرجات.

الذاكرة

لا تملك النماذج اللغوية الكبيرة، بشكل افتراضي، أي ذاكرة طويلة المدى للمحادثات السابقة (ما لم يتم استخدام سجل المحادثة هذا كمدخلات للاستعلام). تُقدم LangChain حلولاً لهذه المشكلة من خلال أدوات بسيطة تتيح إضافة ذاكرة إلى النظام، مع خيارات تشمل: الاحتفاظ بكامل المحادثات السابقة، والاحتفاظ بملخص للمحادثة حتى الآن، والاحتفاظ بآخر عدد n من التفاعلات.

الوكلاء

يمكن لوكلاء LangChain استخدام نموذج لغة معين باعتباره "محرك تفكير" لتحديد الإجراءات التي يجب اتخاذها. عند إنشاء سلسلة لوكيل، تتضمن المدخلات ما يلي:

  • قائمة تضم الأدوات المتاحة للاستخدام.
  • مدخلات المستخدم (مثل الموجِّهات والاستعلامات).
  • أي خطوات ذات صلة تم تنفيذها مسبقا.

الأدوات

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

أدوات LangChain (الرابط موجود خارج موقع ibm.com) عبارة عن مجموعة من الوظائف التي تمكن وكلاء LangChain من التفاعل مع المعلومات في العالم الحقيقي لتوسيع أو تحسين الخدمات التي يمكنهم تقديمها. تشمل أبرز أدوات LangChain ما يلي:

  • Wolfram Alpha: يوفر إمكانية الوصول إلى وظائف حسابية متقدمة وقدرات مميزة لتصوير البيانات، مما يدعم القدرات الرياضية.

  • Google Search: يوفّر إمكانية الوصول إلى "Google Search"، ويزوّد التطبيقات والوكلاء بمعلومات في الوقت الحقيقي.

  • OpenWeatherMap: يعرض معلومات عن حالة الطقس.

  • Wikipedia: توفر وصولاً سريعًا للمعلومات من مقالات ويكيبيديا.

أكاديمية الذكاء الاصطناعي

لماذا تعد نماذج الأساس نقلة نوعية في الذكاء الاصطناعي

تعرَّف على فئة جديدة من نماذج الذكاء الاصطناعي المرنة والقابلة لإعادة الاستخدام التي يمكن أن تفتح مصادر جديدة للإيرادات، وتُسهم في تقليل التكاليف، وزيادة الإنتاجية، ثم استخدم دليلنا لمعرفة المزيد من التفاصيل.

LangSmith

تم إصدار LangSmith في خريف عام 2023، بهدف سد الفجوة بين قدرات النماذج الأولية السهلة التي جعلت LangChain بارزة، وبين بناء تطبيقات عالية الجودة تعتمد على النماذج اللغوية الكبيرة.

يوفر LangSmith أدوات لمراقبة التطبيقات وتقييمها وتصحيح الأخطاء فيها، بما في ذلك القدرة على تتبع جميع استدعاءات النماذج تلقائيًا لرصد الأخطاء واختبار الأداء تحت تكوينات نموذجية مختلفة تهدف هذه الرؤية إلى تعزيز تطوير التطبيقات بشكل أكثر قوة وكفاءة من حيث التكلفة.

البدء مع LangChain

LangChain مفتوح المصدر ومجاني الاستخدام: يمكن تحميل الكود المصدري من موقع Github (الرابط موجود خارج موقع ibm.com).

يمكن أيضًا تثبيت LangChain على Python باستخدام أمر pip البسيط: pip install langchain. لتثبيت جميع اعتماديات LangChain (بدلًا من تثبيت الاعتماديات الضرورية فقط)، يمكنك تنفيذ الأمر pip install langchain[all].

تتوفر العديد من الدروس التعليمية خطوة بخطوة من النظام البنائي لمجتمع LangChain والوثائق الرسمية على موقع  docs.langchain.com (الرابط موجود خارج موقع ibm.com).

حالات استخدام LangChain

تُستخدم التطبيقات التي تم إنشاؤها باستخدام LangChain في مجموعة متنوعة من حالات الاستخدام، بدءًا من المهام البسيطة مثل الإجابة عن الأسئلة وتوليد النصوص، إلى الحلول الأكثر تعقيدًا التي تستفيد من النماذج اللغوية الكبيرة باعتبارها "محركات تفكير".

  • روبوت المحادثة: تعتبر روبوت المحادثة من بين أكثر الاستخدامات البديهية للنماذج اللغوية الكبيرة. يمكن استخدام LangChain لتوفير السياق المناسب لروبوت المحادثة ولدمج روبوتات المحادثة مع قنوات الاتصال الحالية من خلال واجهاتها البرمجية (APIs).
  • التلخيص: يمكن تكليف النماذج اللغوية بتلخيص أنواع متعددة من النصوص، بدءًا من تلخيص المقالات الأكاديمية المعقدة والنصوص الطويلة إلى تقديم ملخص لرسائل البريد الإلكتروني الواردة.
  • الإجابة عن الأسئلة: باستخدام مستندات محددة أو قواعد معرفية متخصصة (مثل Wolfram أو arXiv أو PubMed)، يمكن للنماذج اللغوية الكبيرة استرجاع المعلومات ذات الصلة من مخزن البيانات وصياغة إجابات مفيدة). بعض النماذج اللغوية الكبيرة، عند ضبطها بدقة أو تزويدها بالتوجيه المناسب، يمكنها الإجابة عن العديد من الأسئلة حتى دون الحاجة إلى معلومات خارجية.
  • تعزيز البيانات: يمكن استخدام النماذج اللغوية الكبيرة لتوليد بيانات اصطناعية تُستخدم في تدريب أنظمة التعلم الآلي. على سبيل المثال، يمكن تدريب النماذج اللغوية الكبيرة على توليد عينات بيانات إضافية تشبه إلى حد كبير نقاط البيانات في مجموعة بيانات التدريب.
  • الوكلاء الافتراضيون: عند دمجها مع سير العمل المناسب، يمكن لوحدات الوكلاء في LangChain استخدام النماذج اللغوية الكبيرة لتحديد الخطوات القادمة واتخاذ الإجراءات تلقائيًا باستخدام تقنيات أتمتة العمليات الآلية (RPA).
حلول ذات صلة
نماذج الأساس

استكشف مكتبة نماذج الأساس من IBM في محفظة watsonx لتوسيع نطاق الذكاء الاصطناعي التوليدي لأعمالك بثقة.

اكتشف watsonx.ai
حلول الذكاء الاصطناعي

استفد من الذكاء الاصطناعي في عملك بالاستعانة بخبرة IBM الرائدة في مجال الذكاء الاصطناعي ومحفظة حلولها المتوفرة لك.

استكشف حلول الذكاء الاصطناعي
الاستشارات والخدمات المتعلقة بالذكاء الاصطناعي

أعدّ ابتكار عمليات ومهام سير العمل الحساسة بإضافة الذكاء الاصطناعي لتعزيز التجارب وصنع القرارات في الوقت الفعلي والقيمة التجارية.

استكشف خدمات الذكاء الاصطناعي
اتخِذ الخطوة التالية

استكشف مكتبة نماذج الأساس من IBM في محفظة IBM watsonx لتوسيع نطاق الذكاء الاصطناعي التوليدي لأعمالك بثقة.

استكشف watsonx.ai استكشف حلول الذكاء الاصطناعي
الحواشي

1 The fastest-growing open-source startups in Q2 2023 (link resides outside ibm.com), Runa Capital, 2023