llama.cpp编译和运行 API调用

llama.cpp编译和运行 API调用

llama.cpp介绍

llama.cpp是一个开源项目,官方地址:https://github.com/ggerganov/llama.cpp,使用纯 C/C++推理 Meta 的LLaMA模型,专门为在本地CPU上部署量化模型而设计。
它提供了一种简单而高效的方法,将训练好的量化模型转换为可在CPU上运行的低配推理版本,可加快推理速度并减少内存使用。

llama.cpp优势
  • 高性能:llama.cpp针对CPU进行了优化,能够在保证精度的同时提供高效的推理性能。

  • 低资源:由于采用了量化技术,llama.cpp可以显著减少模型所需的存储空间和计算资源,可运行在端侧设备上。

  • 易集成:llama.cpp提供了简洁的API和接口,方便开发者将其集成到自己的项目中。

  • 跨平台支持:llama.cpp可在多种操作系统和CPU架构上运行,具有很好的可移植性。

llama.cpp编译
安装编译环境
sudo apt install cmake g++ git

下载源代码
git clone https://github.com/ggerganov/llama.cpp


cd llama.cpp/
cd build/
编译
cmake ..
make

gcc --version
g++ --version
cmake .. -DCMAKE_CXX_FLAGS="-mavx -mfma"
    
cmake --build build --config Release -march=native -mtune=native
cmake -march=native -mtune=native --build build --config Release
cmake -DLLAMA_NATIVE=OFF
cmake -B build -DGGML_LLAMAFILE=OFF

编译完成后,会生成很多可执行文件,如图
在这里插入图片描述

llama.cpp运行

llama.cpp提供了与OpenAI API兼容的API接口,使用make生成的llama-server来启动API服务

本地启动 HTTP 服务器,使用端口:8080 指定Llama-3.1-8B-Instruct推理模型
.\llama-server.exe -m E:\ai_model\Imstudio-ai\lmstudio-community\Meta-Llama-3.1-8B-Instruct-GGUF\Meta-Llama-3.1-8B-Instruct-Q4_K_M.gguf --port 8080

调用API服务

curl --request POST     --url http://localhost:8080/completion
     --header "Content-Type: application/json"
     --data '{"prompt": "介绍一下llama.cpp"}'
     ```
### 编译 llama.cpp 的教程 为了成功编译 `llama.cpp`,需要按照特定的操作系统环境准备依赖项并执行相应的构建命令。以下是详细的说明: #### 准备工作 首先克隆 `llama.cpp` 仓库到本地环境中: ```bash git clone https://github.com/ggerganov/llama.cpp cd llama.cpp ``` 此操作获取项目源码[^1]。 #### 安装必要的工具链 对于基于 Linux 的系统,可能需要安装 CMake 其他开发工具包。如果系统的默认版本较旧,则可以手动更新至最新稳定版。例如,在 CentOS 或 RHEL 上可以通过以下方式完成安装: ```bash yum install -y gcc-c++ ncurses-devel openssl-devel wget https://cmake.org/files/v3.16/cmake-3.16.3.tar.gz tar xzf cmake-3.16.3.tar.gz cd cmake-3.16.3 ./bootstrap --prefix=/usr/local/cmake-3.16.3 make -j$(nproc) make install export PATH=/usr/local/cmake-3.16.3/bin:$PATH ``` 上述脚本确保了所需的编译器支持以及适当配置后的 CMake 工具可用性[^2]。 #### 构建过程 进入已下载的目录后运行 Makefile 来生成二进制文件: ```bash make ``` 如果有 GPU 加速需求或者希望优化性能参数设置时,还可以通过传递额外选项给 make 命令来定制化构建流程。比如启用 AVX 指令集加速推理速度等高级特性。 另外需要注意的是,当处理大规模模型如 LLaMA70B 并将其部署于多节点集群上时,除了基本的单机编译外还需要考虑分布式计算框架的支持情况。这通常涉及调整分区策略(tensor parallelism & pipeline parallelism),并通过专门设计好的转换脚本来预处理权重数据以便适配目标硬件架构[^3]。 最终得到可执行程序位于当前路径下,默认名称为`main`或其他指定输出名。 ---
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

beyond阿亮

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值