برنامج الفكر: كيف تتفوق النماذج الصغيرة على النماذج الكبيرة
أحدث توجيه السلسلة الفكرية (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 | ✅ دائماً صحيح |
لماذا النماذج المكممة أسرع:
- بصمة ذاكرة أصغر → توليد رمز أسرع (Q4/FP8 يعمل بالكامل في ذاكرة التخزين المؤقت GPU)
- مخرجات أقصر → الكود أكثر إيجازاً من شروحات الحساب خطوة بخطوة
- لا كمون API → الاستدلال المحلي يلغي رحلات الشبكة
- التنفيذ المتوازي → يمكن لـ 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
القيود والاتجاهات المستقبلية
القيود الحالية
-
جودة توليد الكود: النماذج الصغيرة أحياناً تولد كوداً غير صحيح من الناحية النحوية
- الحل: التصويت متعدد العينات، منطق إعادة المحاولة، أو ضبط دقيق للنموذج
-
فهم المشكلة: قد تسيء النماذج تفسير الأسئلة الغامضة
- الحل: توضيح الموجه، أمثلة قليلة اللقطات
-
الخوارزميات المعقدة: النماذج تكافح مع التحديات الخوارزمية الجديدة
- الحل: توفير وظائف المكتبة، التقسيم إلى مشاكل فرعية
المستقبل: سلسلة الكود
تظهر الأبحاث الناشئة نتائج أفضل مع الأساليب الهجينة:
# 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:
-
احصل على مفتاح API مجاني: unsandbox.com
-
قم بتشغيل أول استعلام 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}\")" }' -
ادمج مع LLM الخاص بك:
# See full example in our docs: # https://unsandbox.com/docs/python
أمثلة الموجهات
جرب هذه مع نموذجك المفضل + unsandbox:
-
المالية: “احسب القيمة الحالية لاستلام 10000 دولار سنوياً لمدة 20 سنة بمعدل خصم 5٪”
-
الإحصاء: “توليد 1000 عينة عشوائية من توزيع طبيعي بمتوسط = 100، انحراف معياري = 15. ما النسبة المئوية التي تقع بين 85 و 115؟”
-
الفيزياء: “يتم رمي كرة بسرعة 20 م/ث بزاوية 45 درجة. ما المسافة التي تقطعها قبل أن تصطدم بالأرض؟”
الخلاصة
يمثل برنامج الفكر تحولاً نموذجياً: توقف عن مطالبة النماذج بالقيام بالرياضيات؛ اطلب منهم كتابة الكود.
الآثار عميقة:
- النماذج الأصغر تصبح قابلة للإنتاج
- النماذج المكممة تطابق أو تتجاوز أداء النموذج الكبير
- التكاليف تنخفض بنسبة 90-99٪
- النتائج تصبح حتمية وقابلة للمراجعة
- النشر المحلي عملي (لا حاجة إلى GPUs ضخمة)
مع توفير unsandbox تنفيذ كود آمن وسريع عبر أكثر من 42 لغة، لم يعد PoT تقنية بحثية - إنها استراتيجية جاهزة للإنتاج لبناء أنظمة AI دقيقة وبأسعار معقولة.
المستقبل ليس نماذج أكبر. إنها بنية أكثر ذكاءً.
الموارد:
جرب برنامج الفكر: احصل على مفتاح API مجاني في unsandbox.com - طلب واحد لكل 42 ثانية، مثالي للتجربة.