Console Playground
← المدونة

برنامج الفكر: كيف تتفوق النماذج الصغيرة على النماذج الكبيرة

أحدث توجيه السلسلة الفكرية (CoT) ثورة في كيفية حل نماذج اللغة للمشاكل المعقدة من خلال جعلها “تفكر خطوة بخطوة”. ولكن هناك عيب أساسي: نماذج اللغة سيئة في الحساب.

ادخل توجيه برنامج الفكر (PoT) - تقنية تحقق أداءً أفضل بنسبة 12-15٪ من السلسلة الفكرية من خلال القيام بشيء بسيط بشكل مفاجئ: السماح للنماذج بكتابة الكود بدلاً من القيام بالرياضيات.

الفكرة الأساسية

كشفت الورقة البحثية الرائدة “Program of Thoughts Prompting: Disentangling Computation from Reasoning“ عن رؤية حاسمة: التفكير والحساب مهارتان مختلفتان.

تتفوق نماذج اللغة في:

  • فهم المشاكل
  • التخطيط لاستراتيجيات الحل
  • التعبير عن المنطق في الكود

تكافح نماذج اللغة مع:

  • الحساب متعدد الأرقام
  • الحفاظ على الدقة عبر خطوات الحساب
  • تجنب الأخطاء المتراكمة

PoT يفصل هذه المخاوف: تقوم النماذج بالتفكير وكتابة كود Python، بينما تنفذ بيئة تشغيل حتمية (مثل unsandbox) الحسابات بشكل مثالي.

السلسلة الفكرية مقابل برنامج الفكر

السلسلة الفكرية (CoT)

السؤال: كان لدى متجر 20 تفاحة. باعوا 8، واستلموا 15 أخرى،
ثم باعوا 12. كم تفاحة بقيت؟

استجابة CoT:
دعني أفكر خطوة بخطوة:
1. ابدأ بـ 20 تفاحة
2. بعد بيع 8: 20 - 8 = 12 تفاحة
3. بعد استلام 15: 12 + 15 = 27 تفاحة
4. بعد بيع 12: 27 - 12 = 15 تفاحة

الإجابة: 15 تفاحة

المشكلة: يجب على النموذج إجراء الحساب والتفكير. الأخطاء الصغيرة تتراكم.

برنامج الفكر (PoT)

# السؤال: كان لدى متجر 20 تفاحة. باعوا 8، واستلموا 15 أخرى،
# ثم باعوا 12. كم تفاحة بقيت؟

def solve():
    apples = 20
    apples -= 8  # Sold 8
    apples += 15  # Received 15
    apples -= 12  # Sold 12
    return apples

result = solve()
print(f"Remaining apples: {result}")

التنفيذ (عبر unsandbox):

Remaining apples: 15

يركز النموذج فقط على الفهم والترجمة إلى الكود. يتم تفويض الحساب إلى Python.

لماذا يجعل هذا النماذج الصغيرة تتفوق على وزنها

إليك المكان الذي يصبح فيه مثيراً للاهتمام للنشر العملي:

1. النماذج الكمية تصبح قابلة للتطبيق

يمكن لنموذج Llama 3.1 8B بكمية 4 بت يعمل محلياً الآن أن يتفوق على GPT-4 في مشاكل الرياضيات - ليس لأنه أفضل في التفكير، ولكن لأنه لا يحتاج إلى أن يكون جيداً في الحساب.

# حتى النموذج المكمّم بشدة يمكنه كتابة هذا بشكل صحيح:
def compound_interest(principal, rate, years):
    return principal * (1 + rate) ** years

# unsandbox تنفذه بدقة مثالية

2. استدلال أسرع، تكاليف أقل

استجابات PoT عادة ما تكون أقصر من استجابات CoT:

  • CoT: ~500 رمز (إظهار جميع خطوات الحساب)
  • PoT: ~150 رمز (فقط الكود)

توفير التكلفة: 70٪ أقل من رموز الإخراج × نماذج صغيرة أرخص = تخفيض التكلفة 10-20 مرة

3. نتائج حتمية وقابلة للمراجعة

على عكس CoT حيث قد يحسب النموذج 127 × 43 بشكل مختلف في كل مرة، ينتج PoT:

