خادم استنتاج الذكاء الاصطناعي المحلي خفيف الوزن، بحجم 5 ميجابايت فقط كملف ثنائي واحد، يوفر واجهة متوافقة مع OpenAI API، ويدعم نماذج GGUF ومحولات LoRA.
Shimmy - خادم استدلال AI محلي خفيف الوزن
نظرة عامة على المشروع
Shimmy هو خادم استدلال محلي أحادي الثنائي بحجم 5.1 ميجابايت، يوفر نقاط نهاية متوافقة مع OpenAI API لنماذج GGUF. لقد تم تصميمه ليكون "بنية تحتية غير مرئية"، مما يجعل تطوير الذكاء الاصطناعي المحلي سلسًا.
الميزات الأساسية
🚀 خفيف الوزن للغاية
- حجم الملف الثنائي: 5.1 ميجابايت فقط (مقارنة بـ 680 ميجابايت لـ Ollama)
- وقت التشغيل: أقل من 100 مللي ثانية (مقارنة بـ 5-10 ثوانٍ لـ Ollama)
- استهلاك الذاكرة: أقل من 50 ميجابايت (مقارنة بـ 200 ميجابايت+ لـ Ollama)
🔧 تشغيل بدون تهيئة
- تخصيص المنفذ التلقائي: يتجنب تعارضات المنافذ
- الاكتشاف التلقائي للنماذج: يدعم مصادر نماذج متعددة
- ذاكرة التخزين المؤقت لـ Hugging Face:
~/.cache/huggingface/hub/
- نماذج Ollama:
~/.ollama/models/
- الدليل المحلي:
./models/
- متغيرات البيئة:
SHIMMY_BASE_GGUF=path/to/model.gguf
- ذاكرة التخزين المؤقت لـ Hugging Face:
🎯 توافق مثالي
- متوافق بنسبة 100% مع OpenAI API: يحل محل الأدوات الحالية مباشرة
- جاهز للاستخدام الفوري: أدوات مثل VSCode وCursor وContinue.dev لا تتطلب أي تعديل
- دعم عبر الأنظمة الأساسية: Linux وmacOS وWindows
البنية التقنية
حزمة التقنيات الأساسية
- اللغة: Rust + Tokio (أمان الذاكرة، أداء غير متزامن)
- محرك الاستدلال: الواجهة الخلفية llama.cpp (استدلال GGUF القياسي في الصناعة)
- تصميم API: متوافق مع OpenAI (استبدال فوري)
تنسيقات النماذج المدعومة
- نماذج GGUF: تنسيق الدعم الرئيسي
- SafeTensors: دعم أصلي، سرعة تحميل مضاعفة
- محولات LoRA: دعم من الدرجة الأولى، من التدريب إلى API الإنتاج في 30 ثانية فقط
التثبيت والاستخدام
التثبيت السريع
الطريقة 1: التثبيت عبر Cargo
cargo install shimmy
الطريقة 2: تنزيل الملف الثنائي المُجهز مسبقًا (Windows)
curl -L https://github.com/Michael-A-Kuykendall/shimmy/releases/latest/download/shimmy.exe
الطريقة 3: تثبيت macOS
# تثبيت التبعيات
brew install cmake rust
# تثبيت shimmy
cargo install shimmy
الاستخدام الأساسي
1. تنزيل النماذج
# تنزيل نماذج متوافقة
huggingface-cli download microsoft/Phi-3-mini-4k-instruct-gguf --local-dir ./models/
huggingface-cli download bartowski/Llama-3.2-1B-Instruct-GGUF --local-dir ./models/
2. تشغيل الخادم
# تخصيص المنفذ تلقائيًا
shimmy serve
# تحديد المنفذ يدويًا
shimmy serve --bind 127.0.0.1:11435
3. تهيئة أدوات الذكاء الاصطناعي
تهيئة VSCode:
{
"github.copilot.advanced": {
"serverUrl": "http://localhost:11435"
}
}
تهيئة Continue.dev:
{
"models": [{
"title": "Local Shimmy",
"provider": "openai",
"model": "your-model-name",
"apiBase": "http://localhost:11435/v1"
}]
}
أدوات سطر الأوامر
الأوامر الأساسية
shimmy serve # تشغيل الخادم (تخصيص المنفذ تلقائيًا)
shimmy serve --bind 127.0.0.1:8080 # ربط المنفذ يدويًا
shimmy list # عرض النماذج المتاحة
shimmy discover # تحديث اكتشاف النماذج
shimmy generate --name X --prompt "Hi" # اختبار التوليد
shimmy probe model-name # التحقق من تحميل النموذج
نقاط نهاية API
نقاط النهاية الأساسية
GET /health
- فحص السلامةPOST /v1/chat/completions
- دردشة متوافقة مع OpenAIGET /v1/models
- سرد النماذج المتاحةPOST /api/generate
- واجهة برمجة تطبيقات Shimmy الأصليةGET /ws/generate
- بث WebSocket
أمثلة الاستخدام
# اختبار API
curl -X POST http://localhost:11435/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "your-model",
"messages": [{"role": "user", "content": "Hello!"}]
}'
مقارنة الأداء
المؤشر | Shimmy | Ollama | llama.cpp |
---|---|---|---|
حجم الملف الثنائي | 5.1 ميجابايت 🏆 | 680 ميجابايت | 89 ميجابايت |
وقت التشغيل | <100 مللي ثانية 🏆 | 5-10 ثوانٍ | 1-2 ثانية |
استخدام الذاكرة | 50 ميجابايت 🏆 | 200 ميجابايت+ | 100 ميجابايت |
OpenAI API | 100% 🏆 | دعم جزئي | لا يوجد |
المزايا الرئيسية
🔒 خصوصية أولاً
- يبقى الكود على جهازك المحلي
- لا يوجد خطر تسرب البيانات
- يعمل بالكامل دون اتصال بالإنترنت
💰 فعالية التكلفة
- لا توجد رسوم لكل رمز (Token)
- عدد غير محدود من الاستعلامات
- تثبيت لمرة واحدة، استخدام دائم
⚡ أداء ممتاز
- استدلال محلي، استجابة في أجزاء من الثانية
- استهلاك منخفض للذاكرة
- تشغيل سريع
🔄 نشر مرن
- ملف ثنائي واحد
- لا توجد تبعيات خارجية
- توافق عبر الأنظمة الأساسية
الميزات الموسعة
دعم محولات LoRA
يوفر Shimmy دعمًا من الدرجة الأولى لمحولات LoRA، مما يتيح النشر السريع من النماذج المدربة إلى واجهة برمجة تطبيقات الإنتاج:
# تحميل محول LoRA
shimmy serve --lora-adapter path/to/adapter
تبديل النماذج الساخن
يدعم التبديل الديناميكي للنماذج أثناء التشغيل، دون الحاجة لإعادة تشغيل الخادم.
تسريع GPU
- macOS: تسريع Metal GPU تلقائي
- عبر الأنظمة الأساسية: يدعم مختلف الواجهات الخلفية لوحدات معالجة الرسوميات (GPU)
المجتمع والدعم
موارد المجتمع
- تقارير الأخطاء: GitHub Issues
- المناقشات: GitHub Discussions
- الوثائق: docs/
- الرعاية: GitHub Sponsors
الملخص
Shimmy هو حل ثوري للاستدلال المحلي للذكاء الاصطناعي، يثبت أن "الأقل هو الأكثر" في بعض الأحيان. من خلال تصميمه خفيف الوزن للغاية ومفهوم "صفر تهيئة"، يوفر Shimmy للمطورين بنية تحتية للذكاء الاصطناعي المحلي "جاهزة للاستخدام" حقًا، مع الحفاظ على أداء وتوافق على مستوى المؤسسات. سواء كنت مطور تطبيقات ذكاء اصطناعي، باحثًا، أو مستخدمًا مهتمًا بالخصوصية، فإن Shimmy يعد خيارًا ممتازًا يستحق النظر.