TensorSharp ซึ่งเป็นเอนจินการอนุมาน (inference engine) แบบ pure-.NET สำหรับโมเดลภาษา GGUF เปิดให้ใช้งานแบบสาธารณะแล้ว ช่วยให้นักพัฒนา .NET สามารถรันการอนุมานโมเดลภาษาขนาดใหญ่ (LLM) ได้โดยไม่ต้องเปิดเซิร์ฟเวอร์ Python โครงการนี้อ้างว่ามีประสิทธิภาพเทียบเท่ากับ llama.cpp ที่ใช้กันอย่างแพร่หลาย โดยสามารถรันบน Windows, macOS และ Linux พร้อมรองรับ back-ends อย่าง CPU, CUDA, MLX, Metal และ Vulkan
ทำไม native .NET ถึงมีความสำคัญ
Runtime ของ LLM ส่วนใหญ่เขียนด้วย C/C++ หรือต้องพึ่งพา Python wrappers ซึ่งแยกกระบวนการทำงานออกมา สำหรับทีมที่บริการของตนรันบน .NET อยู่แล้ว เลเยอร์ที่เพิ่มขึ้นมานั้นหมายถึงการต้องจัดการกับ container, การสื่อสารระหว่างกระบวนการ (inter-process communication) และการเพิ่มช่องโหว่ในการโจมตี (attack surface) การเก็บการอนุมานไว้ภายใน runtime เดียวกันช่วยให้นักพัฒนาสามารถลดความซับซ้อนของ CI/CD pipelines, ลดความหน่วง (latency) จากการรับส่งข้อมูลผ่านเครือข่าย และลดค่าใช้จ่ายในการดูแลสภาพแวดล้อมของ Python
TensorSharp ถูกสร้างขึ้นอย่างไร
ผู้เขียนเขียนเอนจินนี้ขึ้นมาใหม่ทั้งหมดแทนที่จะนำ llama.cpp มาใช้ซ้ำ โดย CPU backend เขียนด้วย C# แบบ 100% ทำให้รันบน Windows และ Linux ได้โดยไม่ต้องมี native dependencies ส่วนการรองรับ GPU นั้นมาจาก graphics APIs ที่มีอยู่แล้ว ได้แก่ CUDA สำหรับ Nvidia, MLX สำหรับ Apple silicon, Metal สำหรับ GPU บน macOS และ Vulkan สำหรับฮาร์ดแวร์แบบ cross-platform นอกจากนี้ยังมีเทคนิคสมัยใหม่ เช่น paged key-value (KV) cache, continuous batching และ speculative decoding สำหรับโมเดลอย่าง Qwen และ Gemma บรรจุอยู่ในแกนหลักของระบบ
ฟีเจอร์ที่นักพัฒนาจะได้รับทันที
- ความเข้ากันได้กับโมเดล GGUF – รูปแบบเดียวกับที่ใช้ในโมเดล LLM แบบ open-source รุ่นล่าสุด
- การทำงานแบบ cross-platform – รันบน Windows, macOS และ Linux ได้โดยไม่ต้องแก้ไขโค้ด
- HTTP APIs ที่เข้ากันได้กับ OpenAI และ Ollama – สามารถนำมาใช้แทนที่ client libraries เดิมได้ทันที
- การจัดการแบบ Multimodal – สามารถรับข้อมูลรูปภาพ, วิดีโอ, เสียง และ PDF เป็นส่วนหนึ่งของ prompt ได้
- การเรียกใช้เครื่องมือ (Tool calling) และการแสดงผลแบบมีโครงสร้าง (structured output) – รองรับรูปแบบ function-calling ที่ใช้กันทั่วไปใน chat-based agents
ประสิทธิภาพเมื่อเทียบกับ llama.cpp
ผลการทดสอบประสิทธิภาพ (Benchmarks) ที่ผู้ดูแลโครงการแบ่งปันแสดงให้เห็นผลลัพธ์ที่หลากหลาย:
- Prefill และ time-to-first-token (TTFT) – TensorSharp มักจะทำได้ดีกว่า llama.cpp โดยให้ความหน่วงที่ต่ำกว่าสำหรับการตอบสนองครั้งแรก
- Decode throughput – โดยปกติจะใกล้เคียงกับหรือช้ากว่า llama.cpp เล็กน้อย
ตัวเลขเหล่านี้บ่งชี้ว่าการเขียนด้วย C# แบบ pure implementation ไม่ได้ทำให้เสียความเร็วในขั้นตอนที่อ่อนไหวต่อความหน่วงมากที่สุด ในขณะที่ยังคงความสามารถในการแข่งขันในด้านจำนวน token ต่อวินาที (token-per-second)
ข้อควรระวังที่ต้องคำนึงถึง
- ประสิทธิภาพในการใช้งานจริงจะแตกต่างกันไปตามสถาปัตยกรรมของโมเดล, การกำหนดค่าฮาร์ดแวร์ และการจัดวางหน่วยความจำ (memory layout) นักพัฒนาควรทำการทดสอบประสิทธิภาพด้วยตนเองก่อนนำไปใช้งานจริง (production)
สิ่งที่น่าติดตามต่อไป
ช่องทางสนทนาของโครงการบน Telegram เป็นพื้นที่สำหรับผู้ใช้งานกลุ่มแรก (early adopters) ในการแบ่งปันผลลัพธ์และร้องขอฟีเจอร์ใหม่ๆ
สรุป: TensorSharp ช่วยให้กลุ่มผู้ใช้งาน .NET มีวิธีฝังการอนุมาน LLM ลงในแอปพลิเคชันของตนได้โดยตรง โดยไม่ต้องใช้ Python stack แยกต่างหาก และให้ความหน่วงที่เทียบเท่ากับมาตรฐานอย่าง llama.cpp ทีมงานที่ดูแลระบบ production ควรตรวจสอบประสิทธิภาพบนฮาร์ดแวร์เป้าหมายของตนเอง แต่เอนจินนี้ได้เปิดเส้นทางที่ชัดเจนสำหรับบริการ AI แบบ native ภายในระบบนิเวศของ .NET