result = 127 * 43  # Always 5461, every time
print(result)

هذا حاسم للتطبيقات المالية والعلمية والرعاية الصحية حيث يهم التكرار.

مثال من العالم الحقيقي: التحليل المالي

المهمة: حساب معدل العائد الداخلي (IRR) لسلسلة من التدفقات النقدية.

نهج CoT (GPT-4):

دعنا نحسب IRR باستخدام التجربة والخطأ...
جرب r = 0.10: NPV = -$234.52
جرب r = 0.12: NPV = $45.23
جرب r = 0.115: NPV = -$12.34
...
[النموذج يكافح مع الطرق العددية التكرارية]

النتيجة: غير صحيح أو “لا يمكنني حساب هذا بدقة”

نهج PoT (Llama 3.1 8B + unsandbox):

import numpy_financial as npf

def calculate_irr(cash_flows):
    """
    Calculate internal rate of return for cash flows
    cash_flows: list of cash flows, first element is initial investment (negative)
    """
    return npf.irr(cash_flows)

# Cash flows: -$1000 investment, then $300, $400, $500 returns
cash_flows = [-1000, 300, 400, 500]
irr = calculate_irr(cash_flows)

print(f"IRR: {irr:.2%}")

النتيجة: IRR: 8.90% (صحيح رياضياً، في كل مرة)

كيف يمكّن unsandbox من PoT على نطاق واسع

تم تصميم unsandbox خصيصاً لسير عمل برنامج الفكر:

1. تنفيذ بدون ثقة

# كود المستخدم يعمل في حاوية معزولة
# لا يوجد وصول إلى نظام الملفات أو الشبكة أو العمليات الأخرى
# حدود الموارد التلقائية تمنع الحسابات الجامحة

2. دعم أكثر من 42 لغة

ليست جميع النماذج الأفضل في Python. البعض يتفوق في:

  • Julia للحوسبة العددية
  • R للتحليل الإحصائي
  • JavaScript لمعالجة JSON
  • Rust للحسابات الحرجة للأداء
curl https://api.unsandbox.com/execute \
  -H "Authorization: Bearer unsb-sk-xxxxx-xxxxx-xxxxx-xxxxx" \
  -d '{
    "language": "julia",
    "code": "# Your Julia code here"
  }'

3. تنفيذ أقل من ثانية

متوسط زمن انتقال سير عمل PoT:
- النموذج يولد الكود: ~800ms
- unsandbox تنفذ الكود: ~150ms
- المجموع: <1 ثانية

قارن مع CoT:
- النموذج يولد التفكير: ~2000ms
- لا يزال قد يكون خاطئاً

4. فك ترميز الاتساق الذاتي

قم بتشغيل نفس موجه PoT 5 مرات، ونفذ جميع عينات الكود، وأعد النتيجة الأكثر شيوعاً:

# Example: Self-consistency with voting
# Run multiple code samples and pick the most common result

results = []

# Sample 1
def solve1(): return 42 * 1.15
results.append(solve1())

# Sample 2
def solve2(): return 42 * 1.15
results.append(solve2())

# Sample 3 would fail: def solve3(): return 42 × 1.15  # Syntax error

# Sample 4
def solve4(): return 42 * 1.15
results.append(solve4())

# Sample 5 (model error)
def solve5(): return 42 * 1.51
results.append(solve5())

# Find consensus (most common result)
from collections import Counter
consensus = Counter(results).most_common(1)[0][0]
print(f"Consensus result: {consensus:.1f}")
# Output: Consensus result: 48.3

النتيجة: حتى مع أخطاء النموذج العرضية، فإن التصويت بالإجماع + تنفيذ الكود يؤدي إلى إجابات صحيحة.

أنماط التنفيذ

إليك سير عمل PoT كامل يعمل مع أي نموذج + unsandbox:

دليل اختيار النموذج

نماذج API (مستضافة، دفع لكل رمز):

  • GPT-4.1 Nano: $0.10/1M إدخال، $0.40/1M إخراج - الخيار الأرخص على الإطلاق
  • GPT-4.1 Mini: $0.40/1M إدخال، $1.60/1M إخراج - أفضل توازن، 1M سياق
  • GPT-4o Mini: $0.00015/1K إدخال، $0.0006/1K إخراج - إرث OpenAI

