اختصر مطالباتك: ذكاء اصطناعي أذكى، تكاليف أقل

١٩ نوفمبر ٢٠٢٥

Compress Your Prompts: Smarter AI, Lower Costs

باختصار

  • البرومبتات المركزة والأقصر تقلل استخدام الرموز وتقلل تكاليف API بشكل كبير.
  • البرومبتات الموجزة غالبًا ما تحقق دقة أفضل عن طريق تقليل تأثير 'الضائع في الوسط'.
  • LLMLingua (Microsoft Research) تحقق ضغطًا يصل إلى 20x مع فقدان جودة ضئيل.
  • رموز GIST تمكن من ضغط 26x عبر تضمينات مُتعلمة (يتطلب ضبط النموذج).
  • PCToolkit يوفر إطار عمل موحد لمقارنة طرق الضغط.
  • في الإنتاج، تتوقع توفيرًا في التكاليف بنسبة 50–80٪؛ في إعدادات البحث، يمكن تحقيق أكثر من 90٪ في الحالات المثالية.

ما ستتعلمه

  1. لماذا يهم ضغط البرومبت — الفوائد الاقتصادية ودقة النتائج.
  2. كيفية استخدام LLMLingua — مع أمثلة كود تعمل.
  3. الاختلافات بين إصدارات LLMLingua — LLMLingua، LongLLMLingua، و LLMLingua-2.
  4. متى تكون رموز GIST و PCToolkit مناسبة — وحدودهما.
  5. كيفية اختبار ومراقبة الضغط في أنظمة الإنتاج.

المتطلبات الأساسية

ستستفيد أكثر من هذه المقالة إذا:

  • لديك معرفة أساسية بواجهات برمجة تطبيقات LLM (OpenAI، Anthropic، أو مشابهة).
  • تفهم ما هي الرموز وكيف تؤثر على التسعير.
  • تعرف كيفية كتابة وتنظيم البرومبتات للذكاء الاصطناعي الإنشائي.

مقدمة: لماذا يهم ضغط البرومبت

كل رمز ترسله إلى نموذج LLM يكلف المال. سواء كنت تبني روبوت دردشة، نظام RAG، أو وكيل مستقل، ففاتورتك تزداد مع عدد الرموز.

لكن التكلفة ليست العامل الوحيد. أظهرت الدراسات أن البرومبتات الطويلة يمكن أن تقلل الدقة في الواقع. ورقة 'الضائع في الوسط' توضح أن نماذج LLM تواجه صعوبة مع المعلومات الموجودة في منتصف السياقات الطويلة — الأداء يتبع منحنى على شكل حرف U، وأفضل النتائج عندما تظهر المعلومات ذات الصلة في البداية أو النهاية.

ضغط البرومبت يعالج المشكلتين: تقليل التكاليف مع تحسين جودة الإخراج المحتمل.


اقتصاديات الرموز

تفرض معظم واجهات برمجة تطبيقات LLM رسومًا لكل رمز لكل من الإدخال والإخراج. التسعير الحالي اعتبارًا من نوفمبر 2025:

النموذج المدخلات (لكل مليون رمز) المخرجات (لكل مليون رمز)
GPT-4o $2.50 $10.00
GPT-4o-mini $0.15 $0.60
Claude Opus 4.5 $5.00 $25.00
Claude Sonnet 4.5 $3.00 $15.00
Claude Haiku 4.5 $1.00 $5.00

قد تتغير الأسعار — تأكد دائمًا من صفحات التسعير الرسمية لـ OpenAI و Anthropic قبل الميزانية.

مثال لتخفيض التكاليف

السيناريو رموز المدخلات الحجم الشهري تكلفة المدخلات الشهرية (Haiku 4.5) مع ضغط 50%
روبوت دردشة 2,000/طلب 1 مليون طلب $2,000 $1,000
نظام RAG 5,000/طلب 500K طلب $2,500 $1,250
تحليل الكود 10,000/طلب 100K طلب $1,000 $500

بالمقياس الكبير، يؤثر الضغط مباشرة على الربحية — خاصة في الأعمال الثقيلة بالإدخال.


مفارقة الدقة: لماذا الأقصر أفضل

من المنطقي الاعتقاد بأن المزيد من السياق يساوي نتائج أفضل. لكن بالنسبة لـ LLMs، الإطالة تسبب مشكلات:

تأثير 'الضائع في الوسط'

