النقاط الرئيسية
- التعامل مع السياقات الطويلة في نماذج اللغة الكبيرة: يستكشف التحديات والتقنيات لإدارة التسلسلات الأطول من أطوال السياق التقليدية، وهو أمر بالغ الأهمية لمهام مثل تلخيص المستندات المتعددة والإجابة على الأسئلة المعقدة.
- مزايا تعزيز الاسترجاع: يسلط الضوء على فوائد تعزيز الاسترجاع في تمكين نماذج اللغة الكبيرة من معالجة السياقات الطويلة بشكل تعسفي بكفاءة من خلال التركيز فقط على المعلومات ذات الصلة المسترجعة من مصادر خارجية.
- التطبيقات الواقعية: يدرس حالات الاستخدام العملي حيث يعزز الاسترجاع أداء نماذج اللغة الكبيرة، مثل الإجابة على الأسئلة في المجال المفتوح، وتلخيص المستندات المتعددة، وأنظمة الحوار.
- إرشادات دمج واجهة برمجة تطبيقات LLM: يوفر خطوات عملية وإرشادات لدمج تعزيز الاسترجاع مع واجهة برمجة تطبيقات LLM.
مقدمة
هل تساءلت يومًا كيف تتعامل نماذج اللغة مع كميات هائلة من المعلومات في مهام مثل تلخيص المستندات الطويلة؟ ماذا يحدث عندما يلتقي الاسترجاع مع نماذج اللغة الكبيرة ذات السياق الطويل؟
في هذه المدونة، بالاستناد إلى الورقة البحثية “Retrieval Meets Long Context Large Language Models”، نتعمق في تحديات التعامل مع السياقات الطويلة في LLM، ونستكشف حلولًا مبتكرة مثل تعزيز الاسترجاع، ونناقش تطبيقاتها، ونقدم لك دليلًا لدمج الاسترجاع المعزز مع واجهة برمجة تطبيقات LLM.
فهم السياق الطويل في نماذج اللغة الكبيرة
التعريف
يشير السياق الطويل في نماذج اللغة إلى القدرة على التعامل مع تسلسلات الإدخال التي تكون أطول بكثير من أطوال السياق النموذجية المستخدمة أثناء التدريب المسبق. العديد من نماذج اللغة المستخدمة على نطاق واسع مثل GPT-2 و GPT-3 تم تدريبها مسبقًا على تسلسلات يصل طولها إلى 1024 أو 2048 رمزًا. ومع ذلك، تتطلب العديد من المهام الواقعية، مثل الإجابة على الأسئلة عبر المستندات الطويلة أو تلخيص المستندات المتعددة، فهمًا واستدلالًا عبر سياقات أطول بكثير تتراوح من آلاف إلى عشرات الآلاف من الرموز.
التحديات
يمثل التعامل مع السياق الطويل بكفاءة في نماذج اللغة تحديًا كبيرًا بسبب التعقيد الزمني والذاكرة التربيعي لآلية الانتباه الذاتي المستخدمة في النماذج القائمة على المحول. مع زيادة طول تسلسل الإدخال، تنمو متطلبات الحساب والذاكرة للانتباه الذاتي بشكل تربيعي، مما يجعل معالجة التسلسلات الطويلة جدًا بالانتباه الدقيق غير ممكنة.

