首页 > 其他分享 >LLaMA-Factory微调llama3之模型的合并,并采用llama.cpp量化成ollama支持的gguf格式模型,生成api使用

LLaMA-Factory微调llama3之模型的合并,并采用llama.cpp量化成ollama支持的gguf格式模型,生成api使用

时间:2024-08-11 14:27:40浏览次数:15  
标签:tmp autodl Chat Chinese 8B 模型 gguf llama root

上期我们已经成功的训练了模型,让llama3中文聊天版知道了自己的名字

这次我们从合并模型开始,然后使用llama.cpp量化成gguf格式,并且调用api

(1) 前期准备

上期链接: 基于LLaMA-Factory微调llama3成为一个角色扮演大模型,保姆级教学零基础,导出GGUF格式前篇-CSDN博客

 首先根据上期内容将llama3成功微调后

(2) 合并模型

首先我们先准备个配置文件

在 " /root/autodl-tmp/LLaMA-Factory/cust/ " 目录下创建merge_llama3_lora_sft.yaml

 

在文件中输入:

 ### Note: DO NOT use quantized model or quantization_bit when merging lora adapters

### model
model_name_or_path: /root/autodl-tmp/models/Llama3-8B-Chinese-Chat/
adapter_name_or_path: /root/autodl-tmp/LLaMA-Factory/saves/LLaMA3-8B-Chinese-Chat/lora/train_2024-08-05-11-44-21
template: llama3
finetuning_type: lora

### export
export_dir: /root/autodl-tmp/models/LLaMA3-8B-Chinese-Chat-merged
export_size: 4
export_device: cuda
export_legacy_format:   

其中: 

model_name_or_path是你本来的模型地址,就是你在huggingface上面下载的那个

adapter_name_or_path是你微调后生成的模型地址

export_dir是你导出的地址,建议新建一个文件夹叫LLaMA3-8B-Chinese-Chat-merged来保存

 准备好后在终端输入

llamafactory-cli export cust/merge_llama3_lora_sft.yaml

请确认在 “ /autodl-tmp/LLaMA-Factory ”的目录下运行

 合并后可以在/root/autodl-tmp/models/LLaMA3-8B-Chinese-Chat-merged中查看模型

 

(3) 下载llama.cpp

 首先终端执行命令移动到autodl-tmp/目录下

cd /root/autodl-tmp/

然后执行命令,下载llama.cpp

git clone https://github.com/ggerganov/llama.cpp

进入文件

cd /root/autodl-tmp/llama.cpp

 

(4) 量化

在autodl-tmp/models/下新建一个文件夹,命名为:

Llama3-8B-Chinese-Chat-GGUF

将 safetensors 格式转成 gguf

python convert_hf_to_gguf.py /root/autodl-tmp/models/Llama3-8B-Chinese-Chat-merged --outfile /root/autodl-tmp/models/Llama3-8B-Chinese-Chat-GGUF/Llama3-8B-Chinese-Chat-q8_0-v1.gguf --outtype q8_0

可修改的: 

1.第一个地址就是你放合并后模型的地址 

2.第二个地址--outfile后的就是导出的地址精确到文件名

查看文件:

可以在导出的地址中找到量化好的文件,比如我的地址就是:

/root/autodl-tmp/models/Llama3-8B-Chinese-Chat-GGUF/Llama3-8B-Chinese-Chat-q8_0-v1.gguf

(这一步请跳过,非必须) 将 gguf 格式进行(再)量化

cd ~/code/llama.cpp/build_cuda/bin
./quantize --allow-requantize /root/autodl-tmp/models/Llama3-8B-Chinese-Chat-GGUF/Llama3-8B-Chinese-Chat-q8_0-v2_1.gguf /root/autodl-tmp/models/Llama3-8B-Chinese-Chat-GGUF/Llama3-8B-Chinese-Chat-q4_1-v1.gguf Q4_1

(5) 下载模型

 在导出地址中找到文件后,右键,点击下载就自动在浏览器下载了

 

如果没反应换成Chrome浏览器

 

(6) 使用ollama生成模型API

6.1 ollama下载及其环境配置

环境配置及其下载请看我前几期博客:Llama 3增强中文理解能力,并生成内网穿透API后Spring Boot请求-CSDN博客

6.2新建模型

 将下载好gguf文件的放到ollama的模型位置

然后右键新建一个txt文档

改名为Modelfile并且把后面的".txt"给删掉,变成我这样

用记事本打开它,输入

FROM [你自己的模型地址]
TEMPLATE """{{ if .System }}<|start_header_id|>system<|end_header_id|>

{{ .System }}<|eot_id|>{{ end }}{{ if .Prompt }}<|start_header_id|>user<|end_header_id|>

{{ .Prompt }}<|eot_id|>{{ end }}<|start_header_id|>assistant<|end_header_id|>

{{ .Response }}<|eot_id|>"""
SYSTEM """You are a helpful assistant. 你是一个乐于助人的助手。"""
PARAMETER temperature 0.2
PARAMETER num_keep 24
PARAMETER stop <|start_header_id|>
PARAMETER stop <|end_header_id|>
PARAMETER stop <|eot_id|>

 

然后在你的文件位置的地址栏中输入cmd 

 创建一个模型(名字自定义) 

ollama create llama3-zh-inst -f Modelfile

 

然后执行命令 

ollama serve

如果出现这个错误,说明开机自动启动了

任务管理器关闭下就行 

 

 然后打开你的postman,输入我的这些测试下

http://localhost:11434/api/generate 

{

  "model": "llama3-zh-inst",

  "prompt": "你叫什么名字?",

  "stream": false

}

如果出现我的这个就说明成功了 

附赠

查看ollama已创模型:

ollama list

 

删除模型:

ollama rm 模型名字

 

免责声名:一切均严格参照ollama开源策略,没有任何侵权意图,本文章全由自己编写,如出现任何问题请联系我,我将删除。

标签:tmp,autodl,Chat,Chinese,8B,模型,gguf,llama,root
From: https://blog.csdn.net/m0_69684643/article/details/140974505

相关文章