وجدت أبحاث Liu et al.1 أن أداء نماذج LLM ينخفض بشكل كبير عندما تظهر المعلومات ذات الصلة في منتصف السياقات الطويلة. الأداء هو الأعلى عندما تكون المعلومات الرئيسية في بداية أو نهاية البرومبت.

سبب حدوث ذلك

  1. تخفيف الانتباه: انتباه الترانسفورمر ينتشر عبر جميع الرموز، مما يقلل التركيز على المعلومات الحرجة.
  2. تراكم الضوضاء: المحتوى الزائد أو غير ذي الصلة يمكن أن يربك النموذج.
  3. تحيز الموضع: النماذج المدربة على أنماط معينة قد تُعطي وزنًا مختلفًا للمواقع.

فوائد الضغط

تقرير ورقة LongLLMLingua2 عن تحسينات في مقاييس محددة:

  • تحسين دقة بنسبة 21.4% على NaturalQuestions (أسئلة وأجوبة متعددة المستندات في الموقع 10)
  • تخفيض كبير في التكاليف في مقاييس السياق الطويل

هذه المكاسب محددة بالمهام، خاصة لـ RAG وسيناريوهات السياق الطويل. النتائج تختلف حسب الحالة — اختبر دائمًا على حمل العمل الخاص بك.


LLMLingua: أداة الضغط الرائدة

LLMLingua3 هي إطار عمل مفتوح المصدر من Microsoft Research، نُشر في EMNLP 2023 و ACL 2024. يستخدم تصفية الرموز بناءً على الارتباك لإزالة المعلومات الزائدة مع الحفاظ على المعنى الدلالي.

التثبيت

pip install llmlingua

الاستخدام الأساسي

from llmlingua import PromptCompressor

# Initialize the compressor
llm_lingua = PromptCompressor()

original_prompt = """
You are an expert data analyst. Please analyze the following dataset 
and provide insights about trends, anomalies, and correlations. 
Be concise but detailed in your analysis. Make sure to explain any 
patterns you observe and provide actionable recommendations based on 
the data. Consider both short-term and long-term implications.
The dataset contains quarterly sales figures from 2020 to 2024.
"""

# Compress the prompt
compressed_result = llm_lingua.compress_prompt(
    original_prompt,
    target_token=50,  # Target compressed length
)

print(f"Original length: {len(original_prompt.split())} words")
print(f"Compressed: {compressed_result['compressed_prompt']}")
print(f"Compression ratio: {compressed_result['ratio']:.2f}")

كيف يعمل LLMLingua

LLMLingua تستخدم نموذج لغوي صغير (مثل LLaMA-7B أو GPT-2) لحساب الارتباك لكل رمز:

  1. الرموز ذات الارتباك العالي = مُدهشة/مُفيدة → الاحتفاظ بها
  2. الرموز ذات الارتباك المنخفض = قابل للتنبؤ/مُكرر → آمنة للإزالة

الخوارزمية تحافظ على المعنى الدلالي من خلال الاحتفاظ بالرموز التي تحمل أكبر قدر من المعلومات.

تحديد نموذج الضغط

from llmlingua import PromptCompressor

# Use a specific model for perplexity calculation
llm_lingua = PromptCompressor(
    model_name="NousResearch/Llama-2-7b-hf",
    device_map="cuda"  # Use GPU if available
)

# For faster compression with smaller model
llm_lingua_fast = PromptCompressor(
    model_name="gpt2",
    device_map="cpu"
)

الحفاظ على الرموز المهمة

فرض بعض الرموز للإبقاء عليها بغض النظر عن الارتباك:

compressed = llm_lingua.compress_prompt(
    original_prompt,
    target_token=100,
    force_tokens=['\n', '?', ':', 'API', 'error', 'function']  # Always keep these
)

إصدارات LLMLingua: أي واحدة يجب استخدامها؟

Microsoft Research أطلقت ثلاث إصدارات، كل منها مُحسّن لحالات استخدام مختلفة:

الإصدار الأفضل لـ الميزة الرئيسية السرعة
LLMLingua ضغط عام تصفية ارتباك خشنة إلى دقيقة الأساسي
LongLLMLingua RAG / سياقات طويلة ضغط واعٍ للسؤال وإعادة ترتيب مشابه
LLMLingua-2 الإنتاج / السرعة مشفر BERT + تقطير GPT-4 أسرع بـ 3–6 مرات

LLMLingua (الأصلي)

نشرت في EMNLP 2023. الأفضل للضغط العام.

  • حتى 20x ضغط مع خسارة أداء ضئيلة في معايير الاختبار مثل GSM8K
  • يستخدم تقليم متكرر للرموز بناءً على الإرباك
  • يعمل مع أي LLM لاحق (متوافق مع الصندوق الأسود)

