عن المشروع

TensorFold هو خادم استدلال محلي يعرض نماذج اللغة عبر واجهة HTTP متوافقة مع OpenAI. يستهدف خلفيتين: Apple Silicon عبر MLX ووحدات NVIDIA GPU عبر CUDA. كل عائلة نماذج مدعومة تأتي بنوى خاصة بها ومنطق تحقق من المسودات بدلاً من الاعتماد على مسار عام واحد. يتم التثبيت من مستودع Git باستخدام pip، وتوفر واجهة سطر الأوامر أوامر `serve` و`pull` و`models` و`info` و`update`. البدء النموذجي هو `tensorfold serve <checkpoint>`، وبعد ذلك يوجه العملاء الطلبات إلى `http://127.0.0.1:8080/v1` ويستخدمون معرّف النموذج الذي يبلغ عنه `/v1/models`. يتم تقديم إكمال المحادثات والإكمالات وواجهة Responses API. يلزم Python 3.11+، وMLX 0.32.2+ على macOS. يسرد ملف README جدولاً بعائلات النماذج والنقاط المرجعية المدعومة، بما في ذلك Nemotron 3.5 Lightning وQwen3.8-27B وQwen3.8 Flash Next وGLM-5.3-Flash وGemma 4 26B-A4B وDeepSeek-V4-Flash وTernary Bonsai 2 27B، مع ملاحظات حول الخلفية وطريقة الصياغة التي يستخدمها كل منها. يختلف دعم التكميم حسب العائلة: يقرأ Qwen3.8-27B نقاط تحقق MLX affine من 2 إلى 8 بتات بما في ذلك تنسيقات الطبقات المختلطة؛ ويتطلب Flash Next أوزان 4 بت/مجموعة-32؛ ويتطلب Nemotron CUDA أوزان 4 بت/مجموعة-64 بالإضافة إلى رأس MTP؛ ويقرأ GLM تحويلات 4 بت/مجموعة-64 والبتات المختلطة. تقبل بعض مسارات CUDA تحويلات NVFP4 أو EXL3، وتُوصف بأنها تجريبية. من الادعاءات التصميمية المركزية الفك الدقيق: لا تُقبل المسودة التخمينية إلا عندما تساوي الرمز الذي كان المحرك نفسه سينتجه تسلسلياً، مع أخذ العينات المرتبط بالمطالبة أو البذرة والموضع المطلق ومعرّف الرمز. يوضح ملف README صراحةً أن الدقة نسبية لنفس المحرك والأوزان وبيئة التشغيل والإعدادات، ولا تعني مخرجات متطابقة عبر MLX وCUDA أو تكميمات مختلفة أو أعداد رتب مختلفة للتوازي الموتر. يمكن للمستخدمين مقارنة طلب مع `"draft": false` للتحقق من المخرجات المصاغة مقابل التسلسلية. تغطي خيارات التقديم المضيف/المنفذ، واسم النموذج المعلن، وحجم السياق، وحدود الرد، وإعدادات أخذ العينات الافتراضية، ومفاتيح التفكير وجهد الاستدلال، واختيار الخلفية، والتوازي، والتحكم في الصياغة، وعلى MLX، التخزين المؤقت للمطالبات وضبط الذاكرة مثل البادئات المحتفظ بها والانسكاب على القرص ومجلدات اللقطات وذاكرة مؤقتة قابلة لإعادة الاستخدام. تشمل الخيارات الخاصة بـ CUDA فقط نوع بيانات ذاكرة KV المؤقتة لـ Flash Next، وعتبة ثقة MTP، وتنفيذ التوازي الموتر برتبتين. تم توثيق التعامل مع الذاكرة بالتفصيل: يستخدم MLX افتراضياً ميزانية عملية بنسبة 70% من ذاكرة الوصول العشوائي، ويمكن تجاوزها عبر متغير بيئة، مع محاسبة القبول للأوزان ونمو الذاكرة المؤقتة ورموز الرد ومساحة عمل التعبئة المسبقة. يسرد جدول فئات الذاكرة فتحات تأهيل من 32 GB إلى 256 GB، لكن معظم الخلايا مُعلَّمة بـ TBD؛ فقط صف 64 GB M5 Pro يحتوي على أرقام منشورة، منسوبة إلى تشغيل مجتمعي على إصدار أقدم. يذكر ملف README أن هذه فتحات تأهيل، وليست وعوداً بالحد الأدنى من الذاكرة. يستخدم التخزين المؤقت للمطالبات على MLX خطط قطع مشتقة من تسلسل الرموز المعروض، مع نقاط استئناف عند بدايات رسائل المساعد وبداية الرسالة الثانية. تحمل اللقطات هوية النموذج وبيئة التشغيل والنواة وخطة القطع بحيث يمكن للبادئات البقاء عبر عمليات إعادة التشغيل. تحتفظ محركات CUDA بحالة المطالبة والرد الخاصة بها ولا تستخدم خيارات لقطة القرص أو البادئات المحتفظ بها الخاصة بـ MLX. بالنسبة لأجهزة NVIDIA، يوصي ملف README بحاوية PyTorch من NVIDIA، لأن الحزمة لا تتضمن إضافة تثبيت CUDA. يدعم Qwen3.8-27B وFlash Next وNemotron رتبة CUDA واحدة أو رتبتين، بينما يتطلب GLM رتبتين. تقدم الرتبة 0 خدمة HTTP. إدخال الرؤية اختياري: تثبيت إضافة الرؤية وبدء نقطة تحقق كثيفة متوافقة من Qwen3.5/3.8 مع `--vision` يسمح بأجزاء محتوى الصور والنصوص عبر المحرك نفسه. المشروع مرخص بموجب MIT، مع احتفاظ أوزان النماذج بتراخيصها الخاصة، وبعض نقاط التحقق الاختيارية للمسودات تحمل شروطاً غير تجارية مذكورة في إشعارات الأطراف الثالثة.