ToB企服应用市场:ToB评测及商务社交产业平台
标题:
LlamaFactory Lora 归并大模型,GGUF 转换与 Ollama 部署Open_WebUI全流程
[打印本页]
作者:
金歌
时间:
2025-2-14 07:40
标题:
LlamaFactory Lora 归并大模型,GGUF 转换与 Ollama 部署Open_WebUI全流程
模型归并
将 base model 与训练好的 LoRA Adapter 归并成一个新的模型。注意:不要使用量化后的模型或
quantization_bit参数进行归并。
我们可以在llamafactory界面上讲模型进行归并,或者是使用命令行对模型进行归并
1、使用界面对模型进行归并
2、使用命令行对模型进行归并
首先这里你需要新建一个配置文件merge_llama3_lora_sft.yaml(名字可以自界说)
以下是 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/code/LLaMA-Factory/saves/LLaMA3-8B-Chinese
Chat/lora/train_2024-05-25-20-27-47
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: fals
复制代码
实行以下命令来归并模型:
llamafactory-cli export cust/merge_llama3_lora_sft.yaml
复制代码
2. 将hf模型转换为GGUF
2.1 需要用llama.cpp堆栈的convert_hf_to_gguf.py脚原来转换
== 需要注意llama.cpp所需的pytorch版本是2.2.1的,而我们的base环境中的pytorch是2.1.0的,假如实行惊醒llama.cpp的环境安装会和我们原来的pytorch版本有辩论,由于我们使用conda虚拟环境安装llama.cpp ==
1、使用conda创建llamacpp虚拟环境
conda create --name llamacpp
复制代码
2、初始化基础环境
source activate
复制代码
3、进入到llamacpp环境
conda activate llamacpp
复制代码
git clone https://github.com/ggerganov/llama.cpp.git
pip install -r llama.cpp/requirements.txt
复制代码
2.2 实行转换
# 如果不量化,保留模型的效果
python llama.cpp/convert_hf_to_gguf.py ./Meta-Llama-3-8B-Instruct --outtype f16 --verbose --outfile Meta-Llama-3-8B-Instruct-gguf.gguf
# 如果需要量化(加速并有损效果),直接执行下面脚本就可以
python llama.cpp/convert_hf_to_gguf.py ./Meta-Llama-3-8B-Instruct --outtype
q8_0 --verbose --outfile Meta-Llama-3-8B-Instruct-gguf_q8_0.gguf
复制代码
这里--outtype是输出类型,代表含义:
q2_k:特定张量(Tensor)采用较高的精度设置,而其他的则保持基础级别。
q3_k_l、q3_k_m、q3_k_s:这些变体在不同张量上使用不同级别的精度,从而达到性能和效率的平衡。
q4_0:这是最初的量化方案,使用 4 位精度。
q4_1 和 q4_k_m、q4_k_s:这些提供了不同程度的准确性和推理速度,适合需要平衡资源使用的场景。
q5_0、q5_1、q5_k_m、q5_k_s:这些版本在保证更高准确度的同时,会使用更多的资源并且推理速度较
慢。
q6_k 和 q8_0:这些提供了最高的精度,但是因为高资源消耗和慢速度,可能不适合所有用户。
fp16 和 f32: 不量化,保留原始精度。
复制代码
2.3 转换后的模型
3. 使用ollama运行gguf
== ollama对pytorch、cuda版本没有要求这个可以在服务器的基础环境中进行安装==
3.1 安装ollama
curl -fsSL https://ollama.com/install.sh | sh
复制代码
3.2 启动ollama服务
ollama serve
复制代码
3.3 创建ModelFile
这一步是使用ollama将模型再进行一次转换,便于ollama进行管理,有点像docker创建images
复制模型路径,创建名为“ModelFile”的meta文件,内容如下
#GGUF文件路径
FROM /root/autodl-tmp/Llama3-8B/LLM-Research/Meta-Llama-3-8B-Instruct-gguf8.gguf
复制代码
3.4 创建自界说模型
使用ollama create命令创建自界说模型
ollama create llama-3-8B-Instruct --file ./ModeFil
```
## 3.5 运行模型
```powershell
ollama run llama-3-8B-Instruct
复制代码
4. 使用 Open WebUI 部署模型
Open WebUI
Open WebUI 是一个可扩展的、自托管的 AI 界面,可以顺应您的工作流程,同时完全离线操作。
堆栈
文档
4.1 创建虚拟环境
open-webui对python的版本和pytorch、transformers版本都有要求,需要创建虚拟环境
conda create -n open-webui python==3.11
复制代码
4.2 安装全部依靠
conda activate open-webui
pip install -U open-webui torch transformers
复制代码
4.3 运行 ollama
ollama serve
复制代码
ollama运行后会在本地端口暴露一个 openai API 服务,我们背面使用 open-webui 来毗连就可以了
4.4 运行 open-webui
由于 ollama 的运行导致原终端阻塞,因此要另外开一个新终端 。同时要实行以下操作
open-webui要依靠hf的包
conda activate open-webui
export HF_ENDPOINT=https://hf-mirror.com
export ENABLE_OLLAMA_API=True
export OPENAI_API_BASE_URL=http://127.0.0.1:11434/v1
export DEFAULT_MODELS="/root/app/llm/Qwen/Qwen1___5-1___8B-Chat"
open-webui serve
复制代码
4.5 启动浏览器,开始对话
对话窗口如下:
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/)
Powered by Discuz! X3.4