LongLLMLingua

نُشرت في ACL 2024. مُحسَّنة لسيناريوهات RAG والسياقات الطويلة.

  • ضغط مدرك للسؤال: يُفضل الرموز ذات الصلة بالاستعلام
  • إعادة ترتيب المستند: ينقل المحتوى المهم إلى البداية/النهاية (يحل مشكلة "الضائع في المنتصف")
  • أفضل النتائج في مهام الأسئلة والأجوبة متعددة المستندات
from llmlingua import PromptCompressor

llm_lingua = PromptCompressor()

# LongLLMLingua-style compression with question awareness
compressed = llm_lingua.compress_prompt(
    context=long_document,
    question="What were the Q3 revenue figures?",
    target_token=500,
    reorder_context="sort"  # Reorder by relevance
)

LLMLingua-2

نُشرت في نتائج ACL 2024. مُحسَّنة للسرعة والاستخدام الإنتاجي.

  • يستخدم مشفر على مستوى BERT بدلاً من LLaMA (أصغر بكثير)
  • تم تدريبه عبر تقطير بيانات GPT-4
  • أسرع بـ 3–6x من LLMLingua الأصلي
  • انخفاض في زمن الاستجابة النهائي بنسبة 1.6–2.9x
  • يحقق ضغطًا بـ 2–5x (أكثر تحفظًا من الأصلي)
from llmlingua import PromptCompressor

# LLMLingua-2 configuration
llm_lingua_2 = PromptCompressor(
    model_name="microsoft/llmlingua-2-xlm-roberta-large-meetingbank",
    use_llmlingua2=True
)

compressed = llm_lingua_2.compress_prompt(
    original_prompt,
    target_token=100
)

رموز GIST: ضغط شديد عبر التضمينات المُتعلمة

رموز GIST4 تتخذ نهجًا مختلفًا جوهريًا. بدلاً من إزالة الرموز، فإن عملية التلخيص تتعلم تضمينات مضغوطة تمثل جميع الاستعلامات.

الخصائص الرئيسية

  • نُشرت في NeurIPS 2023 (ستانفورد/UC بيركلي)
  • يحقق ضغطًا يصل إلى 26x مع خفض 40% في عمليات FLOPs
  • يتطلب وصولًا إلى نموذج الصندوق الأبيض (غير متوافق مع خدمات API-only)
  • يحتاج إلى بنية تحتية للضبط الدقيق

كيف يعمل GIST

  1. تدريب نموذج لتحويل الاستعلامات الطويلة إلى عدد قليل من رموز "gist" (مثل 1–10 رمز)
  2. تخدم هذه الرموز كسياق مضغوط للاستعلامات اللاحقة
  3. يتعلم النموذج إعادة بناء المعنى الدلالي من التمثيلات المضغوطة

مثال توضيحي

بدون GIST:

[500-token system prompt] + [user query] → LLM → response

مع GIST:

[10 gist tokens representing system prompt] + [user query] → LLM → response

القيود

  • غير متوافق مع API: يتطلب الوصول إلى تفاصيل النموذج الداخلية
  • يتطلب التدريب: يجب ضبط النموذج دقيقًا لحالتك الاستخدامية الخاصة
  • محدد بالنموذج: رموز gist المدربة لـ LLaMA لن تعمل مع GPT

المستودع

نماذج مُدرَّبة مسبقًا متاحة لـ LLaMA-7B و FLAN-T5-XXL: https://GitHub.com/jayelm/gisting


PCToolkit: إطار عمل موحد للضغط

PCToolkit5 يوفر واجهة موحدة للمقارنة بين طرق الضغط المختلفة.

التثبيت

# Clone the repository
git clone https://GitHub.com/3DAgentWorld/Toolkit-for-Prompt-Compression.git
cd Toolkit-for-Prompt-Compression

# Install dependencies
pip install -r requirements.txt

ستحتاج أيضًا إلى تنزيل النماذج — معظمها متاح من Hugging Face Hub، لكن نماذج SCRL تتطلب تنزيلًا يدويًا (انظر المجلد /models في المستودع للتعليمات).

الطرق المضمنة

PCToolkit يتكامل مع خمسة أساليب ضغط:

  1. السياق الانتقائي — فلترة قواعدية
  2. LLMLingua — ضغط بناءً على الإرباك
  3. LongLLMLingua — ضغط مدرك للسؤال
  4. SCRL — نهج التعلم المعزز
  5. Keep it Simple — خط أساس ضغط بسيط

