本项目是一个基于Qwen2基座模型,以及基于LLaMA-Factory训练框架,和fastllm推理框架的医疗问答(Medical QA)模型。 该项目的目的,是使用SFT来微调一个使用西医知识来进行疾病诊疗的垂直模型
Qwen2 is based on the Transformer architecture with SwiGLU activation, attention QKV bias, group query attention, etc.
Qwen2-7B-Instruct supports a context length of up to 131,072 tokens.
我们预先加载huggingface上的mradermacher/Med-Qwen2-7B-GGUF的权重到本地
git lfs install
git clone https://huggingface.co/mradermacher/Med-Qwen2-7B-GGUF
一轮LoRA + 一轮DPO,其余步骤根据后续效果再加
微调结束后,我们会使用evaluate_model.py来让llama3.1给GPT4o和和Qwen2生成的答案打分。
- 拉取LLaMA-Factory到本地,并确保LLaMA-Factory目录和Chinese-MedQA-Qwen2目录处于同一层级,例如:
-----你的本地目录
|------Chinese-MedQA-Qwen2
|------LLaMA-Factory
- 安装依赖
cd LLaMA-Factory
pip install -r requirements.txt
pip install -e ".[torch,metrics]"
git clone https://github.com/ztxz16/fastllm.git
cd ./fastllm
pip install -r requirements.txt
-----你的本地目录
|------Chinese-MedQA-Qwen2
|------LLaMA-Factory
|------fastllm
- 安装gcc
# 确认是否已经安装
gcc --version
# 安装
# For Debian based distributions like Ubuntu
sudo apt-get install gcc
# For RPM-based distributions like CentOS
sudo yum install gcc
- 安装cmake
sudo apt install cmake -y
cmake --version
- 编译
bash install.sh -DUSE_CUDA=ON # 编译GPU版本
# bash install.sh -DUSE_CUDA=ON -DCUDA_ARCH=89 # 可以指定CUDA架构,如4090使用89架构, A100使用80架构
- 跑起来
# openai api server
# 需要安装依赖: pip install -r requirements-server.txt
# 这里在8080端口打开了一个模型名为qwen的server
python3 -m ftllm.server -t 16 -p ~/Qwen2-7B-Instruct/ --port 8080 --model_name qwen
# 使用float16精度的模型对话
python3 -m ftllm.chat -t 16 -p ~/Qwen2-7B-Instruct/
# 在线量化为int8模型对话
python3 -m ftllm.chat -t 16 -p ~/Qwen2-7B-Instruct/ --dtype int8
# webui
# 需要安装依赖: pip install streamlit-chat
python3 -m ftllm.webui -t 16 -p ~/Qwen2-7B-Instruct/ --port 8080