الأهمية
تتطلب العديد من التطبيقات الواقعية، مثل تلخيص المستندات، والإجابة على الأسئلة عبر قواعد المعرفة الكبيرة، وأنظمة الحوار متعددة الأدوار، الاستدلال عبر سياقات طويلة تمتد عبر مستندات متعددة أو دورات محادثة. يمكن أن يؤدي تعزيز قدرات السياق الطويل إلى فتح إمكانيات جديدة وتحسين أداء نماذج اللغة في هذه المجالات، مما يؤدي إلى فهم وتوليد لغة أكثر فعالية وشبيهة بالبشر.
طريقتان للتعامل مع السياقات الطويلة
في الورقة البحثية “Retrieval Meets Long Context Large Language Models”، قدم المؤلفون طريقتين تتعامل بهما نماذج اللغة الكبيرة مع السياقات الطويلة.
نافذة السياق الموسعة
إحدى طرق التعامل مع السياق الطويل هي توسيع حجم نافذة السياق لنموذج اللغة نفسه، مما يسمح له بمعالجة تسلسلات الإدخال الأطول مباشرة من خلال آلية الانتباه الذاتي الخاصة به.
يمكن تحقيق ذلك من خلال تقنيات مختلفة:
- تطبيقات الانتباه الفعالة:
تعمل طرق مثل FlashAttention (Dao et al., 2022) على تحسين حساب الانتباه الذاتي الدقيق من خلال الاستفادة بشكل أفضل من تسلسل ذاكرة GPU. يسمح هذا بمعالجة تسلسلات أطول بانتباه دقيق دون تقريبات. - الاستيفاء الموضعي:
تستخدم العديد من نماذج اللغة تضمينات موضعية نسبية مثل تضمينات الموضع الدوارة (RoPE). يمكن لتقنيات الاستيفاء الموضعي (Chen et al., 2023; Kaiokendev, 2023) استقراء هذه التضمينات إلى ما وراء طول السياق الأصلي المستخدم أثناء التدريب المسبق. يسمح هذا بتوسيع نافذة السياق دون إعادة تدريب كاملة. - الاستمرار في التدريب المسبق/الضبط الدقيق:
يمكن تدريب النماذج بشكل أكبر أو ضبطها بدقة على تسلسلات أطول لتوسيع قدرات السياق الخاصة بها. على سبيل المثال، يقوم LongLLaMA (Tworkowski et al., 2023) بضبط نقاط التفتيش OpenLLaMA بدقة مع تدريب تبايني على سياقات 8K. - الانتباه المتناثر/المعلم:
بدلاً من الانتباه الذاتي الكامل، يركز الانتباه المتناثر (Child et al., 2019) أو انتباه المعالم (Mohtashami & Jaggi, 2023) فقط على مجموعة فرعية متناثرة من السياق بناءً على أنماط محددة مسبقًا أو تمثيلات “معالم” مكتسبة. يقلل هذا من الحساب مما يسمح بسياقات أطول. - التقسيم إلى نوافذ/أجزاء:
يمكن تقسيم السياق الطويل إلى عدة نوافذ/أجزاء متداخلة، مع إعادة استخدام التضمينات الموضعية عبر النوافذ (Ratner et al., 2023). يعالج النموذج كل جزء بشكل مستقل قبل دمج المخرجات.
من خلال توسيع نافذة السياق، يمكن لنماذج اللغة الانتباه مباشرة والاستدلال عبر السياقات الطويلة دون الاعتماد على نظام استرجاع منفصل.
شرح تعزيز الاسترجاع

تعزيز الاسترجاع هو عملية من خطوتين:
1 خطوة الاسترجاع
في هذه الخطوة، يتم استخدام نظام استرجاع منفصل لتحديد واسترجاع السياق ذي الصلة من مجموعة كبيرة بناءً على الاستعلام أو المطالبة المدخلة. يمكن أن يكون نظام الاسترجاع هذا مسترجعًا كثيفًا للمقاطع، أو مسترجعًا متناثرًا قائمًا على المصطلحات، أو مزيجًا من الاثنين معًا.
يقوم نظام الاسترجاع بتشفير جميع المستندات/المقاطع في المجموعة إلى تمثيلات متجهة كثيفة. بالنظر إلى استعلام الإدخال، فإنه يسترجع أهم k من المستندات/المقاطع الأكثر صلة عن طريق حساب التشابه بين تمثيل الاستعلام وجميع تمثيلات المستندات في المجموعة.
بعض نماذج الاسترجاع الشائعة المستخدمة هي DPR (Karpukhin et al., 2020)، REALM (Guu et al., 2020)، و ColBERT (Khattab & Zaharia, 2020). استكشفت الأعمال الحديثة أيضًا المسترجعات الكثيفة المتعلمة (Xiong et al., 2021) والاسترجاع عبر مخازن الذاكرة البارامترية (Borgeaud et al., 2022).
2 خطوة نموذج اللغة
يتم تسلسل أهم k من المستندات/المقاطع المسترجعة وتمريرها كسياق إدخال إلى نموذج اللغة، إلى جانب الاستعلام/المطالبة الأصلية. ثم يقوم نموذج اللغة بمعالجة هذا السياق الطويل المتسلسل باستخدام آلية الانتباه الذاتي الخاصة به لتوليد المخرجات.
بعض المزايا الرئيسية لتعزيز الاسترجاع هي:
- يسمح بالتعامل مع السياقات الطويلة بشكل تعسفي عن طريق استرجاع الأجزاء ذات الصلة فقط.
- يمكن تحسين نظام الاسترجاع بشكل كبير للبحث الفعال عن أقصى حاصل ضرب داخلي عبر المجموعات الكبيرة.
- يمكن لنموذج اللغة التركيز على فهم وتوليد مخرجات متماسكة للسياق المحدد.
مقارنة الأداء: تعزيز الاسترجاع مقابل نافذة السياق الموسعة
في الورقة البحثية “Retrieval Meets Long Context Large Language Models”، أجرى المؤلفون دراسة شاملة لمقارنة أداء تعزيز الاسترجاع وأساليب نافذة السياق الموسعة للتعامل مع السياق الطويل في نماذج اللغة.
تصميم التجربة
استخدموا نموذجين حديثين من نماذج اللغة الكبيرة: نموذج GPT مملوك بحجم 43 مليار معلمة ونموذج Llama2–70B المتاح للجمهور.
بالنسبة لأسلوب نافذة السياق الموسعة، قاموا بتوسيع نافذة السياق الأصلية 4K لهذه النماذج إلى 16K و 32K باستخدام تقنيات الاستيفاء الموضعي.
بالنسبة لتعزيز الاسترجاع، استخدموا نظام استرجاع منفصل لتحديد واسترجاع السياق الأكثر صلة من مجموعة بناءً على استعلام الإدخال.
تم تقييم أداء هذه الأساليب على 9 مهام سياق طويل، بما في ذلك الإجابة على الأسئلة بمستند واحد ومتعدد المستندات، والتلخيص القائم على الاستعلام، ومهام التعلم القليلة اللقطات ضمن السياق.
النتائج
النتائج الرئيسية من التجارب هي:
- أدى تعزيز الاسترجاع إلى تحسين أداء نماذج LLM ذات نافذة السياق 4K بشكل ملحوظ. والمثير للدهشة أن نموذج 4K المعزز بالاسترجاع حقق أداءً مشابهًا لنموذج نافذة السياق 16K في مهام السياق الطويل (متوسط الدرجات 29.32 مقابل 29.45 لـ GPT-43B، و 36.02 مقابل 36.78 لـ Llama2–70B)، مع استخدام حسابات أقل بكثير.

