项目简介
本项目是一个开源项目,在纯C/C++环境下实现对LLaMA模型进行推理。其主要目标是在MacBook上借助4位量化技术运行该模型,具备无依赖的纯C/C++实现,针对Apple silicon做了优化,支持x86架构的AVX2,采用混合F16 / F32精度,支持4位量化且能在CPU上运行。同时,支持多种操作系统、架构以及多种不同的模型。
项目的主要特性和功能
- 跨平台支持:支持Mac OS、Linux、Windows(通过CMake)和Docker等多种平台。
- 多模型适配:支持LLaMA、Alpaca、GPT4All、Chinese LLaMA / Alpaca、Vigogne (French)等多种模型。
- 高效实现:无依赖的纯C/C++实现,对Apple silicon通过ARM NEON和Accelerate框架进行优化,支持x86架构的AVX2。
- 量化支持:支持4位量化,有效节省内存和提高性能。
- 不同运行模式:提供普通推理模式和交互式模式,交互式模式下可中断生成并输入新文本。
- 质量评估:可使用
perplexity
示例测量模型的困惑度,评估模型质量。
安装使用步骤
前提条件
- 安装C++编译器(如GCC或Clang)和CMake构建工具。
- 若使用Python脚本,需安装Python 3.9或3.10,并安装torch、numpy、sentencepiece等依赖。
安装步骤
- 复制仓库:
bash cd llama.cpp
- 编译项目:
bash make
- 获取模型权重:从官方渠道获取LLaMA模型权重,并将其放置在
./models
目录下。 - 转换模型:使用Python脚本将模型转换为ggml FP16格式:
bash python3 convert-pth-to-ggml.py models/7B/ 1
- 量化模型:将模型量化为4位:
bash ./quantize ./models/7B/ggml-model-f16.bin ./models/7B/ggml-model-q4_0.bin 2
使用步骤
- 普通推理:
bash ./main -m ./models/7B/ggml-model-q4_0.bin -n 128
- 交互式模式:
bash ./main -m ./models/13B/ggml-model-q4_0.bin -n 256 --repeat_penalty 1.0 --color -i -r "User:" -f prompts/chat-with-bob.txt
- Alpaca指令模式:
bash ./examples/alpaca.sh
- GPT4All模型使用:
bash python3 convert-gpt4all-to-ggml.py models/gpt4all-7B/gpt4all-lora-quantized.bin ./models/tokenizer.model python3 migrate-ggml-2023-03-30-pr613.py models/gpt4all-7B/gpt4all-lora-quantized.bin models/gpt4all-7B/gpt4all-lora-quantized-new.bin
然后使用新生成的模型进行推理。
其他使用说明
- Android设备:可使用termux在Android设备上运行,需先获取Android NDK,再使用CMake进行构建。
- Docker:需安装并运行Docker,创建存储模型和中间文件的文件夹,可使用提供的完整或轻量级Docker镜像进行模型下载、转换和推理。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】