STACKDUST
EN
رسم توضيحي تحريري لمحرك استدلال نماذج لغوية مكتوب بلغة Rust يعتمد WebGPU لتشغيل نماذج GGUF محليًا على العتاد الاستهلاكي بأسلوب STACKDUST الداكن

Shimmy: محرك استدلال WebGPU بنقاء Rust دون بايثون أو مترجمات C++ المعقدة


الاستدلال المحلي دون تعقيدات التجميع: ثورة WebGPU بلغة Rust

يعد تشغيل النماذج اللغوية الكبيرة (LLMs) محليًا أحد أكثر المجالات جذبًا للمطورين، لكن حاجز الإعداد يظل عقبة مستمرة: مكتبات CUDA ضخمة، وبيئات Python معقدة، ومشاكل توافق المترجمات في مشاريع مثل llama.cpp. يظهر مشروع Shimmy ليقدم حلاً جذريًا لهذه المعضلة عبر ملف تنفيذي وحيد وخفيف الوزن مكتوب بنقاء لغة Rust.

يعتمد Shimmy على معيار WebGPU عبر مكتبة wgpu لتنفيذ عمليات الحوسبة التنسيقية (Compute Shaders) مباشرة على العتاد الرسومي، مما يتيح تشغيل ملفات نماذج GGUF على منصات macOS عبر Metal، وعلى Windows عبر DirectX 12 أو Vulkan، وعلى أنظمة Linux عبر Vulkan، دون الحاجة لتثبيت برامج تشغيل خاصة أو أدوات تطوير خارجية.

ما هو Shimmy؟

Shimmy هو خادم استدلال محلي مستقل (Standalone Inference Server) مصمم لتشغيل نماذج التوليد اللغوي بصيغة GGUF. يوفر المشروع واجهة برمجة تطبيقات متوافقة تمامًا مع معايير OpenAI API (/v1/chat/completions و /v1/models)، مما يسمح بربطه فوريًا بأي تطبيق محادثة مثل Open WebUI أو أي وكيل ذكي (AI Agent).

على عكس معظم المحركات التي تلتف حول C++ أو تستخدم بايثون لإدارة الذاكرة، بُني Shimmy من الصفر ليكون خفيفًا للغاية، حيث لا يتجاوز حجم الملف التنفيذي بضعة ميجابايتات، مع استهلاك ذاكرة عشوائية شبه معدوم للعمليات الأساسية خارج نطاق أوزان النموذج نفسه.

لماذا لم تسمع به من قبل؟

بدأ المشروع كجهد تقني متخصص يهدف إلى إثبات كفاءة مصفوفات الحوسبة المكتوبة بلغة WGSL (WebGPU Shading Language) الموجهة للذكاء الاصطناعي. لم يعتمد مطوره على حملات تسويقية، بل ركز على استقرار المعالجة ودعم أنماط التكميم الحديثة (مثل Q4_K_M و Q8_0). ومع تصاعد الاهتمام بالنشر الخفيف على الخوادم الصغيرة وأجهزة الحافة (Edge Devices)، برز كبديل تقني نقي يستحق المتابعة.

كيف يعمل تحت الغطاء؟

تعتمد البنية الداخلية لـ Shimmy على ثلاثة مرتكزات:

  1. قارئ تنسيقات GGUF المكتوب بـ Rust: يحلل ملفات النماذج ويقوم برسم خريطة الذاكرة (Memory Mapping) بسرعة فائقة ودون استهلاك مفرط للـ RAM.
  2. محرك حوسبة WebGPU: يتم تحويل عمليات ضرب المصفوفات (GEMM) والتطبيع (RMSNorm) والانتباه الذاتي (Self-Attention) إلى مصفوفات تظليل WGSL يتم إرسالها إلى معالج الرسوميات عبر خط أنابيب موحد.
  3. خادم ويب غير تزامني مدمج: مبني على مكتبة axum و tokio، ويقدم استجابات التدفق اللحظي (Server-Sent Events) لتدفق الرموز بأقل زمن وصول ممكن (Low Latency).

