ضغط مُحفّزاتك: ذكاء اصطناعي أذكى، تكاليف أقل

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

Compress Your Prompts: Smarter AI, Lower Costs

TL;DR

  • مطالبات مختصرة ومُركزة تقلل استخدام الرموز وتخفض تكاليف 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 APIs (OpenAI، Anthropic، أو ما يشبهها).
  • تفهم ما هي رموز وكيف تؤثر على التسعير.
  • تعرف كيفية كتابة وتنظيم المطالبات للذكاء الاصطناعي التوليدي.

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

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

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

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


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

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

النموذج المدخلات (لكل 1 مليون رمز) المخرجات (لكل 1 مليون رمز)
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/طلب 1M طلب $2,000 $1,000
نظام RAG 5,000/طلب 500K طلب $2,500 $1,250
تحليل الكود 10,000/طلب 100K طلب $1,000 $500

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


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

من المنطقي الاعتقاد بأن المزيد من السياق يعني نتائج أفضل. لكن بالنسبة لنماذج LLM، الإطالة تُدخل مشاكل:

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

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

لماذا يحدث هذا

  1. تخفيف الانتباه: انتباه Transformer ينتشر عبر جميع الرموز، مما يقلل التركيز على المعلومات الحرجة.
  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 وسيناريوهات السياق الطويل.

  • ضغط حساس للسؤال: يُعطي أولوية للرموز ذات الصلة بالاستعلام
  • إعادة ترتيب المستندات: ينقل المحتوى المهم إلى البداية/النهاية (يتعامل مع "ضائع في الوسط")
  • أفضل النتائج في مهام QA متعددة المستندات
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 تتخذ نهجًا مختلفًا جوهريًا. بدلاً من إزالة الرموز، فإن Gisting يتعلم تضمينات مضغوطة تمثل جميع المطالبات.

الميزات الرئيسية

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

كيف يعمل GIST

  1. تدريب نموذج لترميز المطالبات الطويلة إلى عدد صغير من رموز "gist" (مثل 1–10 رمز)
  2. تخدم هذه الرموز "gist" كسياق مضغوط للاستعلامات اللاحقة
  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. احتفظ بالبساطة — أساس ضغط محدود

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

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-وصول حصري 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 (فقدان المعنى)
الزمن الزائد <100 مللي ثانية >500 مللي ثانية
دقة المهمة الأساس ±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 توفر أقصى ضغط لكنها تتطلب ضبطًا دقيقًا ووصولًا إلى النموذج white-box.
  • دائماً اختبر الحفاظ على الدلالة باستخدام درجات تشابه >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؟
نعم. LLMLingua و LLMLingua-2 متوافقتان مع 'الصندوق الأسود' — يضغطان النص قبل إرساله إلى أي API. رموز GIST تتطلب وصولاً إلى النموذج white-box.

س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