Needle: نموذج استدعاء أدوات بحجم 26M معامل يعمل على أي جهاز – دليل تجريبي عربي
Show HN: Needle: We Distilled Gemini Tool Calling into a 26M Model
خريطة الصفحة
اختر القسم الذي تحتاجه الآن
- ما هو Needle؟ شرح مبسط
- من يحتاج Needle ومن لا؟
- المميزات الرئيسية
- المتطلبات قبل البدء
- تركيب Needle خطوة بخطوة (تحذير: README غير واضح)
- تشغيل Needle وتجربة استدعاء أداة
- الأخطاء الشائعة وحلولها
- استخدامات عملية في السوق السعودي/الخليجي
- هل يستحق Needle التجربة؟ تقييم موضوعي
- بدائل Needle المشابهة
- الأسئلة الشائعة (FAQ)
- خاتمة
قبل أن تطبق
الفكرة التي تمنع التسرع
تعتقد أن نماذج استدعاء الأدوات تحتاج إلى موارد سحابية ضخمة؟ نموذج بحجم 26M معامل يعمل على حاسوبك العادي قد يغير هذه القناعة.
أسئلة التشخيص السريع
قبل أن تطبق، اعرف أين تقف بالضبط
- هل تبحث عن نموذج استدعاء أدوات خفيف يعمل محلياً؟
- هل تحتاج إلى أتمتة مهام مثل تحويل العملات أو حجز مواعيد دون اشتراكات سحابية؟
- هل لديك خبرة في Python و PyTorch؟
- هل جهازك محدود الموارد (RAM 2GB)؟
- هل تفضل نموذجاً مفتوح المصدر برخصة Apache 2.0؟
- هل أنت مستعد لتجربة نموذج قد لا يكون جاهزاً للإنتاج بعد؟
- هل تحتاج إلى دقة عالية في مهام معقدة أم مهام بسيطة؟
نظام التشغيل: Input → Process → Output
لوحة قياس النجاح
لا تعتمد على الانطباع؛ اختر مؤشراً تراجعه
ظهر في Hacker News نموذج Needle من Cactus Compute، وهو نموذج استدعاء أدوات (tool calling) بحجم 26 مليون معامل فقط. الفكرة: استدعاء الأدوات لا يحتاج إلى نماذج ضخمة؛ يكفي نموذج صغير متخصص يعمل على أي جهاز. هذا الدليل يشرح لك كيفية تجربته محلياً، خطوة بخطوة، مع أمثلة عملية وأخطاء شائعة.
ملاحظة: README المشروع غير واضح بالكامل، لذا الخطوات تقريبية بناءً على بنية المشروع. لا تتردد في الرجوع إلى المستودع الرسمي لأي تحديثات.
ما هو Needle؟ شرح مبسط
Needle هو نموذج لغة صغير (26M معامل) متخصص في مهمة واحدة: استدعاء الأدوات. يعني إذا قلت له "حول 100 دولار إلى ريال سعودي"، يرجع JSON مثل: {'tool': 'convert_currency', 'args': {'amount': 100, 'from': 'USD', 'to': 'SAR'}}. الفكرة أن النماذج الكبيرة تهدر مواردها في التفكير العام، بينما استدعاء الأدوات مجرد مطابقة واستخراج.
من يحتاج Needle ومن لا؟
يحتاجه: مطور يريد بناء وكيل ذكي (agent) يعمل محلياً، صاحب مشروع صغير يريد أتمتة مهام دون اشتراكات سحابية، باحث في النماذج الصغيرة.
لا يحتاجه: من يريد نموذج دردشة عام، أو يحتاج دقة عالية في مهام معقدة، أو يفضل حلولاً جاهزة مثل OpenAI.
المميزات الرئيسية
- حجم صغير جداً (26M معامل) يعمل على CPU.
- سرعة عالية: 6000 tok/s prefill، 1200 tok/s decode.
- مفتوح المصدر (رخصة Apache 2.0 حسب README).
- مصمم خصيصاً لاستدعاء الأدوات، ليس دردشة.
المتطلبات قبل البدء
- Python 3.8+
- مكتبة PyTorch (يفضل مع دعم CUDA إن وجد)
- مكتبة transformers من Hugging Face
- ذاكرة RAM: 2GB على الأقل
- اتصال إنترنت لتحميل النموذج (مرة واحدة)
تركيب Needle خطوة بخطوة (تحذير: README غير واضح)
الخطوات التالية تقريبية بناءً على بنية المشروع. قد تختلف بعد تحديث README.
- استنساخ المستودع:
git clone https://github.com/cactus-compute/needle.git - الدخول إلى المجلد:
cd needle - تثبيت المتطلبات:
pip install -r requirements.txt(إذا لم يوجد، جربpip install torch transformers) - تحميل النموذج: استخدم
from transformers import AutoModelForCausalLM, AutoTokenizerمع اسم النموذجcactus-compute/needle.
تشغيل Needle وتجربة استدعاء أداة
مثال عملي: استدعاء أداة تحويل العملات.
from transformers import AutoModelForCausalLM, AutoTokenizer
model_name = 'cactus-compute/needle'
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(model_name)
# تعريف الأداة
tools = [
{
'name': 'convert_currency',
'description': 'تحويل عملة إلى أخرى',
'parameters': {
'type': 'object',
'properties': {
'amount': {'type': 'number'},
'from': {'type': 'string'},
'to': {'type': 'string'}
},
'required': ['amount', 'from', 'to']
}
}
]
prompt = 'حول 100 دولار إلى ريال سعودي'
inputs = tokenizer(prompt, return_tensors='pt')
outputs = model.generate(**inputs, max_new_tokens=100)
result = tokenizer.decode(outputs[0])
print(result)
# يتوقع أن يخرج JSON مشابه لـ: {"tool": "convert_currency", "args": {"amount": 100, "from": "USD", "to": "SAR"}}
الأخطاء الشائعة وحلولها
استخدامات عملية في السوق السعودي/الخليجي
- روبوت تحويل العملات في تطبيق مصرفي محلي.
- أداة حجز مواعيد في عيادة: استدعاء أداة reservation مع تاريخ وطبيب.
- مساعد طلب طعام: استدعاء أداة order مع اسم الوجبة والعنوان.
هل يستحق Needle التجربة؟ تقييم موضوعي
نعم، إذا كنت تبحث عن نموذج خفيف وسريع لمهمة محددة. لكنه ليس جاهزاً للإنتاج بعد؛ قد يحتاج ضبطاً دقيقاً على أدواتك. الأداء جيد في المهام البسيطة، لكنه يخطئ في الأدوات المعقدة.
بدائل Needle المشابهة
- Gorilla (7B): نموذج أكبر لكنه أقوى في استدعاء APIs.
- Toolformer: من Meta، لكنه غير متاح للجميع.
- OpenAI Function Calling: دقيق لكنه سحابي ومدفوع.
الأسئلة الشائعة (FAQ)
ما هو Needle بالضبط؟
نموذج لغة صغير متخصص في استدعاء الأدوات، مبني على Simple Attention Networks.
هل Needle مجاني تماماً؟
نعم، مفتوح المصدر برخصة Apache 2.0.
ما هي متطلبات تشغيل Needle؟
Python 3.8+، PyTorch، transformers، و2GB RAM.
هل يمكن استخدام Needle بدون اتصال بالإنترنت؟
بعد تحميل النموذج، نعم.
ما الفرق بين Needle والنماذج الكبيرة مثل GPT-4؟
Needle أصغر بكثير وأسرع، لكنه أقل دقة ومرونة.
هل يدعم Needle اللغة العربية؟
النموذج مدرب على بيانات إنجليزية بشكل أساسي، لكنه قد يفهم العربية البسيطة.
كيف يمكنني تجربة Needle على نظام Windows؟
نفس الخطوات، تأكد من تثبيت Python وPyTorch بشكل صحيح.
ما هي أفضل البدائل لـ Needle؟
Gorilla (7B) أو OpenAI Function Calling.
خاتمة
Needle مشروع واعد في مجال استدعاء الأدوات بنماذج صغيرة. جربه على جهازك، وشارك ملاحظاتك مع المجتمع. تذكر أن المشروع جديد، لذا توقع بعض النواقص.
Playbook التطبيق
خطوات عملية مرتبة من التشخيص إلى النتيجة
استنساخ المستودع
لماذا؟ للحصول على كود النموذج والملفات اللازمة
كيف؟ git clone https://github.com/cactus-compute/needle.git
الناتج: مجلد needle يحتوي على الكود
تثبيت المتطلبات
لماذا؟ لتثبيت المكتبات المطلوبة (PyTorch, transformers)
كيف؟ pip install torch transformers
الناتج: تثبيت المكتبات بنجاح
تحميل النموذج
لماذا؟ لتحميل أوزان النموذج من Hugging Face
كيف؟ from transformers import AutoModelForCausalLM, AutoTokenizer; model = AutoModelForCausalLM.from_pretrained('cactus-compute/needle')
الناتج: نموذج جاهز للاستخدام
تشغيل مثال تحويل العملات
لماذا؟ لتجربة استدعاء أداة عملياً
كيف؟ استخدم الكود المقدم في المقال مع تعريف أداة convert_currency
الناتج: JSON يحتوي على الأداة والوسائط
قوالب جاهزة للنسخ
حوّل القراءة إلى تنفيذ سريع
from transformers import AutoModelForCausalLM, AutoTokenizer
model_name = 'cactus-compute/needle'
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(model_name)
tools = [{'name': 'convert_currency', 'description': 'تحويل عملة إلى أخرى', 'parameters': {'type': 'object', 'properties': {'amount': {'type': 'number'}, 'from': {'type': 'string'}, 'to': {'type': 'string'}}, 'required': ['amount', 'from', 'to']}}]
prompt = 'حول 100 دولار إلى ريال سعودي'
inputs = tokenizer(prompt, return_tensors='pt')
outputs = model.generate(**inputs, max_new_tokens=100)
result = tokenizer.decode(outputs[0])
print(result)مصفوفة الأخطاء
اعرف أين يتعثر الناس وكيف تتجنب ذلك
شجرة القرار
ماذا تفعل حسب حالتك؟
إذا: إذا كنت تبحث عن نموذج خفيف وسريع لمهمة محددة
إذن: جرب Needle
إذا: إذا كنت تحتاج دقة عالية في مهام معقدة
إذن: استخدم Gorilla (7B) أو OpenAI Function Calling
إذا: إذا كان README غير واضح
إذن: اتبع الخطوات التقريبية في هذا الدليل
خطة تطبيق 7 أيام
جدول صغير يمنع التسويف
- اليوم 1: استنساخ المستودع وتثبيت المتطلبات
- اليوم 2: تحميل النموذج وتشغيل مثال بسيط
- اليوم 3: تجربة أدوات مختلفة (تحويل عملات، حجز مواعيد)
- اليوم 4: اختبار الأداء على CPU
- اليوم 5: معالجة الأخطاء الشائعة
- اليوم 6: تقييم الدقة في مهام بسيطة
- اليوم 7: اتخاذ قرار: استخدام Needle أم بديل
حقائق سريعة تحفظها
نقاط مختصرة ترجع لها لاحقاً
1. حجم النموذج: 26 مليون معامل فقط
2. السرعة: 6000 tok/s prefill، 1200 tok/s decode
3. الترخيص: Apache 2.0
4. متطلبات RAM: 2GB على الأقل
5. يعمل على CPU بدون GPU
6. مصمم خصيصاً لاستدعاء الأدوات وليس الدردشة
7. README المشروع غير واضح حالياً
8. النموذج مدرب أساساً على الإنجليزية
أسئلة شائعة
إجابات مباشرة على ما يبحث عنه الزائر
مصطلحات سريعة
تعريفات مختصرة تمنع الالتباس
عملية تحويل طلب طبيعي إلى استدعاء دالة محددة مع وسائطها.
بنية شبكة عصبية مبسطة تستخدم آلية الانتباه.
مرحلة معالجة المدخلات قبل بدء التوليد.
مرحلة توليد المخرجات رمزاً برمز.
أسئلة مرتبطة يبحث عنها الناس
استخدمها كمسارات متابعة داخل نفس الموضوع
لماذا هذا المرجع يتجاوز الموضوع نفسه؟
تحول القارئ: من متشكك في جدوى النماذج الصغيرة إلى ممارس يجرب Needle على جهازه
- يمكن دمج Needle مع LangChain لبناء وكيل ذكي
- استخدام Needle في تطبيقات إنترنت الأشياء (IoT) لاستدعاء أجهزة
كيف تستخدم هذا المرجع لاحقاً؟
القيمة الحقيقية تظهر عند العودة والتطبيق
لا تتعامل معه كمقال يُقرأ مرة واحدة. استخدمه كلوحة تشغيل: ارجع للتشخيص عند ظهور المشكلة، وللقوالب عند التطبيق، ولمؤشرات القياس عند المراجعة.
Needle مشروع واعد في مجال استدعاء الأدوات بنماذج صغيرة. جربه على جهازك، وشارك ملاحظاتك مع المجتمع. تذكر أن المشروع جديد، لذا توقع بعض النواقص. ابدأ بتجربة بسيطة، وقيم الأداء بنفسك.
خطة تحديث هذا الدليل
حتى يبقى المرجع صالحاً مع الوقت
- تحديث الخطوات إذا تغير README
- إضافة أمثلة جديدة لأدوات عربية
- تحديث معلومات الأداء بناءً على إصدارات جديدة
- مراجعة البدائل عند ظهور نماذج جديدة

التعليقات (0)
لا توجد تعليقات بعد. كن أول من يبدأ النقاش 👇