النماذج المحلية (مستضافة ذاتياً، صفر تكاليف API):

  • Qwen 3 Coder 30B: أفضل دقة، تحتاج RTX 4090/3090 (24GB VRAM)
  • Hermes-3-Llama-3.1-8B: اتباع تعليمات ممتاز، RTX 4090/3090

التنفيذ العالمي

النمط متطابق لجميع النماذج - فقط نقطة نهاية النموذج تتغير:

import requests
from openai import OpenAI  # For API models, or use requests for local

# ===== CONFIGURATION: Choose your model =====
# All models use OpenAI-compatible /v1 endpoints - just change base_url!

# Option 1: OpenAI API models
BASE_URL = "https://api.openai.com/v1"
MODEL_NAME = "gpt-4.1-nano"  # or "gpt-4.1-mini" or "gpt-4o-mini"
API_KEY = "YOUR_OPENAI_KEY"

# Option 2: Free uncloseai.com - Hermes 8B (tested, works!)
# BASE_URL = "https://hermes.ai.unturf.com/v1"
# MODEL_NAME = "adamo1139/Hermes-3-Llama-3.1-8B-FP8-Dynamic"
# API_KEY = "not-needed"

# Option 3: Free uncloseai.com - Qwen Coder 30B (tested, works!)
# BASE_URL = "https://qwen.ai.unturf.com/v1"
# MODEL_NAME = "hf.co/unsloth/Qwen3-Coder-30B-A3B-Instruct-GGUF:Q4_K_M"
# API_KEY = "not-needed"

# Option 4: Local Ollama (port 11434)
# BASE_URL = "http://localhost:11434/v1"
# MODEL_NAME = "qwen3-coder:30b-q4"
# API_KEY = "ollama"

# Option 5: Local vLLM (port 18888)
# BASE_URL = "http://localhost:18888/v1"
# MODEL_NAME = "adamo1139/Hermes-3-Llama-3.1-8B-FP8-Dynamic"
# API_KEY = "token-abc123"

# unsandbox API key (get free key at unsandbox.com)
UNSANDBOX_KEY = "unsb-sk-xxxxx-xxxxx-xxxxx-xxxxx"

# ===== STEP 1: Generate Code =====
# Same code works for ALL models - just change base_url above!
problem = """Solve this problem by writing Python code.
Output ONLY the code, no explanations.

Problem: A company's revenue grew 15% annually for 3 years,
starting from $1.2M. What's the revenue in year 3?"""

client = OpenAI(api_key=API_KEY, base_url=BASE_URL)
response = client.chat.completions.create(
    model=MODEL_NAME,
    max_tokens=2048,
    messages=[{"role": "user", "content": problem}]
)
code = response.choices[0].message.content

# ===== STEP 2: Execute via unsandbox =====
exec_response = requests.post(
    "https://api.unsandbox.com/execute",
    headers={"Authorization": f"Bearer {UNSANDBOX_KEY}"},
    json={"language": "python", "code": code, "timeout": 5}
)

result = exec_response.json()
print(result["stdout"])  # $1,825,305.00

تحليل التكلفة لكل نموذج

النموذج توليد الكود unsandbox المجموع/الاستعلام السرعة
GPT-4.1 Nano ~$0.0003 $0.000023 $0.000323 ~3-4s
GPT-4.1 Mini ~$0.0011 $0.000023 $0.001123 ~3-4s
GPT-4o Mini ~$0.0002 $0.000023 $0.000223 ~5s
Qwen 3 Coder 30B (local) $0 $0.000023 $0.000023 ~1-2s
Hermes-3 8B (local) $0 $0.000023 $0.000023 ~1-2s

ملاحظة: تكلفة unsandbox $0.000023 لكل طلب لجميع الخطط (Dev، Production، Business) - تدفع أكثر لحدود معدل أعلى، وليس تسعير لكل طلب.

طبقات تسعير unsandbox (تكلفة لكل طلب عند الاستخدام الكامل):

الطبقة التكلفة الشهرية الطلبات/الشهر التكلفة/الطلب
Development $7 302,400 $0.000023
Production $91 3,931,200 $0.000023
Business $175 7,560,000 $0.000023

