LLamaSharp

SciSharpMIT活跃维护

在 .NET 项目里本地跑 LLaMA、LLaVA 等大模型的 C# 库,封装 llama.cpp,让 C# 开发者不用切 Python 就能做聊天和多模态推理。

A C#/.NET library to run LLM (🦙LLaMA/LLaVA) on your local device efficiently.

v0.30.0发布于 2026-10-17 00:15 UTC3,826star +2 / 7 天516fork同步于 2026-11-10 05:39 UTC

怎么上手

由 README 提炼,执行前请确认
dotnet add package LLamaSharp
dotnet add package LLamaSharp.Backend.Cpu
硬件要求按 README 说明

CPU 可跑(LLamaSharp.Backend.Cpu 支持 Windows/Linux/Mac,Mac 上含 Metal GPU 支持);GPU 支持 CUDA 12/13(Windows/Linux)与 Vulkan(Windows/Linux)。README 未给出具体显存数值,只提示按显存调整 GpuLayerCount。

需要 CUDA
下载:源码 zip·GitHub Releases(安装包)本站不镜像安装包

项目说明

由 README 自动翻译提炼

基于 llama.cpp 的 C#/.NET 库,让你在本地设备上高效跑 LLaMA 等大模型

在 .NET 项目里本地跑 LLaMA、LLaVA 等大模型的 C# 库,封装 llama.cpp,让 C# 开发者不用切 Python 就能做聊天和多模态推理。

核心能力

  • 封装 llama.cpp 原生库,CPU 与 GPU 推理都高效
  • 提供高层 API 与 RAG 支持,便于在应用中部署 LLM
  • 支持流式输出与 ChatSession 管理多轮对话历史
  • 通过 GpuLayerCount 控制卸载到 GPU 的层数
  • 提供 CPU、CUDA12/13、Vulkan 等预编译后端包

容易踩的坑

除主包外必须另装匹配设备的后端包,否则无法加载原生库;模型需为 GGUF 格式,需自行从 Huggingface 下载或转换;CUDA 后端版本要与系统 CUDA 版本匹配,且 GpuLayerCount 需大于 0 才会用 GPU;旧版 GGUF 模型可能与新版 LLamaSharp 不兼容,注意发布时间。

内容由模型根据 README 生成,可能不完整或不准确,以官方文档为准。看原文 README

最近发版

5 个版本v0.30.0
  1. v0.30.0最新正式版2026-10-17 · 2026-10-17 00:15 UTC

    Major Changes

    Bug Fixes

    Other Changes

    New Contributors

    Full Changelog: https://github.com/SciSharp/LLamaSharp/compare/v0.29.0...v0.30.0

  2. v0.29.02026-08-24 · 2026-08-24 13:34 UTC
    查看更新说明

    Major Changes

    Bug Fixes

    Other Changes

    New Contributors

    Full Changelog: https://github.com/SciSharp/LLamaSharp/compare/v0.27.0...v0.29.0

  3. v0.27.02026-04-26 · 2026-04-26 17:00 UTC
    查看更新说明

    Major Changes

    Bug Fixes

    Other Changes

    New Contributors

    Full Changelog: https://github.com/SciSharp/LLamaSharp/compare/v0.26.0...v0.27.0

  4. v0.26.02026-02-15 · 2026-02-15 16:25 UTC
    查看更新说明

    Major Changes

    Bug Fixes

    Other Changes

    New Contributors

    Full Changelog: https://github.com/SciSharp/LLamaSharp/compare/v0.25.0...v0.26.0

  5. v0.25.02025-08-16 · 2025-08-16 13:59 UTC
    查看更新说明

    Major Changes

    Bug Fixes

    Other Changes

    New Contributors

    Full Changelog: https://github.com/SciSharp/LLamaSharp/compare/v0.24.0...v0.25.0

用户点评

