يحتوي هذا المستودع على تنفيذ روبوت الذكاء الاصطناعي الذي تم إنشاؤه باستخدام نموذج محول ( gpt2 ) من وجه المعانقة. يقوم chatbot بتعزيز FAISS لتخزين قاعدة بيانات المتجهات لمطابقة استعلامات المستخدم بكفاءة مع البيانات ذات الصلة. تم كشط البيانات المستخدمة للتدريب وتوليد الاستجابة من دورة Stanford LLM الرسمية.
gpt2 من الوجه المعانقة. تجريف البيانات : يتم تجسيد البيانات من محاضرات مختلفة لدورة ستانفورد LLM. تعمل العلامات h2 و h3 و <strong> كمفاتيح ، ويتم تصنيف المحتوى المقابل في الفقرات والجداول والروابط والمعادلات والقوائم المطلوبة والقوائم غير المرتبة.
قاعدة بيانات المتجه (FAISS) : يتم تخزين المفاتيح في قاعدة بيانات متجه FAISS باستخدام مسافة L2 لاسترجاع فعال. عند استلام استعلام المستخدم ، يجد Faiss أفضل مفتاحين مطابقة على أساس تشابه المتجه.
جيل المطالبات : يقوم chatbot بإنشاء مطالبة منظمة باستخدام البيانات التي تم استردادها من FAISS. تتضمن هذه المطالبة الفقرات والجداول والمعادلات والروابط والقوائم المطلوبة والقوائم غير المرتبة على أنها ذات صلة بالمفاتيح المتطابقة.
توليد الاستجابة : يتم تغذية المطالبة التي تم بناؤها في نموذج GPT-2 لإنشاء استجابة متماسكة وذات صلة لاستعلام المستخدم.
تحتوي البيانات المكسورة من محاضرات دورة Stanford LLM على المخطط التالي:
key1:{
{
'paragraphs': [],
'tables': [],
'links': [],
'equations': [],
'ordered_lists': [],
'unordered_lists': []
} }
key2:{
{
'paragraphs': [],
'tables': [],
'links': [],
'equations': [],
'ordered_lists': [],
'unordered_lists': []
} }
يتوافق كل مفتاح مع علامات h2 أو h3 أو <strong> من صفحات المحاضرات. تتضمن البيانات المرتبطة بكل مفتاح الفقرات والجداول والروابط والمعادلات والقوائم المطلوبة والقوائم غير المرتبة إذا كانت موجودة.
استعلام المستخدم : "ما هي الفوائد والأضرار؟"
استرجاع FAISS : يتم مطابقة الاستعلام مع أفضل مفتاحين في قاعدة بيانات المتجه باستخدام مسافة L2.
البناء الفوري :
# Create a structured prompt
prompt = f"**Question:** {query}nn"
# Add top 2 matched sections
prompt += f"**Sections:**n- {result_key1}n- {result_key2}nn"
# Add content to the prompt
for result_key, result_content in [(result_key1, result_content1), (result_key2, result_content2)]:
if result_content.get('paragraphs'):
prompt += "**Paragraphs:**n" + "n".join(result_content['paragraphs']) + "nn"
if result_content.get('ordered_lists'):
prompt += "**Ordered Lists:**n" + "n".join(["n".join(ol) for ol in result_content['ordered_lists']]) + "nn"
if result_content.get('unordered_lists'):
prompt += "**Unordered Lists:**n" + "n".join(["n".join(ul) for ul in result_content['unordered_lists']]) + "nn"
if result_content.get('tables'):
prompt += "**Tables:**n" + "n".join(["n".join(table) for table in result_content['tables']]) + "nn"
if result_content.get('links'):
prompt += "**Links:**n" + "n".join(result_content['links']) + "nn"
if result_content.get('equations'):
prompt += "**Equations:**n" + "n".join(result_content['equations']) + "nn"
# Add a closing statement
prompt += "Answer is :"
# Define max_length
max_length = min(len(prompt) + 100, 750)
# Generate response
response = generator(prompt[:750], max_length=max_length, num_return_sequences=1, truncation=True, pad_token_id=50256)
استجابة تم إنشاؤها : يستخدم نموذج GPT-2 المطالبة لإنشاء استجابة مفصلة.

تعرض لقطة الشاشة هذه تفاعلًا مثالًا حيث يستجيب chatbot لاستعلام المستخدم حول أساسيات LLMs.
تم تدريب النموذج على Kaggle باستخدام موارد وحدة المعالجة المركزية.
المساهمات مرحب بها! يرجى فتح مشكلة أو إرسال طلب سحب لأي تحسينات أو ميزات جديدة.
هذا المشروع مرخص بموجب ترخيص معهد ماساتشوستس للتكنولوجيا. انظر ملف الترخيص للحصول على التفاصيل.