رؤية رئيسية: تلغي النماذج المحلية تكاليف API تماماً - تدفع فقط لتنفيذ unsandbox ($0.000023/استعلام).

المعايير: النماذج الصغيرة مقابل النماذج الكبيرة

تظهر الأبحاث من ورقة PoT تحسينات كبيرة:

مجموعة البيانات GPT-3 CoT GPT-3 PoT التحسين
GSM8K (math) 68.2% 78.5% +10.3%
SVAMP (word problems) 74.1% 85.3% +11.2%
FinQA (financial) 52.3% 67.8% +15.5%
ConvFinQA 48.6% 63.2% +14.6%

رؤية رئيسية: التحسين أكبر على المشاكل الأصعب حيث تتراكم الأخطاء الحسابية متعددة الخطوات.

لماذا يعمل PoT مع النماذج الحديثة (2025)

استخدم البحث الأصلي نماذج عصر GPT-3، لكن التقنية أكثر قوة اليوم:

  • النماذج المحلية الأصغر (Qwen 3 Coder 30B، Hermes-3-Llama-3.1-8B) يمكنها توليد كود Python صحيح
  • تنفيذ الكود عبر unsandbox يلغي أخطاء الحساب تماماً
  • التكلفة أقل بكثير: النماذج المحلية + unsandbox (~$0.000023/استعلام) مقابل GPT-4 API ($0.02-0.05/استعلام)
  • الخصوصية محفوظة: توليد الكود يحدث محلياً، فقط التنفيذ يذهب إلى unsandbox

الرؤية الرئيسية: لا تحتاج إلى نموذج ضخم لكتابة كود صحيح - تحتاج فقط إلى فهم المشكلة والتعبير عن المنطق. الحساب الفعلي يتم التعامل معه بواسطة Python، الذي لا يرتكب أخطاءً أبداً.

السرعة: النماذج الكمية الأصغر أسرع

إليك الجزء المخالف للبديهة: النماذج المكممة تمنحك إجابات صحيحة بشكل أسرع من نماذج API الكبيرة.

مقارنة الكمون (نفس المشكلة)

النموذج وقت التوليد وقت التنفيذ المجموع النتيجة
GPT-4 API (CoT) ~3,500ms N/A 3,500ms ❌ أحياناً خاطئ
GPT-4 API (PoT) ~2,000ms ~150ms 2,150ms ✅ دائماً صحيح
Qwen 3 Coder 30B Q4 (Local PoT) ~800ms ~150ms 950ms ✅ دائماً صحيح
Hermes-3 8B FP8 (Local PoT) ~400ms ~150ms 550ms ✅ دائماً صحيح

لماذا النماذج المكممة أسرع:

  1. بصمة ذاكرة أصغر → توليد رمز أسرع (Q4/FP8 يعمل بالكامل في ذاكرة التخزين المؤقت GPU)
  2. مخرجات أقصر → الكود أكثر إيجازاً من شروحات الحساب خطوة بخطوة
  3. لا كمون API → الاستدلال المحلي يلغي رحلات الشبكة
  4. التنفيذ المتوازي → يمكن لـ unsandbox تنفيذ مقتطفات كود متعددة في وقت واحد

التأثير في العالم الحقيقي:

معالجة 100 مشكلة رياضية:

GPT-4 CoT:       100 × 3,500ms = 350 ثانية (5.8 دقيقة)
Hermes-3 FP8 PoT: 100 × 550ms = 55 ثانية (< 1 دقيقة)

تحصل على إجابات صحيحة أسرع 6× بتكلفة 1/200 باستخدام نموذج مكمّم على GPU للمستهلك.

ما وراء الرياضيات: تطبيقات PoT الأخرى

1. تحليل البيانات

# النموذج يولد كود pandas لاستعلامات ذكاء الأعمال
import pandas as pd

df = pd.read_csv('sales_data.csv')
monthly_revenue = df.groupby(df['date'].dt.month)['revenue'].sum()
growth_rate = monthly_revenue.pct_change().mean()

print(f"Average monthly growth: {growth_rate:.2%}")

2. الحوسبة العلمية