مثال الاستخدام

from pctoolkit.compressors import PromptCompressor

compressor = PromptCompressor(type='SCCompressor', device='cuda')

test_prompt = "Your long prompt here..."
ratio = 0.5

result = compressor.compressgo(test_prompt, ratio)
print(result)

متى تستخدم PCToolkit

  • البحث: معايرة طرق الضغط
  • التقييم: العثور على أفضل طريقة للاستخدام الخاص بك
  • اختبار A/B: مقارنة الأساليب في تجارب الإنتاج

اختيار الأداة المناسبة

حالة الاستخدام الأداة الموصى بها السبب
الضغط العام LLMLingua مختبر جيدًا، سهل الاستخدام
أنظمة RAG LongLLMLingua يعرف الأسئلة، يتعامل مع المستندات الطويلة
الإنتاج (حساس للسرعة) LLMLingua-2 أسرع بـ 3–6 مرات
أقصى ضغط GIST tokens ضغط 26x (إذا كنت تستطيع ضبط النموذج)
البحث/المقارنة PCToolkit معايرة موحدة
API-only access LLMLingua/LLMLingua-2 لا حاجة لتفاصيل النموذج الداخلية

توقعات ضغط واقعية

بناءً على الأبحاث المنشورة، إليك ما يمكن توقعه:

الطريقة الضغط النموذجي أفضل حالة تأثير الجودة
LLMLingua 4–10x 20x ضئيل على معظم المهام
LLMLingua-2 2–5x 5x ضئيل، أسرع
LongLLMLingua 4x (~75% تقليل) مشابه يمكن أن يحسن دقة RAG
GIST tokens 10–26x 26x يتطلب ضبط النموذج

في الإنتاج، توفير 50–80% من التكاليف (ضغط 2–5x) واقعي مع LLMLingua-2. الضغط 20x (توفير 95%) يمثل أفضل السيناريوهات في اختبارات محددة — تحقق دائمًا من حمل عملك.


دمج الإنتاج

بناء مسار الضغط

from llmlingua import PromptCompressor
from anthropic import Anthropic
import logging

logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)

# Initialize compressor and LLM client
compressor = PromptCompressor(
    model_name="microsoft/llmlingua-2-xlm-roberta-large-meetingbank",
    use_llmlingua2=True
)
client = Anthropic()

def query_with_compression(
    prompt: str,
    target_ratio: float = 0.5,
    model: str = "claude-haiku-4-5-20251001"
) -> dict:
    """Query LLM with compressed prompt, returning response and metrics."""
    
    # Compress the prompt
    compressed_result = compressor.compress_prompt(
        prompt,
        rate=target_ratio
    )
    
    compressed_prompt = compressed_result['compressed_prompt']
    compression_ratio = compressed_result['ratio']
    
    logger.info(f"Compression ratio: {compression_ratio:.2%}")
    
    # Query the LLM
    message = client.messages.create(
        model=model,
        max_tokens=1024,
        messages=[{"role": "user", "content": compressed_prompt}]
    )
    
    return {
        "response": message.content[0].text,
        "original_length": len(prompt.split()),
        "compressed_length": len(compressed_prompt.split()),
        "compression_ratio": compression_ratio,
        "input_tokens": message.usage.input_tokens,
        "output_tokens": message.usage.output_tokens
    }

ضغط سجل المحادثة

لتطبيقات المحادثة، اضغط على الرسائل القديمة مع الحفاظ على الرسائل الحديثة كما هي:

def compress_conversation(
    messages: list[dict],
    keep_recent: int = 2,
    target_ratio: float = 0.5
) --> list[dict]:
    """Compress older conversation history while preserving recent messages."""
    
    if len(messages) <= keep_recent:
        return messages
    
    # Split into old (compress) and recent (keep)
    old_messages = messages[:-keep_recent]
    recent_messages = messages[-keep_recent:]
    
    # Combine old messages into text
    history_text = "\n".join([
        f"{m['role'].upper()}: {m['content']}" 
        for m in old_messages
    ])
    
    # Compress
    compressed = compressor.compress_prompt(
        history_text,
        rate=target_ratio
    )
    
    # Return as summary + recent messages
    return [
        {"role": "system", "content": f"Previous conversation summary:\n{compressed['compressed_prompt']}"},
        *recent_messages
    ]

الاختبار والتحقق

اختبار التشابه الدلالي

