TensorSharp, מנוע הסקה (inference engine) מבוסס .NET טהור עבור מודלי שפה מסוג GGUF, זמין כעת לציבור, ומאפשר למפתחי .NET להריץ הסקת מודלי שפה גדולים (LLM) מבלי להקים שרת Python. הפרויקט טוען לביצועים דומים ל-llama.cpp הנפוץ, תוך עבודה על Windows, macOS ו-Linux ותמיכה ב-back-ends של CPU, CUDA, MLX, Metal ו-Vulkan.

למה .NET native חשוב

רוב סביבות ההרצה (runtimes) של LLM נכתבות ב-C/C++ או מסתמכות על עטיפות (wrappers) של Python החושפות תהליך נפרד. עבור צוותים ששירותיהם כבר רצים על .NET, השכבה הנוספת הזו מוסיפה קונטיינרים, תקשורת בין-תהליכית (inter-process communication) ושטח תקיפה (attack surface) גדול יותר. שמירה על ההסקה בתוך אותה סביבת הרצה מאפשרת למפתחים לפשט את צינורות ה-CI/CD, לצמצם שיהוי (latency) הנובע מקפיצות ברשת, ולהפחית את עלות התחזוקה של סביבת Python.

איך TensorSharp בנוי

המחבר כתב את המנוע מאפס במקום להשתמש מחדש ב-llama.cpp. ה-CPU backend הוא ב-100% C#, כך ש-Windows ו-Linux רצים ללא תלויות native. תמיכה ב-GPU מגיעה מ-APIs גרפיים קיימים: CUDA עבור Nvidia, MLX עבור שבבי Apple, Metal עבור מעבדי גרפיקה של macOS, ו-Vulkan עבור חומרה חוצת-פלטפורמות. טכניקות מודרניות כגון paged key-value (KV) cache, continuous batching ו-speculative decoding עבור מודלים כמו Qwen ו-Gemma נמצאות בליבת המנוע.

תכונות שמפתחים מקבלים "מהקופסה"

  • תאימות למודלי GGUF – אותו פורמט המשמש בשחרורי LLM בקוד פתוח מהעת האחרונה.
  • פעולה חוצת-פלטפורמות (Cross-platform) – רץ על Windows, macOS ו-Linux ללא שינויי קוד.
  • ממשקי HTTP תואמים ל-OpenAI ו-Ollama – תחליף ישיר לספריות לקוח קיימות.
  • טיפול מולטי-מודאלי (Multimodal) – יכול לקלוט תמונות, וידאו, אודיו וקבצי PDF כחלק מה-prompt.
  • קריאה לכלים (Tool calling) ופלט מובנה (structured output) – תומך בדפוסי function-calling הנפוצים בסוכנים (agents) מבוססי צ'אט.

ביצועים מול llama.cpp

מדדי ביצועים (benchmarks) ששותפו על ידי המפתח מראים תוצאות מעורבות:

  • Prefill וזמן להגעה לטוקן הראשון (TTFT) – TensorSharp מנצח לעיתים קרובות את llama.cpp, ומספק שיהוי (latency) נמוך יותר לתגובה הראשונית.
  • קצב פענוח (Decode throughput) – בדרך כלל דומה או מעט איטי יותר מ-llama.cpp.

הנתונים מצביעים על כך שמימוש ה-C# הטהור אינו מקריב מהירות בשלבים הרגישים ביותר לשיהוי, תוך שהוא נשאר תחרותי בקצב פלט גולמי של טוקנים בשנייה.

דגשים שכדאי לקחת בחשבון

  • ביצועים בעולם האמיתי משתנים בהתאם לארכיטקטורת המודל, תצורת החומרה ופריסת הזיכרון; על מפתחים להריץ בדיקות ביצועים משלהם לפני שהם עוברים לסביבת ייצור (production).

מה הלאה

ערוץ הדיון של הפרויקט ב-Telegram מציע מקום למאמצים המוקדמים (early adopters) לשתף תוצאות ולבקש תכונות חדשות.

שורה תחתונה: TensorSharp מעניקה לארגוני .NET דרך להטמיע הסקת LLM ישירות בתוך האפליקציות שלהם, מה שמסיר את הצורך בסטאק Python נפרד ומספק שיהוי (latency) דומה לרף הבסיס של llama.cpp, שהוא הסטנדרט בפועל. צוותי ייצור צריכים לוודא את הביצועים על חומרת היעד שלהם, אך המנוע פותח נתיב ברור לשירותי AI native בתוך האקו-סיסטם של .NET.