نماذج التضمين هي شبكات عصبية تعتمد على المحوِّلات تقوم بتحويل مقاطع من المستندات (أي مقاطع نصية) إلى تمثيل رقمي أو متَّجه. سيتم تعيين المحتوى المتشابه في المعنى أو الدلالة إلى تمثيل متشابه داخل الفضاء الكامن، كما هو موضَّح في الصورة أدناه.
تحويل اللغة إلى متجهات يُتيح تطبيقات مدعومة بالذكاء الاصطناعي مثل "التفاعل مع المستندات" أو البحث الدلالي، بدلًا من البحث التقليدي بالكلمات المفتاحية.
سيؤثِّر نموذج التضمين الذي تختاره بشكل كبير في دقة الاسترجاع وزمن الانتقال والتكلفة الحاسوبية لنظام التوليد المعزز بالاسترجاع (RAG) الخاص بك. يتأثَّر اختيارك لنموذج التضمين إلى حد كبير بحجمه، والذي يعتمد على خاصيَّتين: بُعد التضمين وعدد مَعلمات النموذج.
عادةً ما يعزز نموذج التضمين الأكبر أداء الاسترجاع، لكنه يأتي على حساب زيادة زمن الانتقال ومتطلبات التخزين والتكلفة الحاسوبية (المالية). في المقابل، يقدِّم نموذج التضمين الأصغر عادةً أداء استرجاع أقل، لكنه يستهلك ذاكرة أقل ويتطلب قدرة حوسبة أقل ويعمل بسرعة أكبر أثناء التشغيل. اختَر نموذج تضمين يحقق توازنًا بين متطلبات الأداء والموارد المتاحة.
بعض نماذج التضمين تكون مخصَّصة للغة معينة (مثل نماذج التضمين الإسبانية المصممة للعملاء الناطقين بالإسبانية)، كما قد تكون مخصَّصة لمجال معين (مثل نموذج مدرَّب على مصطلحات علم الأورام لتمكين RAG على الملفات الطبية).
يُوصى باستخدام نماذج التضمين المنشورة على watsonx، مثل نماذج Slate المطوَّرة من IBM أو نماذج الجهات الخارجية المدرجة أدناه. يُرجى الاطِّلاع على هذه الوثائق للتعرُّف على تفاصيل كل نموذج. للمزيد من المعلومات حول فئات الفوترة، راجِع خطط الفوترة في watsonx.
نماذج IBM Slate
| اسم النموذج | API model_id | فئة الفوترة | الحد الأقصى للرموز المميزة للإدخال | عدد الأبعاد | المزيد من المعلومات |
|---|---|---|---|---|---|
| slate-125m-english-rtrvr | ibm/slate-125m-english-rtrvr | الفئة C1 | 512 | 768 | بطاقة النموذج |
| slate-30m-english-rtrvr | ibm/slate-30m-english-rtrvr | الفئة C1 | 512 | 384 | بطاقة النموذج |
يتم توفير نموذج الأساس slate-125m-english-rtrvr بواسطة IBM. يعمل نموذج الأساس slate-125m-english-rtrvr على إنشاء تضمينات لمختلف أنواع المدخلات مثل الاستعلامات أو المقاطع النصية أو المستندات. الهدف من التدريب هو زيادة تشابه جيب التمام بين الاستعلام والمقطع النصي. تنتج هذه العملية تضمينَين للجمل، أحدهما يمثِّل السؤال والآخر يمثِّل المقطع النصي، ما يُتيح مقارنة الاثنين باستخدام تشابه جيب التمام.
الاستخدام: أبطأ بمقدار مرتين إلى ثلاث مرات، لكنه يحقق أداءً أفضل قليلًا مقارنةً بنموذج slate-30m-english-rtrvr. اللغات المدعومة: الإنجليزية.
يُعَد نموذج الأساس slate-30m-english-rtrvr نسخة مختصرة من slate-125m-english-rtrvr، وكلاهما مقدَّم من IBM. تم تدريب نموذج التضمين slate-30m-english-rtrvr لزيادة تشابه جيب التمام بين مُدخلين نصيين بحيث يمكن لاحقًا تقييم التضمينات بناءً على درجة التشابه.
الاستخدام: أسرع بمرتين إلى ثلاث مرات، لكنه يحقق درجات أداء أقل قليلًا من نموذج slate-125m-english-rtrvr. اللغات المدعومة: الإنجليزية.
نماذج التضمين من الجهات الخارجية المتاحة مع watsonx.
| اسم النموذج | API model_id | المزود | فئة الفوترة | الحد الأقصى للرموز المميزة للإدخال | عدد الأبعاد | المزيد من المعلومات |
|---|---|---|---|---|---|---|
| all-minilm-l12-v2 | sentence-transformers/all-minilm-l12-v2 | مجتمع المصادر المفتوحة لمعالجة اللغة الطبيعية (NLP) ورؤية الكمبيوتر (CV) | الفئة C1 | 256 | 384 | بطاقة النموذج |
| multilingual-e5-large | intfloat/multilingual-e5-large | Microsoft | الفئة C1 | 512 | 1024 | بطاقة نموذج، ورقة بحثية |
نموذج التضمين all-minilm-l12-v2 تم بناؤه بواسطة مجتمع المصادر المفتوحة لمعالجة اللغة الطبيعية (NLP) ورؤية الكمبيوتر (CV)، ويقدِّمه HuggingFace.
اللغات المدعومة: الإنجليزية.
الاستخدام: لحالات الاستخدام التي تريد فيها إنشاء تضمينات نصية للغات غير الإنجليزية.
اللغات الطبيعية المدعومة: ما يصل إلى 100 لغة. راجِع بطاقة النموذج لمعرفة التفاصيل.
للمزيد من المعلومات حول نماذج التضمين المدعومة، راجِع وثائق watsonx.
تثبيت مكتبة ibm-watsonx-ai Python
pip install -U ibm-watsonx-ai
استخدِم واجهة برمجة التطبيقات (API) لتضمينات watsonx والنماذج المتاحة لتوليد تضمينات نصية.
استيراد EmbedTextParamsMetaNames باسم EmbedParams من مكتبة ibm_watsonx_ai.metanames
استيراد EmbeddingTypes من ibm_watsonx_ai.foundation_models.utils.enums
استيراد Embeddings من ibm_watsonx_ai.foundation_models
اضبط truncate_input_tokens على قيمة تساوي أو تقل عن الحد الأقصى المسموح به من الرموز للنموذج الذي تستخدمه. إذا لم تحدد هذه القيمة وكان الإدخال يحتوي على عدد من الرموز أكبر مما يستطيع النموذج معالجته، سيتم توليد خطأ.
embed_params = {
EmbedParams.TRUNCATE_INPUT_TOKENS: 128,
EmbedParams.RETURN_OPTIONS: {
'input_text': True
}
}
embedding = Embeddings(
model_id=EmbeddingTypes.IBM_SLATE_30M_ENG,
credentials=credentials,
params=embed_params,
project_id=project_id,
space_id=None,
verify=False
)
q = [
"نموذج الأساس هو نموذج ذكاء اصطناعي توليدي على نطاق واسع يمكن تكييفه لمجموعة واسعة من المهام اللاحقة",
"الذكاء الاصطناعي التوليدي هو فئة من خوارزميات الذكاء الاصطناعي التي يمكنها إنتاج أنواع مختلفة من المحتوى بما في ذلك النصوص والكود المصدر والصور والصوت والبيانات الاصطناعية."
]
embedding_vectors = embedding.embed_documents(texts=q)
print(embedding_vectors)
استخدِم سلسلة نماذج Granite وتضمينات watsonx، وChroma، وLangChain للإجابة عن الأسئلة (RAG) وLangChain.
تاريخ التحديث: 15 نوفمبر 2024