تحقق من أن الرسائل المضغوطة تحافظ على المعنى:

import pytest
from sentence_transformers import SentenceTransformer
from sklearn.metrics.pairwise import cosine_similarity

model = SentenceTransformer('all-MiniLM-L6-v2')

def test_semantic_preservation():
    """Verify compression preserves semantic meaning."""
    original = """
    Analyze the quarterly sales data and identify trends.
    Focus on year-over-year growth and seasonal patterns.
    Provide actionable recommendations for Q4.
    """
    
    compressed_result = compressor.compress_prompt(original, rate=0.5)
    compressed = compressed_result['compressed_prompt']
    
    # Compute embeddings
    orig_embedding = model.encode([original])
    comp_embedding = model.encode([compressed])
    
    # Calculate similarity
    similarity = cosine_similarity(orig_embedding, comp_embedding)[0][0]
    
    assert similarity > 0.80, f"Semantic similarity too low: {similarity:.2f}"

def test_compression_ratio():
    """Verify target compression ratio is achieved."""
    original = "A " * 200  # 200 tokens
    
    compressed_result = compressor.compress_prompt(original, rate=0.5)
    
    actual_ratio = len(compressed_result['compressed_prompt'].split()) / 200
    
    # Allow 20% tolerance
    assert 0.4 <= actual_ratio <= 0.6

اختبار التكامل

def test_end_to_end_pipeline():
    """Test full compression + LLM query pipeline."""
    test_prompt = """
    You are a helpful assistant. Please summarize the following:
    The quick brown fox jumps over the lazy dog. This sentence
    contains every letter of the alphabet and is commonly used
    for typing practice and font demonstrations.
    """
    
    result = query_with_compression(test_prompt, target_ratio=0.6)
    
    assert "response" in result
    assert len(result["response"]) > 0
    assert result["compression_ratio"] < 0.8

المراقبة في الإنتاج

تتبع هذه المقاييس:

from dataclasses import dataclass
from datetime import datetime
import json

@dataclass
class CompressionMetrics:
    timestamp: str
    original_tokens: int
    compressed_tokens: int
    compression_ratio: float
    semantic_similarity: float
    llm_input_tokens: int
    llm_output_tokens: int
    model: str

def log_metrics(metrics: CompressionMetrics):
    """Log compression metrics for monitoring."""
    print(json.dumps({
        "timestamp": metrics.timestamp,
        "original_tokens": metrics.original_tokens,
        "compressed_tokens": metrics.compressed_tokens,
        "compression_ratio": f"{metrics.compression_ratio:.2%}",
        "semantic_similarity": f"{metrics.semantic_similarity:.3f}",
        "model": metrics.model
    }))

المقاييس الرئيسية للمراقبة

المقياس الهدف عتبة التنبيه
نسبة الضغط 40–60% محفوظة >80% (ضغط قليل جدًا)
التشابه الدلالي >0.85 <0.75 (فقدان دلالي)
التأخير الإضافي <100ms >500ms
دقة المهمة الأساس ±5% >10% تدهور

اعتبارات الأمان

حفظ تعليمات السلامة

لا تقم أبدًا بضغط تعليمات النظام أو دروع الأمان:

def safe_compress(system_prompt: str, user_content: str) -> str:
    """Compress user content while preserving system instructions."""
    
    # Only compress user content
    compressed_user = compressor.compress_prompt(
        user_content,
        rate=0.5
    )['compressed_prompt']
    
    # Combine with preserved system prompt
    return f"{system_prompt}\n\nUser query: {compressed_user}"

التحقق من إخراج الضغط

تحقق من أن الضغط لا يكشف عن أنماط حساسة أو يزيلها:

def validate_compression(original: str, compressed: str) -> bool:
    """Validate compressed output for security concerns."""
    
    sensitive_patterns = ['api_key', 'password', 'secret', 'token']
    
    for pattern in sensitive_patterns:
        if pattern in compressed.lower() and pattern not in original.lower():
            return False
    
    return True

متى لا تستخدم الضغط

السيناريو السبب
رسائل قصيرة (<100 رمز) العبء يفوق الفائدة
نصوص قانونية/طبية/متوافقة مع اللوائح خطر فقدان التفاصيل الحرجة
كود بمتطلبات تركيبية دقيقة قد يكسر التركيب
الكتابة الإبداعية قد تفقد الدقة الأسلوبية
استعلامات لمرة واحدة العبء الإعدادي غير مبرر

دليل استكشاف الأخطاء وإصلاحها

