User-Profile-Image
hankin
  • 5
  • 关于
  • 分类
    • 路由器
    • 电脑相关
    • 游戏相关
    • 未分类
    • 服务器相关
    • 数据库
  • 页面
    • 关于
  • 友链
    • 华夏网盟
Help?

Please contact us on our email for need any support

Support
  • 关于
    首页   ›   服务器相关   ›   正文
服务器相关

linux下使用llama.cpp推理与server api

2025-03-22 13:35:31
9  0 0

系统:debian12.9

一、下载项目

git clone https://github.com/ggml-org/llama.cpp
cd llama.cpp

编译该项目需cmake,未安装请apt install cmake

仅使用CPU推理编译方式。

cmake -B build
cmake --build build --config Release

使用GPU推理编译方式,先安装好nvdia驱动与cuda

cmake -B build -DGGML_CUDA=ON
cmake --build build --config Release

使用BLAS+GPU+优化编译方式(推荐)

cmake -B build -DGGML_BLAS=ON -DGGML_BLAS_VENDOR=OpenBLAS -DGGML_CUDA=ON -DGGML_CUDA_FORCE_CUBLAS=true -DGGML_CUDA_FA_ALL_QUANTS=true -DGGML_CUDA_PEER_MAX_BATCH_SIZE=128 -DGGML_CUDA_ENABLE_UNIFIED_MEMORY=1

cmake --build build --config Release

编译的文件在根目录/build/bin/目录下。

这两个方法为git上当前展示的编译方式。
https://github.com/ggml-org/llama.cpp/blob/master/docs/build.md 查看最新。

编译命令参考:https://github.com/ggml-org/llama.cpp/blob/master/docs/build.md

二、下载模型

如果你在huggingfaces上下载是gguf,且非单个文件,建议使用 llama-gguf-split 工具合并文件为单个gguf方便加载

在 llama.cpp 编译后目录bin下,运行以下命令(可以修改文件路径,遵循 ./llama-gguf-split --merge [分块1的路径] [目标文件名] 即可):

./llama-gguf-split –merge 源.gguf 输出后的.gguf

如果你下载的模型无gguf文件,可以将模型转换为gguf文件。

同样在编译后的bin目录下 ./llama-gguf 源模型目录 –outfile 输出gguf目录


三、 运行server搭建api

llama.cpp 的 server 服务是基于 httplib 搭建的一个简单的HTTP API服务和与llama.cpp交互的简单web前端。

server命令参数:

–threads N, -t N: 设置生成时要使用的线程数.
-tb N, –threads-batch N: 设置批处理和提示处理期间使用的线程数。如果未指定,则线程数将设置为用于生成的线程数
-m FNAME, –model FNAME: 指定 LLaMA 模型文件的路径(例如,models/7B/ggml-model.gguf).
-a ALIAS, –alias ALIAS: 设置模型的别名。别名将在 API 响应中返回.
-c N, –ctx-size N: 设置提示上下文的大小。默认值为 512,但 LLaMA 模型是在 2048 的上下文中构建的,这将为更长的输入/推理提供更好的结果。其他模型的大小可能有所不同,例如,百川模型是在上下文为 4096 的情况下构建的.
-ngl N, –n-gpu-layers N: 当使用适当的支持(目前为 CLBlast 或 cuBLAS)进行编译时,此选项允许将某些层卸载到 GPU 进行计算。通常会导致性能提高.
-mg i, –main-gpu i: 使用多个 GPU 时,此选项控制哪个 GPU 用于小张量,对于这些张量,在所有 GPU 之间拆分计算的开销是不值得的。有问题的 GPU 将使用稍多的 VRAM 来存储暂存缓冲区以获得临时结果。默认情况下,使用 GPU 0。需要 cuBLAS.
-ts SPLIT, –tensor-split SPLIT: 使用多个 GPU 时,此选项控制应在所有 GPU 之间拆分多大的张量。SPLIT 是一个以逗号分隔的非负值列表,用于分配每个 GPU 应按顺序获取的数据比例。例如,“3,2”会将 60% 的数据分配给 GPU 0,将 40% 分配给 GPU 1。默认情况下,数据按 VRAM 比例拆分,但这可能不是性能的最佳选择。需要 cuBLAS.
-b N, –batch-size N: 设置用于提示处理的批大小。默认值:512.
–memory-f32: 使用 32 位浮点数而不是 16 位浮点数来表示内存键 + 值。不推荐.
–mlock: 将模型锁定在内存中,防止在内存映射时将其换出.
–no-mmap: 不要对模型进行内存映射。默认情况下,模型映射到内存中,这允许系统根据需要仅加载模型的必要部分.
–numa: 尝试对某些 NUMA 系统有帮助的优化.
–lora FNAME: 将 LoRA(低秩适配)适配器应用于模型(隐含 –no-mmap)。这允许您使预训练模型适应特定任务或领域.
–lora-base FNAME: 可选模型,用作 LoRA 适配器修改的层的基础。此标志与 –lora 标志结合使用,并指定适配的基本模型.
-to N, –timeout N: 服务器读/写超时(以秒为单位)。默认值:600.
–host: 设置要侦听的主机名或 IP 地址. 默认 127.0.0.1.
–port: 将端口设置为侦听。默认值:8080
–path: 从中提供静态文件的路径 (default examples/server/public)
–embedding: 启用嵌入提取,默认值:禁用.
-np N, –parallel N: 设置进程请求的槽数(默认值:1)
-cb, –cont-batching: 启用连续批处理(又名动态批处理)(默认:禁用)
-spf FNAME, –system-prompt-file FNAME :将文件设置为加载“系统提示符(所有插槽的初始提示符)”,这对于聊天应用程序很有用.
–mmproj MMPROJ_FILE: LLaVA 的多模态投影仪文件的路径.

更多参数可查看git: https://github.com/ggml-org/llama.cpp/tree/master/examples/server

运行服务

./llama-server -m /home/Q2_K1.gguf -fa --host 0.0.0.0 --port 7778 -c 32768 -ngl 999 -a DS -np 4 --repeat-penalty 1.0 --temp 0.7 --top-k 40 --top-p 0.9 -t 48

该指令为 以服务器API运行 /home目录下的Q2_K1.gguf模型,监听本地 7778端口,4个并发,每个上下文4096,GPU加载999层,模型名称定义为DS

启动后查看是否有报错信息,如正常,浏览器尝试访问http://ip:7778查看前端,/v1/modesl查看模型,或用其他客户端以openai方式调用。

如需后台常驻,可设置为系统服务模式。

量化参考:https://github.com/ymcui/Chinese-LLaMA-Alpaca/wiki/llama.cpp%E9%87%8F%E5%8C%96%E9%83%A8%E7%BD%B2/db1233caf7873d402a32e05a04ace82042761f35

https://github.com/ymcui/Chinese-LLaMA-Alpaca-2/wiki/llamacpp_zh/46150b3b3c48694693da340aaea9004ac70a09e5

评论 (0)

Click here to cancel reply.

欢迎您 游客  

近期文章

  • 用于网速测试的下载测速文件合集
  • docker构建SB镜像
  • pterodactl docker install
  • OpenWRT流量实时监控插件
  • docker部署dify

近期评论

No comments to show.

归档

  • 1 月 2026
  • 8 月 2025
  • 5 月 2025
  • 4 月 2025
  • 3 月 2025
  • 2 月 2025
  • 12 月 2024
  • 4 月 2024
  • 10 月 2023
  • 8 月 2023
  • 4 月 2023
  • 3 月 2023
  • 2 月 2023
  • 10 月 2021
  • 5 月 2021
  • 3 月 2021
  • 2 月 2021

分类

  • 数据库
  • 服务器相关
  • 未分类
  • 游戏相关
  • 电脑相关
  • 路由器
Copyright © 2026
smarty_hankin 主题. Designed by hankin
主页
页面
  • 关于
博主
hkthomas 管理员
136 文章 0 评论 18294 浏览
测试
测试