# محاكاة الفيزياء التي لا يستطيع النموذج القيام بها في "رأسه"
import numpy as np
from scipy.integrate import odeint

def projectile_motion(state, t, g=9.81):
    x, vx, y, vy = state
    return [vx, 0, vy, -g]

# Solve trajectory
solution = odeint(projectile_motion, [0, 10, 0, 15], np.linspace(0, 3, 100))
max_height = solution[:, 2].max()
print(f"Max height: {max_height:.2f} meters")

3. معالجة السلاسل

# regex/تحليل معقد تهلوس النماذج به
import re

def extract_emails(text):
    pattern = r'\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b'
    return re.findall(pattern, text)

text = "Contact us at hello@example.com or support@test.org for help"
emails = extract_emails(text)
print(f"Found {len(emails)} emails: {emails}")
# Output: Found 2 emails: ['hello@example.com', 'support@test.org']

اقتصاديات PoT

لشركة تعالج 1 مليون استعلام/شهر:

CoT التقليدي مع GPT-4:

  • الإدخال: 500 رمز × $0.01/1K = $5,000
  • الإخراج: 800 رمز × $0.03/1K = $24,000
  • المجموع: $29,000/شهر

PoT مع Qwen 3 Coder 30B (Q4_K_M) + unsandbox:

  • النموذج (مستضاف ذاتياً على RTX 4090): ~$0/شهر (يمتلك GPU بالفعل)
  • الإدخال: 500 رمز × $0.00 = $0
  • الإخراج: 200 رمز × $0.00 = $0
  • تنفيذ unsandbox: 1M × $0.000023 = $23/شهر
  • المجموع: $23/شهر

التوفير: $28,977/شهر (تخفيض التكلفة 99.9٪)

بالإضافة إلى:

  • أسرع 3 مرات (نموذج أصغر + إخراج أقصر)
  • أكثر دقة في المهام العددية
  • حتمي النتائج
  • خصوصية كاملة (تشغيل النماذج محلياً)

نصائح التنفيذ

1. قالب موجه النظام

أنت مساعد تفكير رياضي.
عند حل المشاكل:
1. اكتب كود Python لحل المشكلة
2. استخدم أسماء متغيرات وصفية
3. أضف تعليقات توضح منطقك
4. أخرج فقط الكود القابل للتنفيذ
5. انتهي ببيان print() يظهر النتيجة

لا تفعل:
- إظهار الحساب في التعليقات
- اشرح تفكيرك باللغة الطبيعية
- التقريب أو التقدير - اكتب حسابات دقيقة

2. التصحيح الذاتي مع ملاحظات stderr/stdout

الميزة القاتلة: unsandbox تعيد كلاً من stdout وstderr، مما يمكّن التصحيح الذاتي التلقائي:

def solve_with_retry(problem, model_client, max_retries=3):
    """
    Generate code, execute it, and retry with error feedback if it fails.
    """
    for attempt in range(max_retries):
        # Step 1: Generate code
        response = model_client.chat.completions.create(
            model="gpt-4.1-nano",
            max_tokens=2048,
            messages=[{
                "role": "user",
                "content": f"Solve this problem by writing Python code.\nOutput ONLY the code.\n\n{problem}"
            }]
        )

        code = response.choices[0].message.content

        # Step 2: Execute via unsandbox
        result = requests.post(
            "https://api.unsandbox.com/execute",
            headers={"Authorization": "Bearer unsb-sk-xxxx"},
            json={"language": "python", "code": code, "timeout": 5}
        ).json()

        # Step 3: Check for errors
        if result.get("stderr") == "" and result.get("stdout"):
            # Success!
            return result["stdout"]

        # Step 4: Retry with error feedback
        error_msg = result.get("stderr", "No output produced")
        problem = f"""
Previous attempt failed with error:
{error_msg}

Failed code:
{code}

Original problem: {problem}

Fix the syntax or logic error and write corrected Python code.
"""

    return None  # Failed after max retries

مثال حقيقي:

المحاولة 1: النموذج يكتب `printt(result)` → stderr: "NameError: name 'printt' is not defined"
المحاولة 2: النموذج يصلح الخطأ الإملائي → `print(result)` → نجاح!

