当前位置: 首页 > article >正文

llama-cpp模型轻量化部署与量化

一、定义

  1. 定义
  2. 配置环境
  3. 遇到的问题,交互模式下模型一直输出,不会停止
  4. 模型量化
  5. Qwen1.5-7B 案例demo

二、实现

  1. 定义
    主要应用与cpu 上的部署框架。由c++完成。
  2. 配置环境
    https://github.com/ggerganov/llama.cpp
    https://github.com/echonoshy/cgft-llm/blob/master/llama-cpp/README.md
    安装:
git clone https://github.com/ggerganov/llama.cpp
cd llama.cpp

编译环境

sudo apt update
sudo apt install cmake
cpu:
cmake -B build_cpu
cmake --build build_cpu --config Release

部署:

cd /root/code/llama.cpp/build_cpu/bin/
#交互模式
./llama-cli -m /home/Llama3-8B-Chinese-Chat-GGUF/Llama3-8B-Chinese-Chat-q8_0-v2_1.gguf \
    -n -1 \
    -t 12 \                    #多线程
    --color \                 #输入有颜色
    -r "User:" \              #-r: 遇到User: 停止,等待输入
    --in-prefix " " \         #输入前缀
    -i \                      #交互模式
    -p \                      #输入prompt
'User: 你好
AI: 你好啊,我是光屿,要聊聊吗?
User: 好啊!
AI: 你想聊聊什么话题呢?
User:'

#接口模式
./llama-server \
    -m /home/Llama3-8B-Chinese-Chat-GGUF/Llama3-8B-Chinese-Chat-q8_0-v2_1.gguf \
    --host "0.0.0.0" \
    --port 8080 \
    -c 2048 \
    -ngl 128 \            
    --api-key "echo in the moon"

在这里插入图片描述
在这里插入图片描述
3. 遇到的问题,交互模式下模型一直输出,不会停止,参数-r 不起作用
原因: 容器内不支持中文,添加上中文输入法,问题解决。

安装语言包
apt update
apt install -y language-pack-zh-hans
设置环境变量
export LANG=zh_CN.UTF-8
启动终端
exec bash
  1. Qwen1.5-7B 案例demo
    1. 将qwen1.5 转为gguf
python convert-hf-to-gguf.py /home/Qwen1.5_7b --outfile /home/Qwen1.5_7b-GGUF/Qwen1.5_7b_v1.gguf

在这里插入图片描述
量化

cd llama.cpp/build_cuda/bin
./llama-quantize --allow-requantize /home/Qwen1.5_7b-GGUF/Qwen1.5_7b_v1.gguf /home/Qwen1.5_7b-GGUF/Qwen1.5_7b-q4_1-v1.gguf Q4_1

在这里插入图片描述
3. 测试

./llama-cli -m /home/Qwen1.5_7b-GGUF/Qwen1.5_7b-q4_1-v1.gguf \
-n -1 \
-ngl 256 \
-t 12 \
--color \
-r "user:" \
--in-prefix " " \
-i  \
-p \
"user:: 你好
AI: 你好啊,我是光屿,要聊聊吗?
user: 好啊!
AI: 你想聊聊什么话题呢?
user:"

在这里插入图片描述


http://www.kler.cn/a/393793.html

相关文章:

  • 软件工程师简历(精选篇)
  • 记录使用documents4j来将word文件转化为pdf文件
  • Could not initialize class sun.awt.X11FontManager
  • 【Webpack实用指南】如何拆分CSS资源(2)
  • ubuntu20.04安装FLIR灰点相机BFS-PGE-16S2C-CS的ROS驱动
  • 类别变量分析——卡方独立性检验卡方拟合优度检验
  • HTTP的了解
  • [智能车摄像头是一种安装在汽车上用于辅助驾驶和提高安全性的重要设备]
  • caozha-CEPCS(新冠肺炎疫情防控系统)
  • odoo-040 odoo17前端的js方法调用后端py方法action报错
  • Java与HTML中的标题、文本和图像
  • 排序算法 - 冒泡
  • Kubernetes实现故障转移和微服务弹性伸缩
  • 「Py」Python基础篇 之 Python都可以做哪些自动化?
  • 本地启动浏览器,并禁用web安全性,解决本地启动时,服务端强制要求https协议导致请求不通的问题
  • RabbitMQ的死信队列
  • UE5 HLSL 学习笔记
  • ISP——你可以从这里起步(二)
  • 基于微信小程序的农场管理系统的设计与实现,LW+源码+讲解
  • 通俗易懂:什么是 Java 类加载?
  • 多叉树笔记
  • Linux 如何使用函数删除非空目录
  • Android11 修改系统语言
  • P10901 [蓝桥杯 2024 省 C] 封闭图形个数
  • scala创建图书信息类,包含三个属性:书名,作者,价格
  • Spring Boot框架:电商系统的快速开发