خطوات الاستخدام
1. أدخل إجمالي طول المستند بالرموز (tokens). إن كنت تعرف عدد الكلمات فقط، فاضربها في 1.3 رمزًا لكل كلمة كما في الأمثلة: 15000 كلمة ≈ 19500 رمزًا. يحدد هذا الطول الإجمالي عدد القطع المطلوبة بناءً على حجم القطعة الآمن.
2. اختر نموذج التضمين: اختر نموذج التضمين المستخدم في نظام RAG الخاص بك. كل نموذج له حد أقصى لعدد الرموز (tokens) التي يمكن معالجتها في كل مرة. على سبيل المثال، نموذج OpenAI ada-002 يقبل حتى 8192 رمزًا، بينما نماذج أخرى مثل BERT قد تقبل 512 رمزًا. هذا الحد يحدد الحد الأعلى لحجم القطعة.
3. حساب الحجم الأمثل للقطعة: تأخذ الحاسبة 80% من حد نموذج التضمين كحجم أقصى للقطعة (هامش الأمان المذكور هنا)، أي floor(0.8 × 512) = 409 رمزًا لنموذج بحد 512، ثم تُشتق عدد القطع بقسمة طول المستند على الخطوة الفعلية بعد خصم التداخل وأخذ السقف.
4. ضبط نسبة التداخل (Overlap): يمكنك تعديل نسبة التداخل بين القطع المتجاورة، والتي تتراوح عادة بين 0% و 20%. التداخل يساعد في الحفاظ على السياق بين القطع ويحسن دقة الاسترجاع. على سبيل المثال، إذا كان حجم القطعة 1000 رمز وتداخل 10%، فإن كل قطعة تشارك 100 رمز مع القطعة التالية.
5. مراجعة النتائج: تعرض الحاسبة حجم القطعة الأمثل (بالرموز أو الكلمات)، وعدد القطع الناتجة، وتوصيات لتحسين الأداء مثل زيادة التداخل إذا كان السياق مهمًا، أو تقليل حجم القطعة إذا كانت دقة الاسترجاع منخفضة.
أمثلة محلولة
تطبيقات عملية على تحسين حجم جزء RAG بخطوات الحل كاملة.
الحل
لحل هذه المشكلة، نبدأ بتحويل طول المستند إلى رموز. في المتوسط، كل كلمة تساوي حوالي 1.3 رمز (بما في ذلك المسافات وعلامات الترقيم). لذا، 15000 كلمة ≈ 19500 رمز. نختار ada-002 بحد 8192 رمزًا. لأقصى استفادة، نستخدم 80% من الحد كحجم أقصى للقطعة: floor(0.8 × 8192) = 6553 رمزًا. وبدون تداخل تحتاج 19500/6553 = 2.98 أي 3 قطع. ولو استهدفت 5 قطع لكان حجمها 19500/5 = 3900 رمزًا، وهو داخل الحد 6553 لكنه يقلل السياق داخل كل قطعة. أما عند التداخل الأقصى 20% فتصبح القطعة المشتركة round(6553 × 0.2) = 1311 رمزًا، أي خطوة فعلية 6553 - 1311 = 5242 رمزًا، ويبلغ العدد ceil(19500/5242) = 4 قطع. هذا يوازن بين عدد القطع وجودة التضمين.
الحل
لنموذج E5 (على غرار BERT) الحد الأقصى للرموز هو 512. نأخذ 80% منه كحجم آمن: floor(0.8 × 512) = 409 رمزًا (يقربها بعض الشرح إلى 410). إجمالي الرموز للمستند = 5000 كلمة × 1.3 ≈ 6500 رمز. لحساب عدد القطع: 6500 / 409 = 15.89، أي 16 قطعة. لكن قد يكون عدد القطع كبيرًا جدًا ويؤثر على كفاءة الاسترجاع. يمكننا زيادة حجم القطعة إلى 500 رمز (ما زال أقل من 512) مع خطر تجاوز الحد قليلاً. باستخدام 500 رمز: 6500/500 = 13 قطعة. وإذا التزمنا بحجم الحاسبة 409 مع تداخل 10% كانت القطعة المشتركة round(40.9) = 41 رمزًا والخطوة الفعلية 409 - 41 = 368 رمزًا، فيبلغ العدد ceil(6500/368) = 18 قطعة بدل 16؛ التداخل يحسّن السياق على حساب عدد المتجهات المخزنة.
أمثلة محسوبة
قيم مُدخَلة ونتيجة محسوبة فعليًا بواسطة تحسين حجم جزء RAG.
مستند 15000 كلمة مع ada-002: قطعة 6553 رمزًا و3 قطع
- طول المستند (بالرموز)
- 19,500
- نموذج التضمين
- ada002
- نسبة التداخل (0-20%)
- 0
6500 رمزًا مع E5 وتداخل 10%: 409 رمزًا للقطعة و18 قطعة
- طول المستند (بالرموز)
- 6,500
- نموذج التضمين
- e5
- نسبة التداخل (0-20%)
- 10
مستند من رمز واحد: قطعة واحدة رغم تداخل 20%
- طول المستند (بالرموز)
- 1
- نموذج التضمين
- gecko
- نسبة التداخل (0-20%)
- 20
100 ألف رمز مع Cohere وتداخل 15%: 72 قطعة
- طول المستند (بالرموز)
- 100,000
- نموذج التضمين
- cohere
- نسبة التداخل (0-20%)
- 15