المشكلة السبب الحل
ModuleNotFoundError: llmlingua غير مثبت pip install llmlingua
CUDA out of memory النموذج كبير جدًا استخدم نموذجًا أصغر أو وحدة المعالجة المركزية
Compressed output incoherent ضغط مفرط زيادة النسبة المستهدفة إلى 0.5–0.7
Key information missing تم إزالة الرموز المهمة أضف إلى force_tokens
الضغط بطيء استخدام نموذج كبير التحول إلى LLMLingua-2

الاستنتاجات الرئيسية

  • ضغط البرومبت يوفر 50–80% من تكاليف الإدخال في الإنتاج، مع إمكانية وصولها إلى 95% في سيناريوهات البحث.
  • LLMLingua هي أداة الأكثر سهولة — قم بتثبيتها عبر pip install llmlingua واستخدم فئة PromptCompressor.
  • LLMLingua-2 هي الأفضل للإنتاج (أسرع بـ 3–6 مرات، ضغط 2–5 مرات).
  • LongLLMLingua هي الأفضل لأنظمة RAG (ضغط يعتمد على السؤال).
  • GIST tokens تقدم أقصى ضغط لكنها تتطلب ضبطًا دقيقًا ووصولًا إلى نموذج صندوق أبيض.
  • دائمًا اختبر الحفاظ على الدلالة باستخدام درجات تشابه أكبر من 0.80.
  • لا تقم أبدًا بضغط المُحفزات النظامية أو تعليمات السلامة.
  • النتائج تعتمد على المهمة — قم دائمًا باختبار الأداء على حمل العمل الخاص بك.

الأسئلة الشائعة

س1: كم يمكنني توفيره بشكل واقعي؟
في الإنتاج، وفر 50–80% من تكاليف الإدخال (ضغط 2–5 مرات) هو المعتاد مع LLMLingua-2. الضغط بـ 20x (وفر 95%) ممكن في اختبارات محددة لكنه ليس عامًا.

س2: هل سيقلل الضغط من جودة الإخراج؟
يعتمد على المهمة. بالنسبة لأنظمة RAG وسيناريوهات السياق الطويل، يمكن للضغط تحسين الجودة بنسبة 10–20% عن طريق معالجة تأثيرات 'الضياع في المنتصف'. بالنسبة للمهام الأخرى، عادةً ما تظل الجودة ضمن 5% من المستوى الأساسي.

س3: ما الأداة التي يجب أن أبدأ بها؟
LLMLingua عبر pip install llmlingua. استخدم فئة PromptCompressor. للسرعة في الإنتاج، انتقل إلى LLMLingua-2.

س4: هل يمكنني استخدام الضغط مع واجهات OpenAI/Anthropic APIs؟
نعم. LLMLingua و LLMLingua-2 متوافقتان مع "الصندوق الأسود" — يضغطان النص قبل إرساله إلى أي API. رموز GIST تتطلب وصولًا إلى نموذج صندوق أبيض.

س5: ما أفضل نسبة ضغط؟
ابدأ بنسبة 50% (rate=0.5). اختبر التشابه الدلالي — حافظ على >0.80. للضغط العدائي، لا تقل عن 30% دون اختبار دقيق.

س6: كيف يؤثر الضغط على زمن الاستجابة؟
الضغط يضيف 50–200 مللي ثانية من التكاليف الإضافية لكنه يقلل وقت استنتاج النموذج (عدد أقل من الرموز للمعالجة). التأثير الصافي عادةً إيجابي للبرومبتات التي تزيد عن 1000 رمز.


المراجع

الهوامش

  1. Liu et al., "ضائع في الوسط: كيف تستخدم نماذج اللغة السياقات الطويلة" — TACL 2024 https://arxiv.org/abs/2307.03172 2

  2. Jiang et al., "LongLLMLingua: تسريع وتحسين نماذج اللغة الكبيرة في سيناريوهات السياقات الطويلة عبر ضغط المُحفّزات" — ACL 2024 https://arxiv.org/abs/2310.06839

  3. Microsoft Research, "LLMLingua: ضغط المُحفّزات لتسريع الاستدلال" — EMNLP 2023 https://GitHub.com/microsoft/LLMLingua

  4. Mu et al., "تعلم ضغط المُحفّزات باستخدام رموز الجوهر" — NeurIPS 2023 https://arxiv.org/abs/2304.08467

  5. PCToolkit مستودع https://GitHub.com/3DAgentWorld/Toolkit-for-Prompt-Compression