هذا يحسن الدقة بشكل كبير للنماذج الأصغر التي تقوم أحياناً بأخطاء بناء الجملة.

3. التحقق

# قم بتشغيل اختبارات التأكيد البسيطة
def validate_solution(code, expected_properties):
    result = execute_code_via_unsandbox(code)

    assert isinstance(result, (int, float)), "Result must be numeric"
    assert result > 0, "Result must be positive"
    assert result < 1_000_000, "Result seems unreasonably large"

    return result

القيود والاتجاهات المستقبلية

القيود الحالية

  1. جودة توليد الكود: النماذج الصغيرة أحياناً تولد كوداً غير صحيح من الناحية النحوية

    • الحل: التصويت متعدد العينات، منطق إعادة المحاولة، أو ضبط دقيق للنموذج
  2. فهم المشكلة: قد تسيء النماذج تفسير الأسئلة الغامضة

    • الحل: توضيح الموجه، أمثلة قليلة اللقطات
  3. الخوارزميات المعقدة: النماذج تكافح مع التحديات الخوارزمية الجديدة

    • الحل: توفير وظائف المكتبة، التقسيم إلى مشاكل فرعية

المستقبل: سلسلة الكود

تظهر الأبحاث الناشئة نتائج أفضل مع الأساليب الهجينة:

# Step 1: Natural language reasoning
# "I need to find the compound annual growth rate..."

# Step 2: Code for calculations
def cagr(start_value, end_value, years):
    return (end_value / start_value) ** (1 / years) - 1

# Step 3: Natural language interpretation
# "A CAGR of 12.5% means the investment grew by about 12.5% per year"

هذا يجمع بين نقاط القوة في كلا النهجين.

جربها بنفسك

البدء السريع مع unsandbox:

  1. احصل على مفتاح API مجاني: unsandbox.com

  2. قم بتشغيل أول استعلام PoT الخاص بك:

    curl https://api.unsandbox.com/execute \
    -H "Authorization: Bearer YOUR_KEY" \
    -H "Content-Type: application/json" \
    -d '{
     "language": "python",
     "code": "def compound_growth(principal, rate, years):\n    return principal * (1 + rate) ** years\n\nresult = compound_growth(10000, 0.07, 10)\nprint(f\"Final value: ${result:,.2f}\")"
    }'
  3. ادمج مع LLM الخاص بك:

    # See full example in our docs:
    # https://unsandbox.com/docs/python

أمثلة الموجهات

جرب هذه مع نموذجك المفضل + unsandbox:

  1. المالية: “احسب القيمة الحالية لاستلام 10000 دولار سنوياً لمدة 20 سنة بمعدل خصم 5٪”

  2. الإحصاء: “توليد 1000 عينة عشوائية من توزيع طبيعي بمتوسط = 100، انحراف معياري = 15. ما النسبة المئوية التي تقع بين 85 و 115؟”

  3. الفيزياء: “يتم رمي كرة بسرعة 20 م/ث بزاوية 45 درجة. ما المسافة التي تقطعها قبل أن تصطدم بالأرض؟”

الخلاصة

يمثل برنامج الفكر تحولاً نموذجياً: توقف عن مطالبة النماذج بالقيام بالرياضيات؛ اطلب منهم كتابة الكود.

الآثار عميقة:

  • النماذج الأصغر تصبح قابلة للإنتاج
  • النماذج المكممة تطابق أو تتجاوز أداء النموذج الكبير
  • التكاليف تنخفض بنسبة 90-99٪
  • النتائج تصبح حتمية وقابلة للمراجعة
  • النشر المحلي عملي (لا حاجة إلى GPUs ضخمة)

مع توفير unsandbox تنفيذ كود آمن وسريع عبر أكثر من 42 لغة، لم يعد PoT تقنية بحثية - إنها استراتيجية جاهزة للإنتاج لبناء أنظمة AI دقيقة وبأسعار معقولة.

المستقبل ليس نماذج أكبر. إنها بنية أكثر ذكاءً.


الموارد:

جرب برنامج الفكر: احصل على مفتاح API مجاني في unsandbox.com - طلب واحد لكل 42 ثانية، مثالي للتجربة.