تشغيل الأداة ونشرها

يمكن تشغيل Shimmy مباشرة كملف تنفيذي أو عبر حاوية Docker. فيما يلي أمر التشغيل المباشر عبر الحاوية:

docker run -d \
  --name shimmy \
  --restart unless-stopped \
  -p 8080:8080 \
  -v /path/to/models:/models \
  --device /dev/dri:/dev/dri \
  ghcr.io/michael-a-kuykendall/shimmy:latest \
  serve --model /models/llama-3-8b-instruct.Q4_K_M.gguf --port 8080

أو يمكنك استخدام ملف docker-compose.yml البسيط التالي:

services:
  shimmy:
    image: ghcr.io/michael-a-kuykendall/shimmy:latest
    container_name: shimmy
    restart: unless-stopped
    ports:
      - "8080:8080"
    volumes:
      - ./models:/models:ro
    devices:
      - /dev/dri:/dev/dri
    command: ["serve", "--model", "/models/llama-3-8b.Q4_K_M.gguf", "--port", "8080"]

بمجرد تشغيل الخادم، يمكنك اختبار الواجهة باستخدام curl:

curl http://localhost:8080/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "local-model",
    "messages": [{"role": "user", "content": "Explain WebGPU in one sentence."}],
    "temperature": 0.7
  }'

ما الذي يستبدله؟

  • يستبدل بيئات بايثون الثقيلة: يغنيك عن تثبيت Torch أو Transformers أو vLLM على الأجهزة المتواضعة.
  • يستبدل تعقيدات Ollama: لا يقوم بتثبيت برمجيات خلفية غامضة أو تنزيل نماذج في مسارات مخفية؛ أنت تتحكم بملف GGUF والمنفذ مباشرة.
  • يستبدل قيود التوافق مع بطاقات AMD و Intel: بفضل WebGPU، لا تحتاج إلى إعدادات ROCm المعقدة على Linux؛ إذا كان معالج الرسوميات يدعم Vulkan، سيعمل Shimmy مباشرة.

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

رغم مرونة WebGPU، إلا أن أداءه الخام في معالجة الدفعات الكبيرة (Batch Processing) وحزم الخوادم المتعددة ما زال أقل من مكتبات CUDA المتخصصة والمحسنة يدويًا مثل FlashAttention-2 في vLLM. كما أن دعم نماذج MoE (مثل DeepSeek) لا يزال في مراحله التجريبية الأولى.

الفئات المستهدفة

  • المطورون الذين يبنون تطبيقات سطح مكتب مدمجة مع الذكاء الاصطناعي ويرغبون في تضمين محرك استدلال خفيف دون حزم بايثون.
  • أصحاب المعامل المنزلية (Homelabs) الذين يملكون بطاقات رسومية من Intel Arc أو AMD Radeon ويرغبون في استدلال محلي سلس.
  • فرق العمل الباحثة عن واجهة API محلية سريعة وخالية من التعقيد لإجراء اختبارات الوكلاء البرمجية.

الخلاصة

يبرهن Shimmy أن مستقبل استدلال الذكاء الاصطناعي على الحافة لا يتطلب بالضرورة بيئات عمل معقدة أو احتكارًا لتقنيات معينة. عبر الجمع بين أمان وسرعة Rust ومرونة WebGPU، يمثل المشروع خيارًا استثنائيًا للمطورين الباحثين عن البساطة والأداء الموثوق.

المصادر


المقال التاليBamBuddy: مركز تحكم محلي ومستقل بالكامل لطابعات Bambu Lab ثلاثية الأبعادالمقال السابقSony وWarner Chappell يقاضيان Anthropic: الدعوة رقم 13 تصل إلى كبار الناشرين الثلاثة