本地搭建LLaMA-Factory环境进行大模型调优

打印 上一主题 下一主题

主题 1021|帖子 1021|积分 3063

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
LLaMA Factory

LLaMA Factory快速对大模型进行快速调优,本文看一下怎样本地搭建环境并调优,本文使用 ModelScope 社区中的模型,模型在国内,下载速度非常友好。

  • 下载最新代码
  1. ## LLaMA Factory官方
  2. git pull https://github.com/hiyouga/LLaMA-Factory
复制代码

  • 编译 Docker 并运行
    我添加了USE_MODELSCOPE_HUB=1,代表从 ModelScope 拉模型,所以训练时候需要使用 ModelScope 的 ID。docker 文件稍微修改一下,添加 python 镜像,否则打包非常慢。
  1. FROM nvcr.io/nvidia/pytorch:24.01-py3
  2. WORKDIR /app
  3. COPY requirements.txt /app/
  4. RUN pip install -i https://mirrors.aliyun.com/pypi/simple -r requirements.txt
  5. COPY . /app/
  6. RUN pip install -i https://mirrors.aliyun.com/pypi/simple -e .[metrics,bitsandbytes,qwen]
  7. VOLUME [ "/root/.cache/huggingface/", "/app/data", "/app/output" ]
  8. EXPOSE 7860
  9. CMD [ "llamafactory-cli", "webui" ]
复制代码
  1. docker build -f ./Dockerfile -t llama-factory:latest .
  2. docker run --runtime=nvidia --gpus all \
  3. -v ./hf_cache:/root/.cache/huggingface/ \
  4. -v ./data:/app/data \
  5. -v ./examples:/app/examples \
  6. -v ./output:/app/output \
  7. -e CUDA_VISIBLE_DEVICES=0 \
  8. -e USE_MODELSCOPE_HUB=1 \
  9. -p 7860:7860 \
  10. --shm-size 32G \
  11. --name llama_factory \
  12. -d llama-factory:latest
复制代码

  • 模型训练
    测试中使用了 llam3模型,修改设置文件的模型 ID,examples/lora_single_gpu/llama3_lora_sft.yaml,从“model_name_or_path: meta-llama/Meta-Llama-3-8B-Instruct” 改为 “model_name_or_path: LLM-Research/Meta-Llama-3-8B-Instruct”
  1. CUDA_VISIBLE_DEVICES=0 llamafactory-cli train examples/lora_single_gpu/llama3_lora_sft.yaml
复制代码

  • 模型推理
    使用训练好的模型进行推理,修改模型 ID,从“model_name_or_path: meta-llama/Meta-Llama-3-8B-Instruct” 改为 “model_name_or_path: LLM-Research/Meta-Llama-3-8B-Instruct”
  1. CUDA_VISIBLE_DEVICES=0 llamafactory-cli chat examples/inference/llama3_lora_sft.yaml
复制代码

  • 导出模型
    将Lora 调优的adapter 于原始模型进行合并导出。
  1. CUDA_VISIBLE_DEVICES=0 llamafactory-cli export examples/merge_lora/llama3_lora_sft.yaml
复制代码

  • 转换为 GGUF
    将导出的模型转换为 GGUF,GGUF 可以通过 ollama 运行。
  1. ## 下载 llamafile
  2. git clone https://github.com/ggerganov/llama.cpp.git
  3. ## 安装依赖
  4. pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -r llama.cpp/requirements.txt
  5. ##转换模型
  6. python llama.cpp/convert-hf-to-gguf.py /app/models/llama3_lora_sft/   --outfile test-llama3.gguf   --outtype q8_0
复制代码

  • 导入 Ollama


  • 创建模型文件,创建模型文件testmodel。
  1. FROM ./test-llama3.gguf
  2. 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|>"
复制代码


  • 创建模型文件
  1. ollama create testllama3 -f testmodel
复制代码


  • 执行文件
  1. ollama run  testllama3
复制代码
总结

本文只是简单对 LLaMA Factory 在本地调优的流程进行了简单的介绍,调优完成之后将模型随处为 GGUF 格式并用 ollama 运行,详细的调优参数还要参考 LLaMA Factory 官方网站,不得不吐槽一下,文档确实不太完善,得看源代码。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

干翻全岛蛙蛙

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表