1. مقدمة حول النماذج اللغوية الكبيرة

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

حاليًا، تجمع سلسلة اللغة العديد من النماذج اللغوية الكبيرة وتدعم أيضًا النماذج المخصصة. يمكن للمطورين تجميع واجهات نماذجهم الخاصة.

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

2. الإعداد

2.1 التثبيت

لاستخدام OpenAI LLM في سلسلة اللغة، يحتاج المستخدمون إلى تثبيت حزمة OpenAI Python عن طريق تشغيل الأمر التالي:

pip install openai

2.2 إعداد مفتاح الواجهة البرمجية (API Key)

يتطلب الوصول إلى واجهة برمجة التطبيقات (API) الخاصة بـ OpenAI الحصول على مفتاح API، والذي يمكن الحصول عليه عن طريق إنشاء حساب على منصة OpenAI. بمجرد الحصول على مفتاح الواجهة البرمجية، يمكن تعيينه كمتغير بيئة باستخدام الأمر التالي:

export OPENAI_API_KEY="your-api-key"

بالإضافة إلى ذلك، إذا كنت لا ترغب في تعيين متغير بيئي، يمكنك أيضًا تمرير مفتاح الواجهة البرمجية مباشرة عند تهيئة فئة OpenAI LLM، على النحو الموضح أدناه:

from langchain_openai import OpenAI

llm = OpenAI(openai_api_key="your-api-key")

3. تنفيذ LCEL

في سلسلة اللغة، تنفذ النماذج اللغوية الكبيرة واجهة Runnable Interface لـ لغة تعبير سلسلة اللغة (LCEL). هذا يعني أنها تدعم مختلف الاستدعاءات الوظيفية، مثل invoke، stream، batch، وغيرها.

تقبل النماذج اللغوية الكبيرة إدخال سلسلة نصية أو كائنات يمكن تحويلها إلى موضوع نصي، بما في ذلك List[BaseMessage] و PromptValue.

4. مثال على استخدام LLM

4.1 الاستدعاء

لاستدعاء نموذج اللغة الكبيرة مع موضوع محدد، يمكن استخدام وظيفة invoke، كما هو موضح أدناه:

llm.invoke("ضع النص المطلوب لنموذج اللغة الكبيرة هنا")

4.2 التدفق

الطريقة التي يتم فيها الحصول على النص الخرجي ومعالجته في الوقت الحقيقي من النماذج اللغوية الكبيرة تُسمى التدفق. فيما يلي مثال على استخدام LLM لمعالجة التدفق:

for chunk in llm.stream("ضع موضوعًا لمعالجة التدفق الخاص بـ LLM هنا"):
    print(chunk, end="", flush=True)

4.3 معالجة الدفعة

تُسمح معالجة الدفعة بمعالجة متوازية للمدخلات المتعددة لـ النماذج اللغوية الكبيرة. يمكنك معالجة دفعة من الموضوعات بهذا الشكل:

llm.batch(["موضوع 1", "موضوع 2", "موضوع 3"])

4.4 العمليات غير المتزامنة

من أجل زيادة الكفاءة، يمكن استخدام العمليات غير المتزامنة بالتزامن مع النماذج اللغوية الكبيرة. تُمكن العمليات غير المتزامنة مثل ainvoke، astream، abatch، و astream_log من التنفيذ غير المتزامن. يُظهر المثال أدناه استخدام LLM لمعالجة التدفق بشكل غير متزامن:

async for chunk in llm.astream("قدم موضوعًا غير متزامن لمعالجة التدفق الخاص بـ LLM هنا"):
    print(chunk, end="", flush=True)

تُظهر هذه الأمثلة الطرق المتنوعة للاستفادة من النماذج اللغوية الكبيرة في مهام معالجة اللغة الطبيعية ضمن إطار سلسلة اللغة.