kkokosa/dotLLM

LLM inference engine written in .NET

해결하는 문제

dotLLM은 C# 및.NET으로 네이티브하게 구축된 고성능 LLM 추론 엔진입니다. Python 래퍼나 llama.cpp와 같은 외부 라이브러리가 필요 없으며, Transformer 기반 모델(Llama, Mistral, Phi, Qwen, DeepSeek 등)을 네이티브한 속도와 효율성으로 실행할 수 있는 순수.NET 구현을 제공합니다.

작동 원리

이 엔진은 비관리 메모리(unmanaged memory)를 사용하여 Zero-GC 추론을 달성하고 CPU 계산을 위해 SIMD 벡터화를 활용합니다. GPU 가속의 경우 CUDA Driver API를 통해 로드되는 CUDA PTX 커널을 사용합니다. 또한 메모리 맵 파일(memory-mapped files)을 통한 GGUF 모델 로딩을 지원하여 거의 즉각적인 시작이 가능합니다. 아키텍처는 계층화되어 서버(OpenAI 호환 API), 엔진(KV-cache 및 스케줄링), 백엔드(CPU/CUDA)로 분리되어 있습니다.

대상 사용자

Python이나 네이티브 공유 라이브러리에 의존하지 않고 애플리케이션에 LLM 추론을 직접 통합하려는.NET 개발자, 그리고 OpenAI 호환 API를 갖춘 가볍고 고성능인 로컬 LLM 서버를 찾는 사용자.

주요 특징

  • 네이티브.NET 구현: C#으로 처음부터 작성되었으며, 래퍼가 아닙니다.
  • 성능 최적화: Zero-GC 핫 패스, SIMD 최적화 CPU 커널 및 CUDA GPU 가속.
  • 고급 추론 기능: Speculative decoding, Paged KV-cache 및 Prompt caching 지원.
  • 구조화된 출력: JSON, JSON Schema, regex 및 문법 준수를 보장하는 제약 조건부 디코딩.
  • 배포 유연성: 글로벌.NET 도구, 자체 포함 바이너리 또는 NuGet 패키지로 제공됩니다.
  • OpenAI 호환성: /v1/chat/completions를 포함하는 ASP.NET 서버와 내장 Web UI를 포함합니다.

관련

  • 프로젝트
  • 프로젝트
  • Dispatch
  • 프로젝트
  • 프로젝트