文章目录
- ChatGLM-Med
- 推理过程
- 微调过程
- HuaTuo
- 配置环境
- 模型下载
- 推理过程
- 微调过程
如何基于领域知识对类ChatGPT模型进行微调,以提升类ChatGPT模型在领域的问答效果?
有下面两个模型,一起来看看微调后的效果如何。
ChatGLM-Med: 基于中文医学知识的ChatGLM模型微调
HuaTuo:基于中文医学知识的LLaMA微调模型
ChatGLM-Med
使用模型:ChatGLM-6B
所用微调数据集:医学知识图谱和GPT3.5 API构建的中文医学指令数据集。
环境准备:因为该项目使用的是ChatGLM-6B模型,因此环境也与ChatGLM-6B模型的环境一致,我这里之前微调过,所以直接使用chatglm-6b的conda环境。可以参考此文。
文件准备:将项目和模型文件下载下来
git clone https://github.com/SCIR-HI/Med-ChatGLM.git
模型文件下载:
该项目已经提供了训练微调好的模型参数,直接通过百度云盘链接或Google云盘链接下载即可。
我这里将模型文件下载到 /data/sim_chatgpt/ChatGLM-Med/ 下。
修改 infer.py 文件中的文件加载路径,如下:
import torch
from transformers import AutoTokenizer, AutoModel
from modeling_chatglm import ChatGLMForConditionalGeneration
tokenizer = AutoTokenizer.from_pretrained(
"/data/sim_chatgpt/ChatGLM-Med/", trust_remote_code=True)
model = ChatGLMForConditionalGeneration.from_pretrained(
"/data/sim_chatgpt/ChatGLM-Med").half().cuda()
while True:
a = input("请输入您的问题:(输入q以退出)")
if a.strip() == 'q':
exit()
response, history = model.chat(tokenizer, "问题:" + a.strip() + '\n答案:', max_length=256, history=[])
print("回答:", response)
运行报错
推理过程
python infer.py
解决办法
修改 modeling_chatglm.py 文件的831行,975行,如下:
MASK, gMASK = 150000, 150001
修改后成功运行
微调过程
待更…
HuaTuo
使用模型:LLaMA-7B
所用微调数据集:医学知识图谱和GPT3.5 API构建的中文医学指令数据集
配置环境
创建新的 conda 环境:huatuo,并安装所需的包
conda create -n huatuo python==3.9
pip install -r requirements.txt
模型下载
LoRA权重可以通过百度网盘或Huggingface下载:
1、对LLaMA进行指令微调的LoRA权重文件
2、对Alpaca进行指令微调的LoRA权重文件。
我这里将文件下载的文件都放在:/data/sim_chatgpt/huatuo 下。
#1.对LLaMA进行指令微调的LoRA权重文件
#基于医学知识库
lora-llama-med/
- adapter_config.json # LoRA权重配置文件
- adapter_model.bin # LoRA权重文件
#基于医学文献
lora-llama-med-literature/
- adapter_config.json # LoRA权重配置文件
- adapter_model.bin # LoRA权重文件
#2. 对Alpaca进行指令微调的LoRA权重文件
#基于医学知识库
lora-alpaca-med-alpaca/
- adapter_config.json # LoRA权重配置文件
- adapter_model.bin # LoRA权重文件
#基于医学知识库和医学文献
lora-alpaca-med-alpaca-alldata/
- adapter_config.json # LoRA权重配置文件
- adapter_model.bin # LoRA权重文件
##
推理过程
以基于医学知识库为例,修改 ./scripts/infer.sh 中的路径如下:
运行基于医学知识库的命令即可
bash ./scripts/infer.sh
其他几个类似:
#基于医学知识库
bash ./scripts/infer.sh
#基于医学文献
#单轮
bash ./scripts/infer-literature-single.sh
#多轮
bash ./scripts/infer-literature-multi.sh
微调过程
待更…