郑州网站建设tpywlkj,阿里巴巴国际站官网网页版,html5网站建设基本流程图,自动建设网站系统Llama2通过llama.cpp模型量化 WindowsLinux本地部署
什么是LLaMA 1 and 2
LLaMA#xff0c;它是一组基础语言模型#xff0c;参数范围从7B到65B。在数万亿的tokens上训练的模型#xff0c;并表明可以专门使用公开可用的数据集来训练最先进的模型#xff0c;而无需求…Llama2通过llama.cpp模型量化 WindowsLinux本地部署
什么是LLaMA 1 and 2
LLaMA它是一组基础语言模型参数范围从7B到65B。在数万亿的tokens上训练的模型并表明可以专门使用公开可用的数据集来训练最先进的模型而无需求助于专有和不可访问的数据集。特别是LLaMA-13B在大多数基准测试中都优于GPT-3175B并且LLaMA65B与最好的型号Chinchilla-70B和PaLM-540B具有竞争力。
Meta 出品的 Llama 续作 Llama2一系列模型7b、13b、70b均开源可商用。Llama2 在各个榜单上精度全面超过 Llama1同时也超过此前所有开源模型。
但是对于本机部署大模型LLaMA要求相对于还是偏高因此本次使用开源方案llama.cpp进行模型量化在Windows平台进行CPU量化版本测试Linux平台进行GPU量化版本测试。
注以下所有下载步骤均需要科学上网否则会很折磨。
实验设备详情供参考
Windows平台
为笔记本平台拯救者Y9000P
CPU: 13th Intel i9-13900HX × \times × 1GPU: NVIDIA GeForce RTX4060 (8GB) × \times × 1内存: 32GB
运行情况CPU流畅运行llama2-13B-chat 8Bit量化版本卡顿运行16Bit量化版本。GPU版本加速超级快相当于文心一言或者Chatgpt的生成速度。
运行情况
Linux平台
实验室服务器
COU: 9th Intel® Core™ i9-9940X CPU 3.30GHz × \times × 14GPU: NVIDIA GeForce RTX2080Ti (11GB) × \times × 4内存: 64GB
运行情况13B和7B都运行十分流程但70B的不知道为啥突然下载不了了没法测试。
模型部署详细步骤
下载并配置llama库 下载llama git clone https://github.com/facebookresearch/llama.git配置环境 创建虚拟环境防止之前其他环境安装的包导致的冲突 conda create -n llama python3.10进入虚拟环境 conda activate llama进入工程目录 cd llama安装环境依赖 pip install -e .申请模型下载链接 进入该链接Mete website申请下载模型内容如实填写为了尽快通过可以填写美国机构和学校应该会快一些当时没敢试国内的怕被拒被OpenAI搞怕了 之后会来如下邮件复制马赛克部分的网址 下载模型 Windows平台 sh download.shLinux平台 bash download.sh之后跟着流程将之前复制的链接粘贴进入即可然后选择需要下载的模型关于模型的区别可以自行Bingchat版本的这里更加推荐参数量方面7B的一般大部分设备都可以跑我使用13B版本的也可以正常运行根据个人所需进行选择。 注Windows平台在下载的时候可能会面临wget: command not found错误跟下述链接进行即可 关于在Windows10环境下运行.sh文件报错 wget: command not found的解决办法
下载并配置llama.cpp库 下载llama.cpp git clone https://github.com/ggerganov/llama.cpp.gitcd llama.cpp编译 Build Linux平台 直接进入工程目录make即可 make我在autodl服务器和实验室服务器实测都没有问题 Windows平台 Windows平台需要安装cmake和gcc这个我本机此前有安装好如果有没有安装的请自行百度安装 编译 mkdir buildcd buildcmake ..cmake --build . --config ReleaseCUDA加速版编译添加一部分指令即可 Linux平台 make LLAMA_CUBLAS1Windows平台 mkdir build
cd build
cmake .. -DLLAMA_CUBLASON
cmake --build . --config Release模型量化 准备数据 将llama中下载好的数据 (llama-2-7B-chat) 拷贝到llama.cpp中的./models中同时将llama主目录中的tokenizer_checklist.chk和tokenizer.model也复制到./models中。 参考以下 G:.
│ .editorconfig
│ ggml-vocab-aquila.gguf
│ ggml-vocab-baichuan.gguf
│ ggml-vocab-falcon.gguf
│ ggml-vocab-gpt-neox.gguf
│ ggml-vocab-llama.gguf
│ ggml-vocab-mpt.gguf
│ ggml-vocab-refact.gguf
│ ggml-vocab-starcoder.gguf
│ tokenizer.model
│ tokenizer_checklist.chk
│
└─13Bchecklist.chkconsolidated.00.pthconsolidated.01.pthparams.json进行量化 进入虚拟环境安装依赖 cd llama.cppconda activate llama安装依赖 pip install -r requirements.txt进行16Bit转换 python convert.py models/13B/这一步如果报错。修改./models/(模型存放文件夹)/params.json 将最后vocab_size:中的值改为32000即可 Linux 4 or 8 bit量化 ./quantize ./models/7B/ggml-model-f16.gguf ./models/7B/ggml-model-q4_0.gguf q4_0路径根据自己的路径进行调整如果进行8bit量化将命令中的q4_0改为q8_0: ./quantize ./models/7B/ggml-model-f16.gguf ./models/7B/ggml-model-q8_0.gguf q8_08bit肯定比4bit好但根据设备情况量力而行 Windows 4 or 8 bit量化 .\build\bin\Release\quantize.exe .\models\13B\ggml-model-f16.gguf .\models\13B\7B\ggml-model-q4_0.gguf q4_0更改bit也参考上述
加载并启动模型
CPU版本 Windows平台 .\build\bin\Release\main.exe -m .\models\13B\ggml-model-q4_0.gguf -n 256 -t 18 --repeat_penalty 1.0 --color -i -r User: -f .\prompts\chat-with-bob.txtLinux平台 ./main -m ./models/13B/ggml-model-q8_0.gguf -n 256 -t 18 --repeat_penalty 1.0 --color -i -r User: -f .\prompts\chat-with-bob.txtGPU加速
只需在命令中加上加上-ngl 1
其中可以对数量进行修改最大为35我在4060上实测20达到最佳 Windows平台 .\build\bin\Release\main.exe -m .\models\13B\ggml-model-q4_0.gguf -n 256 -t 18 --repeat_penalty 1.0 --color -i -r User: -f .\prompts\chat-with-bob.txt -ngl 20Linux平台 ./main -m ./models/13B/ggml-model-q8_0.gguf -n 256 -t 18 --repeat_penalty 1.0 --color -i -r User: -f ./prompts/chat-with-bob.txt -ngl 20在提示符 之后输入你的promptcmd/ctrlc中断输出多行信息以\作为行尾。如需查看帮助和参数说明请执行./main -h命令。下面介绍一些常用的参数
-c 控制上下文的长度值越大越能参考更长的对话历史默认512
-ins 启动类ChatGPT对话交流的instruction运行模式
-f 指定prompt模板alpaca模型请加载prompts/alpaca.txt
-n 控制回复生成的最大长度默认128
-b 控制batch size默认8可适当增加
-t 控制线程数量默认4可适当增加
--repeat_penalty 控制生成回复中对重复文本的惩罚力度
--temp 温度系数值越低回复的随机性越小反之越大
--top_p, top_k 控制解码采样的相关参数具体信息参考https://github.com/ggerganov/llama.cpp/tree/master/examples/main