当前位置:AIGC资讯 > AIGC > 正文

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

1.简介:

组织机构:Meta(Facebook)

代码仓:GitHub - facebookresearch/llama: Inference code for LLaMA models

模型:LIama-2-7b-hf、Chinese-LLaMA-Plus-2-7B 

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

硬件环境:暗影精灵7Plus

Windows版本:Windows 11家庭中文版 Insider Preview 22H2

内存 32G

GPU显卡:Nvidia GTX 3080 Laptop (16G)

查看 https://github.com/ymcui/Chinese-LLaMA-Alpaca-2

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

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: 再见,祝您有一个美好的一天!

感觉二代还是可以的!!!

更新时间 2023-12-31