大模型部署手记(11)LLaMa2+Chinese-LLaMA-Plus-2-7B+Windows+llama.cpp+中文对话

举报
张辉 发表于 2023/10/07 22:14:08 2023/10/07
【摘要】 大模型部署手记(11)LLaMa2+Chinese-LLaMA-Plus-2-7B+Windows+llama.cpp+中文对话

1.简介:

组织机构:Meta(Facebook)

代码仓:https://github.com/facebookresearch/llama

模型:LIama-2-7b-hfChinese-LLaMA-Plus-2-7B 

下载:使用huggingface.co和百度网盘下载

硬件环境:暗影精灵7Plus
Windows版本:Windows 11家庭中文版 Insider Preview 22H2
内存 32G
GPU显卡:Nvidia GTX 3080 Laptop (16G)


新的模型出来了,可以试一试。

2.代码和模型下载:

下载Chinese-LLaMA-Alpaca-2代码仓:
d:\
git clone https://github.com/ymcui/Chinese-LLaMA-Alpaca-2


获取原版LIama-2-7b-hf模型:https://huggingface.co/meta-llama/Llama-2-7b-hf

下载所有文件,备用。

将文件下载到 d:\llama.cpp\models2的目录:
根据

直接下载完整版模型


将下载好的文件复制到 d:\llama.cpp\models2\chinese-alpaca-2-7b-hf目录下:


3.安装依赖

暂无。

4.部署验证1(直接使用chinese-alpaca-2-7b完整版模型,转FP16,INT4量化)

生成FP16模型并进行4-bit量化:
cd llama.cpp
python convert.py models2/chinese-alpaca-2-7b-hf/



./quantize ./models2/chinese-alpaca-2-7b-hf/ggml-model-f16.gguf ./models2/chinese-alpaca-2-7b-hf/ggml-model-q4_0.gguf q4_0



参考 chat.sh
#!/bin/bash

# temporary script to chat with Chinese Alpaca-2 model
# usage: ./chat.sh alpaca2-ggml-model-path your-first-instruction

SYSTEM='You are a helpful assistant. 你是一个乐于助人的助手。'
FIRST_INSTRUCTION=$2

./main -m $1 \
--color -i -c 4096 -t 8 --temp 0.5 --top_k 40 --top_p 0.9 --repeat_penalty 1.1 \
--in-prefix-bos --in-prefix ' [INST] ' --in-suffix ' [/INST]' -p \
"[INST] <<SYS>>
$SYSTEM
<</SYS>>

$FIRST_INSTRUCTION [/INST]"
#./chat.sh models2/7B/ggml-model-q4_0.gguf '请列举5条文明乘车的建议'
编辑好推理代码并执行:
./main -m ./models2/chinese-alpaca-2-7b-hf/ggml-model-q4_0.gguf -n -1 --color -r "User:" --in-prefix " " -i -c 4096 -t 8 --temp 0.5 --top_k 40 --top_p 0.9 --repeat_penalty 1.1 -e -p "User: Hi\nAI: Hello. I am an AI chatbot. Would you like to talk?\nUser: Sure!\nAI: What would you like to talk about?\nUser:"

#./main -m ./models_chat/path_to_original_llama_root_dir/ggml-model-q4_0.gguf -n -1 --color -r "User:" --in-prefix " " -i -e -p "User: Hi\nAI: Hello. I am an AI chatbot. Would you like to talk?\nUser: Sure!\nAI: What would you like to talk about?\nUser:"

您好!
你是谁?
你能做什么?
写一篇国庆节去南京中山陵游玩的游记。
你写完了吗?
ChatGPT和国内的AIGC产品相比有什么优缺点?
你觉得怎样才能做到独立思考?
再见!

早知道2代目这么优秀,我为啥还花那么多功夫研究一代呢?

5.部署验证2(使用Llama-2-7b-hf 原始模型和chinese-alpaca-2-lora-7b Lora模型,转换,合并,转FP16,INT4量化)

当然,研究技术不能只是拿来主义,还是要试图做一次成功的模型合并的。

下载两个LoRa模型:
Chinese-LLaMA-2-LoRA-7B
https://pan.baidu.com/s/1bmgqdyRh9E3a2uqOGyNqiQ?pwd=7kvq
Chinese-Alpaca-2-LoRA-7B
https://pan.baidu.com/s/1g42_X7Z0QWDyrrDqv2jifQ?pwd=bq7n

解压到 models2 目录:


将 D:\Chinese-LLaMA-Alpaca-2\scripts\merge_llama2_with_chinese_lora_low_mem.py文件复制到 d:\llama.cpp目录下:

python merge_llama2_with_chinese_lora_low_mem.py --base_model models2/Llama-2-7b-hf --lora_model models2/chinese-llama-2-lora-7b,models2/chinese-alpaca-2-lora-7b --output_type huggingface --output_dir models2/path_to_output_dir

看来使用huggingface 模式不行。
换成 pth方式试试:
python merge_llama2_with_chinese_lora_low_mem.py --base_model models2/Llama-2-7b-hf --lora_model models2/chinese-llama-2-lora-7b,models2/chinese-alpaca-2-lora-7b --output_type pth --output_dir models2/path_to_output_dir

是不是跟一代不一样,不能用两个Lora了?
去掉一个试试:
python merge_llama2_with_chinese_lora_low_mem.py --base_model models2/Llama-2-7b-hf --lora_model models2/chinese-alpaca-2-lora-7b --output_type pth --output_dir models2/path_to_output_dir

成功了!

转成FP16:
python convert.py models2/path_to_output_dir/

结果如下:

量化:
./quantize ./models2/path_to_output_dir/ggml-model-f16.gguf ./models2/path_to_output_dir/ggml-model-q4_0.gguf q4_0

结果如下:

启动推理:
./main -m ./models2/path_to_output_dir/ggml-model-q4_0.gguf -n -1 --color -r "User:" --in-prefix " " -i -c 4096 -t 8 --temp 0.5 --top_k 40 --top_p 0.9 --repeat_penalty 1.1 -e -p "User: Hi\nAI: Hello. I am an AI chatbot. Would you like to talk?\nUser: Sure!\nAI: What would you like to talk about?\nUser:"


讲一个笑话给我听吧!
我打算从南京去新疆旅游,给我设计一个旅行路线
晚上睡不着觉怎么办?
树上10只鸟,打死1只,还剩几只?
你算不出来吗?
如何获得女孩的芳心?

== Running in interactive mode. ==
 - Press Ctrl+C to interject at any time.
 - Press Return to return control to LLaMa.
 - To return control without starting a new line, end your input with '/'.
 - If you want to submit another line, end your input with '\'.

 User: Hi
AI: Hello. I am an AI chatbot. Would you like to talk?
User: Sure!
AI: What would you like to talk about?
User: 讲一个笑话给我听吧!
AI: 好的,这里有一个:为什么猪不会上网?因为它们有Wi-Fi。
 我打算从南京去新疆旅游,给我设计一个旅行路线
AI: 当然可以!您可以从南京出发前往乌鲁木齐,然后继续向南到喀什、和田等地游览景点,最后返回南京。这样您的旅程将覆盖了中国的西北地区。 User: 晚上睡不着觉怎么办?
AI: 如果您无法入睡,您可以试试深呼吸或放松技巧来缓解压力和焦虑感,或者尝试听一些轻松的音乐以帮助入眠。如果您的失眠问题持续存在,请咨询医生寻求进一步的建议和治疗。
 树上10只鸟,打死1只,还剩几只?
AI: 您想让我猜吗?还是告诉我答案呢? User: 你算不出来吗?
AI: 我很抱歉,但我无法回答这个问题,因为没有足够的信息来计算剩余的鸟数量。如果您能提供更多的上下文或细节,我可以帮助您更好地理解问题并给出更准确的答案。
 5+10=?
AI: 这个数学题很简单:将两个数相加即可得到答案。所以,5 + 10 = 15。 User: 如何获得女孩的芳心?
AI: 这是一个非常主观的问题,因为每个人对"获得女孩的芳心"的理解可能不同。但是,以下是一些建议可以帮助您与女孩建立更亲密的关系: User: 你的建议呢?
AI: 我认为最重要的是要尊重和关心对方,倾听她的想法和感受,并给予她支持和鼓励。此外,保持积极乐观的态度也很重要,因为这会让人感到更加愉快和自信。 User: 还有没有别的建议?
AI: 当然!您还可以尝试做一些浪漫的事情来让她感受到您的爱意,例如准备一份特别的晚餐、送给她一束花或带她去一个有趣的地方旅游等等。最重要的是要记得始终保持真诚和诚实 ,这样会让女孩更加信任和依赖您。 User: 再见!
AI: 再见,祝您有一个美好的一天!
感觉二代还是可以的!!!
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。