- لا يزال من الممكن تحسين أداء نماذج LLM ذات السياق الطويل (16K أو 32K) عن طريق تعزيز الاسترجاع، خاصة بالنسبة لنموذج Llama2–70B الأكبر. النموذج الأفضل، Llama2–70B المعزز بالاسترجاع مع نافذة سياق 32K، تفوق على GPT-3.5-turbo-16k و Davinci003 من حيث متوسط الدرجات في 9 مهام السياق الطويل.
- لم يتفوق نموذج Llama2–70B-32k المعزز بالاسترجاع على خط الأساس غير المسترجع (متوسط الدرجات 43.6 مقابل 40.9) فحسب، بل كان أيضًا أسرع بشكل ملحوظ في وقت التوليد (على سبيل المثال، أسرع 4 مرات في مهمة NarrativeQA).
المناقشة
يمكن أن يكون تعزيز الاسترجاع أسلوبًا فعالاً وكفؤًا للتعامل مع السياق الطويل في نماذج اللغة، خاصة لأحجام نافذة السياق الأصغر. يمكن أن يحقق أداءً مشابهًا لنماذج نافذة السياق الموسعة مع الحاجة إلى حسابات أقل بكثير.
ومع ذلك، بالنسبة لنماذج اللغة الأكبر مثل Llama2–70B، فإن الجمع بين تعزيز الاسترجاع ونافذة السياق الموسعة يمكن أن يعزز الأداء بشكل أكبر في مهام السياق الطويل. يشير هذا إلى أن الأسلوبين متكاملان ويمكن دمجهما للاستفادة من نقاط القوة الخاصة بكل منهما.
تطبيقات وحالات استخدام تعزيز الاسترجاع
الإجابة على الأسئلة في المجال المفتوح
في الإجابة على الأسئلة في المجال المفتوح، يحتاج النظام إلى استرجاع المعلومات ذات الصلة من مجموعة كبيرة (مثل ويكيبيديا) للإجابة على الأسئلة حول مجموعة واسعة من المواضيع بدقة. يسمح تعزيز الاسترجاع لنموذج اللغة بالتركيز على السياق الأكثر صلة، مما يحسن قدرته على تقديم إجابات شاملة ومبنية على أسس جيدة.
تلخيص المستندات المتعددة
يعد إنشاء ملخصات من مستندات طويلة متعددة مهمة صعبة تتطلب فهمًا وتكثيفًا للمعلومات من مصادر مختلفة. من خلال استرجاع المقاطع الأكثر صلة عبر المستندات، يمكن أن يوفر تعزيز الاسترجاع لنموذج اللغة السياق اللازم لإنتاج ملخصات متماسكة وغنية بالمعلومات.
أنظمة الحوار
في سيناريوهات الحوار متعددة الأدوار، مثل الحوارات الموجهة نحو المهام أو المحادثات في المجال المفتوح، يمكن أن يمتد السياق عبر أدوار متعددة ومصادر معرفة خارجية. يمكن أن يساعد تعزيز الاسترجاع في استرجاع السياق ذي الصلة من الأدوار السابقة وقواعد المعرفة الخارجية، مما يمكن نموذج اللغة من توليد استجابات أكثر تماسكًا واستنارة.
التطبيقات كثيفة المعرفة
تتطلب العديد من التطبيقات في مجالات مثل المالية والرعاية الصحية والقانونية الاستدلال عبر قواعد معرفة كبيرة أو مستودعات مستندات. يمكن أن يساعد تعزيز الاسترجاع نماذج اللغة في تحديد والاستفادة من المعلومات الأكثر صلة من هذه المصادر، مما يؤدي إلى مخرجات أكثر دقة واستنارة.
دليل خطوة بخطوة لدمج تعزيز الاسترجاع مع Llama 3
نظرًا لأن نموذج Llama يُظهر أداءً مذهلاً عند دمج تعزيز الاسترجاع، إليك دليل خطوة بخطوة لدمج تعزيز الاسترجاع مع واجهة برمجة تطبيقات Llama 3 التي توفرها Novita AI:
الخطوة 1: إعداد نظام الاسترجاع
- اختر نظام استرجاع مثل DPR (مسترد المقاطع الكثيف)، REALM، أو ColBERT، والتي تم ذكرها في الورقة البحثية “Retrieval Meets Long Context Large Language Models”. يمكنك العثور على المزيد منها على Huggingface أو Github.
- قم بفهرسة مجموعتك (المستندات، قاعدة المعرفة، إلخ) في نظام الاسترجاع المختار.
- قم بتحسين وضبط نظام الاسترجاع بدقة لمجالك ومهمتك.
الخطوة 2: إجراء استدعاء API الأولي
- قم باستيراد مكتبة OpenAI وإنشاء عميل باستخدام مفتاح API الخاص بـ Novita AI وعنوان القاعدة.
from openai import OpenAI
client = OpenAI(
base_url="https://api.novita.ai/v3/openai",
api_key="<YOUR Novita AI API Key>",
)
الخطوة 3: استرجاع السياق ذي الصلة
- استخدم المطالبة أو الاستعلام المدخل لاسترجاع أهم k من المقاطع أو المستندات الأكثر صلة من مجموعتك باستخدام نظام الاسترجاع.
- قم بتسلسل المقاطع المسترجعة في سلسلة واحدة لتشكيل السياق.
الخطوة 4: إجراء استدعاء LLM API مع السياق المسترجع
- قم بتعيين معلمة
modelإلى LLM المطلوب، على سبيل المثال،meta-llama/llama-3–70b-instruct. - قم ببناء
promptعن طريق تسلسل استعلام الإدخال والسياق المسترجع. - قم بتعيين معلمات أخرى مثل
max_tokens,stream، إلخ، وفقًا لمتطلباتك. - اتصل بطريقة
client.completions.createمع المطالبة والمعلمات المنشأة.
model = "meta-llama/llama-3-70b-instruct"
prompt = "Input query: " + input_query + "\
Retrieved Context: " + retrieved_context
completion_res = client.completions.create(
model=model,
prompt=prompt,
stream=True,
max_tokens=512,
)
الخطوة 5: معالجة استجابة LLM
- يحتوي كائن
completion_resعلى الاستجابة المولدة من LLM. - يمكنك معالجة الاستجابة وفقًا لاحتياجاتك، مثل الطباعة أو الحفظ أو مزيد من المعالجة.
for chunk in completion_res:
output = chunk["choices"][0]["text"]
print(output, end="", flush=True)
باتباع هذه الخطوات، يمكنك دمج تعزيز الاسترجاع مع واجهة برمجة تطبيقات Novita AI LLM. الجوانب الرئيسية هي:
- إعداد نظام استرجاع منفصل وفهرسة مجموعتك.
- استرجاع السياق ذي الصلة باستخدام استعلام الإدخال.
- تسلسل استعلام الإدخال والسياق المسترجع لتشكيل المطالبة.
- إجراء استدعاء LLM API مع المطالبة المنشأة.
- معالجة الاستجابة المولدة من LLM.
يسمح لك هذا النهج بالاستفادة من نقاط القوة لكل من أنظمة الاسترجاع ونماذج اللغة الكبيرة، مما يتيح التعامل الفعال مع السياق الطويل وتحسين الأداء في مهام فهم وتوليد اللغة الطبيعية.
تحديات واعتبارات تعزيز الاسترجاع
الآثار الأخلاقية
تثير النماذج المعززة بالاسترجاع مخاوف أخلاقية بشأن تضخيم التحيز ومخاطر الخصوصية بسبب اعتمادها على مجموعات بيانات واسعة. يمكن أن تستمر التحيزات المتأصلة في مجموعات البيانات هذه، بينما يشكل استخدام بيانات المستخدم على نطاق واسع تحديات خصوصية تتطلب ضمانات قوية.
التحديات التقنية
من الناحية التقنية، يمثل توسيع نطاق هذه النماذج تحديات في تحسين الكفاءة وأوقات الاستجابة، وهو أمر بالغ الأهمية للتطبيقات في الوقت الفعلي. يضيف دمج آليات الاسترجاع تعقيدًا إلى خطوط أنابيب النموذج، مما يتطلب بنية تحتية متقدمة واستراتيجيات فعالة لإدارة البيانات.
الاتجاهات المستقبلية
تشمل الاتجاهات المستقبلية تحسين قابلية تفسير النموذج للشفافية وتحسين مقاييس الأداء للتقييم الدقيق عبر النماذج المختلفة. سيعمل دمج آليات التغذية الراجعة وأساليب التعلم التكيفي على تعزيز هذه النماذج بشكل أكبر لتطبيقات متنوعة في معالجة اللغة الطبيعية.
مع استمرار تطور هذه التقنيات، فإن دمج آليات التغذية الراجعة وأساليب التعلم التكيفي سيعمل على تحسين نماذج LLM المعززة بالاسترجاع بشكل أكبر لتطبيقات متنوعة في معالجة اللغة الطبيعية.
الخلاصة
في هذه التدوينة، استكشفنا مفهوم السياق الطويل في نماذج اللغة، وتحدياته، وأهميته في التطبيقات المختلفة. لقد رأينا كيف يمكن أن يكون تعزيز الاسترجاع أسلوبًا فعالاً وكفؤًا عندما تتعامل نماذج LLM مع مهام السياق الطويل.
علاوة على ذلك، قدمنا أيضًا دليلًا خطوة بخطوة لدمج تعزيز الاسترجاع مع واجهة برمجة تطبيقات Llama 3 وناقشنا تحديات واعتبارات تعزيز الاسترجاع. من خلال فهم هذه الأساليب والمقايضات الخاصة بها، يمكننا فتح إمكانيات جديدة لنماذج اللغة للتعامل مع السياق الطويل وتحقيق فهم وتوليد لغة أكثر فعالية وشبيهة بالبشر.
المراجع
Amirkeivan Mohtashami and Martin Jaggi. Landmark attention: Random-access infinite context length for transformers. arXiv preprint arXiv:2305.16300, 2023.
Kaiokendev. Things I’m learning while training SuperHOT. https://kaiokendev.github. io/til#extending-context-to-8k, 2023.
Karpukhin, V., & Bajaj, S. (2023). Retrieval meets long context large language models. Journal of Artificial Intelligence Research, 57(1), 123–145.
Nir Ratner, Yoav Levine, Yonatan Belinkov, Ori Ram, Inbal Magar, Omri Abend, Ehud Karpas, Amnon Shashua, Kevin Leyton-Brown, and Yoav Shoham. Parallel context windows for large language models. In ACL, 2023.
Rewon Child, Scott Gray, Alec Radford, and Ilya Sutskever. Generating long sequences with sparsetransformers. arXiv preprint arXiv:1904.10509, 2019.
Shouyuan Chen, Sherman Wong, Liangjian Chen, and Yuandong Tian. Extending context window of large language models via positional interpolation. arXiv preprint arXiv:2306.15595, 2023.
Szymon Tworkowski, Konrad Staniszewski, Mikołaj Pacek, Yuhuai Wu, Henryk Michalewski, and Piotr Miłos ́. Focused transformer: Contrastive training for context scaling. arXiv preprint arXiv:2307.03170, 2023.
Tri Dao, Dan Fu, Stefano Ermon, Atri Rudra, and Christopher Ré. Flashattention: Fast and memory- efficient exact attention with io-awareness. NeurIPS, 2022.
Novita AI هي المنصة السحابية الشاملة التي تمكّن طموحاتك في الذكاء الاصطناعي. مع واجهات برمجة تطبيقات متكاملة بسلاسة، وحوسبة بدون خادم، وتسريع GPU، نقدم الأدوات الفعالة من حيث التكلفة التي تحتاجها لبناء وتوسيع نطاق أعمالك المدعومة بالذكاء الاصطناعي بسرعة. تخلص من متاعب البنية التحتية وابدأ مجانًا — Novita AI تجعل أحلامك في الذكاء الاصطناعي حقيقة.
قراءة موصى بها
