الذكاء الاصطناعي العام
بناء وكلاء LLM ل RAG من الصفر والمتقدم: دليل شامل
تعاني أنظمة LLM مثل GPT-3 و GPT-4 ومكافئها مفتوح المصدر أحيانًا في استرجاع المعلومات الحديثة وقد تولد أحيانًا هلوسات أو معلومات غير صحيحة.
يُستخدم التنميط المعزز بالاسترجاع (RAG) لدمج قدرات LLM مع استرجاع المعرفة الخارجية. يسمح RAG لنا بتأسيس استجابات LLM على معلومات حقيقية ومحدثة، مما يحسن بشكل كبير دقة وموثوقية المحتوى الذي تم إنشاؤه بواسطة الذكاء الاصطناعي.
في هذه المقالة على المدونة، سنستكشف كيفية بناء وكلاء LLM ل RAG من الصفر، وغوصًا عميقًا في الهيكل والتفاصيل التنفيذية والتقنيات المتقدمة. سنغطي كل شيء من أساسيات RAG إلى إنشاء وكلاء متقدمين قادرون على التفكير المعقد وتنفيذ المهام.
قبل أن نغوص في بناء وكيل LLM الخاص بنا، دعونا نفهم ما هو RAG ولماذا هو مهم.
RAG ، أو التنميط المعزز بالاسترجاع، هو نهج هجين يجمع بين استرجاع المعلومات وإنشاء النص. في نظام RAG:
- يُستخدم استعلام لاسترجاع وثائق ذات صلة من قاعدة معرفة.
- ثم يتم إطعام هذه الوثائق إلى نموذج لغة جنبًا إلى جنب مع الاستعلام الأصلي.
- يولد النموذج استجابة بناءً على الاستعلام والمعلومات المسترجعة.
لهذا النهج عدة مزايا:
- دقة محسنة: من خلال تأسيس الاستجابات على المعلومات المسترجعة، يقلل RAG من الهلوسات ويعزز الدقة الحقيقية.
- معلومات محدثة: يمكن تحديث قاعدة المعرفة بانتظام، مما يسمح للنظام بالوصول إلى المعلومات الحالية.
- الشفافية: يمكن للنظام تقديم مصادر لمعلوماته، مما يزيد من الثقة ويمكّن من التحقق من الحقائق.
فهم وكلاء LLM
عندما تواجه مشكلة لا توجد لها إجابة بسيطة، غالبًا ما تحتاج إلى اتباع خطوات متعددة والتفكير بعناية وتذكر ما قمت بمحاولته. تم تصميم وكلاء LLM لهذه الأنواع من الحالات في تطبيقات نموذج اللغة. إنهم يجمعون بين تحليل البيانات الشامل والتخطيط الاستراتيجي واسترجاع البيانات والقدرة على التعلم من الإجراءات السابقة لحل المشكلات المعقدة.
ما هي وكلاء LLM؟
وكلاء LLM هم أنظمة ذكاء اصطناعي متقدمة مصممة لإنشاء نص معقد يتطلب التفكير التسلسلي. يمكنهم التفكير في المستقبل، وتذكر المحادثات السابقة، واستخدام أدوات مختلفة لتعديل استجاباتهم بناءً على الوضع والأسلوب المطلوب.
فكر في سؤال في مجال القانون مثل: “ما هي النتائج القانونية المحتملة لخرق عقد معين في كاليفورنيا؟” يمكن لوكيل LLM الأساسي مع نظام RAG استرجاع المعلومات الضرورية من قواعد بيانات قانونية.
لموقف أكثر تعقيدًا: “في ضوء قوانين خصوصية البيانات الجديدة، ما هي التحديات القانونية الشائعة التي تواجهها الشركات وكيف تعاملت المحاكم مع هذه القضايا؟” هذا السؤال يحفر أعمق من مجرد البحث عن حقائق. إنه حول فهم القواعد الجديدة وتأثيرها على الشركات المختلفة وآراء المحاكم. سيقوم وكيل LLM بتقسيم هذه المهمة إلى مهام فرعية، مثل استرجاع أحدث القوانين وتحليل الحالات التاريخية و تلخيص الوثائق القانونية والتنبؤ بالاتجاهات بناءً على الأنماط.
مكونات وكلاء LLM
يتكون وكلاء LLM عادة من أربعة مكونات:
- الوكيل / الدماغ: النموذج اللغوي الأساسي الذي يعالج ويفهم اللغة.
- التخطيط: القدرة على التفكير وتفكيك المهام وتطوير خطط محددة.
- الذاكرة: تحتفظ بسجلات التفاعلات السابقة وتتعلم منها.
- استخدام الأدوات: يدمج الموارد المختلفة لأداء المهام.
الوكيل / الدماغ
في قلب وكيل LLM يوجد نموذج لغوي يعالج ويفهم اللغة بناءً على كمية هائلة من البيانات التي تم تدريبه عليها. يمكنك البدء bằng إعطائه سؤالا محددًا، وتوجيه الوكيل حول كيفية الاستجابة، والأدوات التي يجب استخدامها، والأهداف التي يجب تحقيقها. يمكنك تخصيص الوكيل بشخصية مناسبة لمهام أو تفاعلات معينة، مما يعزز أدائه.
الذاكرة
يساعد مكون الذاكرة وكلاء LLM على التعامل مع المهام المعقدة من خلال الحفاظ على سجل للإجراءات السابقة. هناك نوعان رئيسيان من الذاكرة:
- الذاكرة القصيرة الأمد: يتصرف مثل ورقة ملاحظات، ويحافظ على مسار المناقشات الجارية.
- الذاكرة الطويلة الأمد: يعمل مثل يوميات، ويخزن المعلومات من التفاعلات السابقة لتعلم الأنماط واتخاذ قرارات أفضل.
من خلال مزج هذه الأنواع من الذاكرة، يمكن للوكيل تقديم استجابات أكثر تخصيصًا وتذكر تفضيلات المستخدم مع مرور الوقت، مما يخلق تفاعلًا أكثر اتصالًا وملاءمة.
التخطيط
يتمكن التخطيط وكلاء LLM من التفكير وتفكيك المهام وتطوير خطط محددة. يتضمن التخطيط مرحلتين رئيسيتين:
- صياغة الخطة: كسر المهمة إلى مهام فرعية أصغر.
- تعكس الخطة: استعراض وتقييم فعالية الخطة، ودمج التغذية الراجعة لتعديل الاستراتيجيات.
الأساليب مثل سلسلة الأفكار (CoT) و شجرة الأفكار (ToT) تساعد في عملية التفكيك هذه، مما يسمح للوكلاء باستكشاف مسارات مختلفة لحل مشكلة.
للمزيد من الغوص في عالم وكلاء الذكاء الاصطناعي، بما في ذلك قدراتهم الحالية وإمكانياتهم، يُرجى قراءة “Auto-GPT & GPT-Engineer: دليل شامل لوكلاء الذكاء الاصطناعي الرائدين اليوم”
إعداد البيئة
للبناء وكيل RAG ، سنحتاج إلى إعداد بيئتنا التطويرية. سنستخدم Python و几个 مكتبات رئيسية:
- LangChain: لتنسيق مكونات LLM و الاسترجاع
- Chroma: كمتجر متجه لترميز الوثائق
- نماذج GPT من OpenAI: كنموذج LLM الأساسي (يمكنك استبداله بنموذج مفتوح المصدر إذا كنت تفضل)
- FastAPI: لإنشاء واجهة برمجة تطبيقات بسيطة للتفاعل مع وكيلنا
دعونا نبدأ bằng إعداد بيئتنا:
# إنشاء بيئة افتراضية جديدة python -m venv rag_agent_env source rag_agent_env/bin/activate # على نظام Windows، استخدم `rag_agent_env\Scripts\activate` # تثبيت الحزم المطلوبة pip install langchain chromadb openai fastapi uvicorn
الآن، دعونا ننشئ ملف Python جديد يسمى rag_agent.py و استيراد المكتبات الضرورية:
from langchain.embeddings import OpenAIEmbeddings from langchain.vectorstores import Chroma from langchain.text_splitter import CharacterTextSplitter from langchain.llms import OpenAI from langchain.chains import RetrievalQA from langchain.document_loaders import TextLoader import os # ضبط مفتاح API OpenAI os.environ["OPENAI_API_KEY"] = "your-api-key-here"
بناء نظام RAG البسيط
الآن بعد أن قمنا بإعداد بيئتنا، دعونا نبني نظام RAG بسيط. سنبدأ بإنشاء قاعدة معرفة من مجموعة من الوثائق، ثم نستخدمها للاستجابة على الاستعلامات.
الخطوة 1: إعداد الوثائق
أولاً، نحتاج إلى تحميل وتحضير الوثائق. في هذا المثال، دعونا نفترض أن لدينا ملف نصي يسمى knowledge_base.txt يحتوي على بعض المعلومات حول الذكاء الاصطناعي والتعلم الآلي.
# تحميل الوثيقة
loader = TextLoader("knowledge_base.txt")
documents = loader.load()
# تقسيم الوثائق إلى قطع
text_splitter = CharacterTextSplitter(chunk_size=1000, chunk_overlap=0)
texts = text_splitter.split_documents(documents)
# إنشاء الترميزات
embeddings = OpenAIEmbeddings()
# إنشاء متجر متجه
vectorstore = Chroma.from_documents(texts, embeddings)
الخطوة 2: إنشاء سلسلة استعلام استرجاع
الآن بعد أن لدينا متجر المتجهات، يمكننا إنشاء سلسلة استعلام استرجاع:
# إنشاء سلسلة استعلام استرجاع qa = RetrievalQA.from_chain_type(llm=OpenAI(), chain_type="stuff", retriever=vectorstore.as_retriever())
الخطوة 3: استعلام النظام
يمكننا الآن استعلام نظام RAG:
query = "ما هي التطبيقات الرئيسية للتعلم الآلي؟" result = qa.run(query) print(result)
الخطوة 4: إنشاء وكيل LLM
بينما نظام RAG البسيط مفيد، فهو محدود للغاية. دعونا نقوم بتحسينه عن طريق إنشاء وكيل LLM يمكنه أداء مهام أكثر تعقيدًا والتفكير في المعلومات التي يسترجعها.
وكيل LLM هو نظام ذكاء اصطناعي يمكنه استخدام الأدوات واتخاذ قرارات بشأن الإجراءات التي يجب اتخاذها. سننشئ وكيلًا يمكنه ليس فقط الإجابة على الأسئلة ولكن أيضًا إجراء عمليات بحث على الويب وحسابات أساسية.
أولاً، دعونا نحدد بعض الأدوات لوكيلنا:
from langchain.agents import Tool
from langchain.tools import DuckDuckGoSearchRun
from langchain.tools import BaseTool
from langchain.agents import initialize_agent
from langchain.agents import AgentType
# تعريف أداة حاسبة
class CalculatorTool(BaseTool):
name = “Calculator”
description = “مفيد عند الحاجة إلى الإجابة على أسئلة حول الرياضيات”
def _run(self, query: str)