登录用户的真实使用记录,可按版本和硬件筛选
共 0 条

    还没有人点评。第一个说出真实体验的人最有价值。

    README 原文

    未翻译

    logo

    Discord QQ Group LLamaSharp Badge LLamaSharp Badge LLamaSharp Badge LLamaSharp Badge LLamaSharp Badge

    LLamaSharp is a cross-platform library to run 🦙LLaMA model (and others) on your local device. Based on llama.cpp, inference with LLamaSharp is efficient on both CPU and GPU. With the higher-level APIs and RAG support, it's convenient to deploy LLMs (Large Language Models) in your application with LLamaSharp.

    Please star the repo to show your support for this project!🤗


    📖Documentation

    📌Console Demo

    🔗Integrations & Examples

    There are integrations for the following libraries, making it easier to develop your APP. These integrations are developed in their own repositories.

    • BotSharp: an open source machine learning framework for AI Bot platform builder.
    • Langchain: a framework for developing applications powered by language models.
    • MaIN.NET: simplistic approach to orchestrating agents/chats from different (llm) providers

    The following examples show how to build APPs with LLamaSharp.

    LLamaSharp-Integrations

    🚀Get started

    Installation

    To gain high performance, LLamaSharp interacts with native libraries compiled from c++, these are called backends. We provide backend packages for Windows, Linux and Mac with CPU, CUDA, Metal and Vulkan. You don't need to compile any c++, just install the backend packages.

    If no published backend matches your device, please open an issue to let us know. If compiling c++ code is not difficult for you, you could also follow this guide to compile a backend and run LLamaSharp with it.

    1. Install LLamaSharp package on NuGet:
    PM> Install-Package LLamaSharp
    
    1. Install one or more of these backends, or use a self-compiled backend.

    Model preparation

    There are two popular formats of model file of LLMs, these are PyTorch format (.pth) and Huggingface format (.bin). LLamaSharp uses a GGUF format file, which can be converted from these two formats. To get a GGUF file, there are two options:

    1. Search model name + 'gguf' in Huggingface, you will find lots of model files that have already been converted to GGUF format. Please take note of the publishing time of them because some old ones may only work with older versions of LLamaSharp.

    2. Convert PyTorch or Huggingface format to GGUF format yourself. Please follow the instructions from this part of llama.cpp readme to convert them with python scripts.

    Generally, we recommend downloading models with quantization rather than fp16, because it significantly reduces the required memory size while only slightly impacting the generation quality.

    Example of LLaMA chat session

    Here is a simple example to chat with a bot based on a LLM in LLamaSharp. Please replace the model path with yours.

    using LLama;
    using LLama.Common;
    using LLama.Sampling;
    
    string modelPath = @"<Your Model Path>"; // change it to your own model path.
    
    var parameters = new ModelParams(modelPath)
    {
        ContextSize = 1024, // The longest length of chat as memory.
        GpuLayerCount = 5 // How many layers to offload to GPU. Please adjust it according to your GPU memory.
    };
    using var model = LLamaWeights.LoadFromFile(parameters);
    using var context = model.CreateContext(parameters);
    var executor = new InteractiveExecutor(context);
    
    // Add chat histories as prompt to tell AI how to act.
    var chatHistory = new ChatHistory();
    chatHistory.AddMessage(AuthorRole.System, "Transcript of a dialog, where the User interacts with an Assistant named Bob. Bob is helpful, kind, honest, good at writing, and never fails to answer the User's requests immediately and with precision.");
    chatHistory.AddMessage(AuthorRole.User, "Hello, Bob.");
    chatHistory.AddMessage(AuthorRole.Assistant, "Hello. How may I help you today?");
    
    ChatSession session = new(executor, chatHistory);
    
    InferenceParams inferenceParams = new InferenceParams()
    {
        MaxTokens = 256, // No more than 256 tokens should appear in answer. Remove it if antiprompt is enough for control.
        AntiPrompts = new List<string> { "User:" }, // Stop generation once antiprompts appear.
    
        SamplingPipeline = new DefaultSamplingPipeline(),
    };
    
    Console.ForegroundColor = ConsoleColor.Yellow;
    Console.Write("The chat session has started.\nUser: ");
    Console.ForegroundColor = ConsoleColor.Green;
    string userInput = Console.ReadLine() ?? "";
    
    while (userInput != "exit")
    {
        await foreach ( // Generate the response streamingly.
            var text
            in session.ChatAsync(
                new ChatHistory.Message(AuthorRole.User, userInput),
                inferenceParams))
        {
            Console.ForegroundColor = ConsoleColor.White;
            Console.Write(text);
        }
        Console.ForegroundColor = ConsoleColor.Green;
        userInput = Console.ReadLine() ?? "";
    }
    

    For more examples, please refer to LLamaSharp.Examples.

    💡FAQ

    Why is my GPU not used when I have installed CUDA?
    1. If you are using backend packages, please make sure you have installed the CUDA backend package which matches the CUDA version installed on your system.
    2. Add the following line to the very beginning of your code. The log will show which native library file is loaded. If the CPU library is loaded, please try to compile the native library yourself and open an issue for that. If the CUDA library is loaded, please check if GpuLayerCount > 0 when loading the model weight.
        NativeLibraryConfig.All.WithLogCallback(delegate (LLamaLogLevel level, string message) { Console.Write($"{level}: {message}"); } )
    
    Why is the inference so slow?

    Firstly, due to the large size of LLM models, it requires more time to generate output than other models, especially when you are using models larger than 30B parameters.

    To see if that's a LLamaSharp performance issue, please follow the two tips below.

    1. If you are using CUDA, Metal or Vulkan, please set GpuLayerCount as large as possible.
    2. If it's still slower than you expect it to be, please try to run the same model with same setting in llama.cpp examples. If llama.cpp outperforms LLamaSharp significantly, it's likely a LLamaSharp BUG and please report that to us.
    Why does the program crash before any output is generated?

    Generally, there are two possible cases for this problem:

    1. The native library (backend) you are using is not compatible with the LLamaSharp version. If you compiled the native library yourself, please make sure you have checked-out llama.cpp to the corresponding commit of LLamaSharp, which can be found at the bottom of README.
    2. The model file you are using is not compatible with the backend. If you are using a GGUF file downloaded from huggingface, please check its publishing time.
    Why is my model generating output infinitely?

    Please set anti-prompt or max-length when executing the inference.

    🙌Contributing

    All contributions are welcome! There's a TODO list in LLamaSharp Dev Project and you can pick an interesting one to start. Please read the contributing guide for more information.

    You can also do one of the following to help us make LLamaSharp better:

    • Submit a feature request.
    • Star and share LLamaSharp to let others know about it.
    • Write a blog or demo about LLamaSharp.
    • Help to develop Web API and UI integration.
    • Just open an issue about the problem you've found!

    Join the community

    Join our chat on Discord (please contact Rinne to join the dev channel if you want to be a contributor).

    Join QQ group

    Star history

    Star History Chart

    Contributor wall of fame

    LLamaSharp Contributors

    Map of LLamaSharp and llama.cpp versions

    If you want to compile llama.cpp yourself you must use the exact commit ID listed for each version.

    LLamaSharpVerified Model Resourcesllama.cpp commit id
    v0.2.0This version is not recommended to use.-
    v0.2.1WizardLM, Vicuna (filenames with "old")-
    v0.2.2, v0.2.3WizardLM, Vicuna (filenames without "old")63d2046
    v0.3.0, v0.4.0LLamaSharpSamples v0.3.0, WizardLM7e4ea5b
    v0.4.1-previewOpen llama 3b, Open Buddyaacdbd4
    v0.4.2-previewLlama2 7B (GGML)3323112
    v0.5.1Llama2 7B (GGUF)6b73ef1
    v0.6.0cb33f43
    v0.7.0, v0.8.0Thespis-13B, LLaMA2-7B207b519
    v0.8.1e937066
    v0.9.0, v0.9.1Mixtral-8x7B9fb13f9
    v0.10.0Phi2d71ac90
    v0.11.1, v0.11.2LLaVA-v1.5, Phi23ab8b3a
    v0.12.0LLama3a743d76
    v0.13.01debe72
    v0.14.0Gemma236864569
    v0.15.0LLama3.1345c8c0c
    v0.16.011b84eb4
    v0.17.0c35e586e
    v0.18.0c35e586e
    v0.19.0958367bf
    v0.20.00827b2c1
    v0.21.0DeepSeek R15783575c
    v0.22.0, v0.23.0Gemma3be7c3034
    v0.24.0Qwen3ceda28ef
    v0.25.011dd5a44eb180e1d69fac24d3852b5222d66fb7f
    v0.26.0506bb6e01009058f35558474cf987eeb56361782
    v0.27.0Qwen3.5 & Gemma43f7c29d318e317b63f54c558bc69803963d7d88c
    v0.28.0c0c7e147e7efa6c5858754b47259ba4880f8a906
    v0.29.0815a2a5915f22ce6a760c676389c5dfe8535c08f
    v0.30.0815a2a5915f22ce6a760c676389c5dfe8535c08f (With Cuda 13)

    License

    This project is licensed under the terms of the MIT license.