手把手 演示 llama-3-8b-instruct 微调一个 嬛嬛-Chat mvp版本的过程 以及 LLM数据集生成
- LLaMA3_8B_Instruct_Lora_huanhuan.ipynb :微调过程
- generation_dataset :需要LLM生成数据集,查看此脚本
- Getting_to_know_Llama.ipynb :了解 Llama 3:开始构建所需的一切
- 算力互联 - 控制台:4090D-24G
-
先充值:5块,新注册后领取5块抵50卷,然后使用,充值
-
购买机器:
-
回到实例
-
打开实例的 Jupyter
-
双击进入 fssd目录
-
双击 进入终端
-
克隆项目
git clone https://github.com/a-persimmons/persimmons-huanhuan-chat.git cp persimmons-huanhuan-chat/LLaMA3_8B_Instruct_Lora_huanhuan.ipynb .
-
双击打开微调脚本 LLaMA3_8B_Instruct_Lora_huanhuan.ipynb
-
开始炼丹微调,按步骤一步一走
-
⚠️ 注意⚠️
- 在开始微调后面会打印loss,我这里的演示最后的loss只到了1.几(没有炼丹完成,只是为了演示整个过程);
- 一般判断炼丹效果方法:最后的loss接近0,如果等于0就变成了死记硬背了。不过也要看你的业务要求。
- 在你的微调过程中你需要根据loss的情况调整相关参数,这里说一下有哪些参数:
- 首先是
Epoch
参数,通过增加学习次数来增加学习效果,调整再微调看loss,如果loss还是没有下降,那么就可能是lora的参数矩阵不够。 - 接下来调整
lora_rank 64 lora_alpha 128
,增加Lora参数来提高学习率。 - 另外一种也可以直接切换参数量的尺寸的模型。
- 首先是
-
下载模型
单机 这个图标
进入fsas 目录
单机右键 选择下载即可
-
本地部署模型
-
安装ollama,根据你的系统进行下载安装:ollama.com/download,然后打开终端命令行
ollama serve
或图标(mac/win)启动 -
复制刚刚下载的gguf文件名(不要.gguf后缀)
-
在你下载的gguf的同级目录下,创建一个文件Modelfile,然后输入以下内容:
FROM <刚刚复制的文件名>.gguf 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|>""" PARAMETER stop "<|start_header_id|>" PARAMETER stop "<|end_header_id|>" PARAMETER stop "<|eot_id|>" PARAMETER stop "<|reserved_special_token"
-
打开终端,cd 到刚刚下载的gguf目录下,或在此目录下打开终端(支持的话)
-
执行”安装“gguf模型命令:
ollama create <刚刚复制的文件名>:8b -f ./Modelfile
-
加载完成,看见success就是“安装”完成。
-
查看“安装”的模型列表:
ollama list
-
测试模型:
ollama run <复制 ollama list中NAMA列的全名称(包含:后面的)>
-
然后和他像在ChatGPT一样,和他对话,比如“你是谁”
-
结束测试模型:ctrl/control + D
-
-
安装Docker(已安装跳过)
安装完成后,然后注册/登录
-
安装前端界面(使用像ChatGPT的类界面,本地使用模型),这里使用的是open-webui/open-webui: User-friendly WebUI for LLMs (Formerly Ollama WebUI) (github.com)
# 有GPU的话使用这个,比如 有nvidia显卡的游戏本 Win/ubuntu docker run -d -p 3000:8080 --gpus=all -v ollama:/root/.ollama -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:ollama # 只有CPU的话用这个,比如 mac(Intel) docker run -d -p 3000:8080 -v ollama:/root/.ollama -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:ollama
-
等待安装完成,最后访问:
http://localhost:3030
,随便注册下,进入下面界面: -
设置连接本地ollama服务
-
点开右上角设置图标
-
设置中文
-
设置Ollama API 连接:http://host.docker.internal:11434,然后点击旁边的刷新按钮,最后 保存
-
查看是否连接成功,如下是否能看见之前
ollama list
,看到的模型列表
-
- KMnO4-zx/huanhuan-chat: Chat-甄嬛是利用《甄嬛传》剧本中所有关于甄嬛的台词和语句,基于ChatGLM2进行LoRA微调得到的模仿甄嬛语气的聊天语言模型。 (github.com)
- ymcui/Chinese-LLaMA-Alpaca-3: 中文羊驼大模型三期项目 (Chinese Llama-3 LLMs) developed from Meta Llama 3 (github.com)
- datawhalechina/self-llm: 《开源大模型食用指南》基于Linux环境快速部署开源大模型,更适合中国宝宝的部署教程 (github.com)
- Llama3-Tutorial/docs_autodl/lmdeploy.md at main · SmartFlowAI/Llama3-Tutorial (github.com)
- https://ollama.com/