llama-factory SFT系列教程 (一),大模型 API 部署与使用

这篇具有很好参考价值的文章主要介绍了llama-factory SFT系列教程 (一),大模型 API 部署与使用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

背景

本来今天没有计划学 llama-factory,逐步跟着github的文档走,发现这框架确实挺方便,逐渐掌握了一些。
最近想使用 SFT 微调大模型,llama-factory 是使用非常广泛的大模型微调框架;

简介

基于 llama_factory 微调 qwen/Qwen-7B,qwen/Qwen-7B-Chat
我使用的是 qwen/Qwen-7B,如果追求对话效果qwen/Qwen-7B-Chat的效果会好一点;

本系列的主要工作如下:

  1. 大模型 api 部署;直接部署开源大模型体验一下;
  2. 增加自定义数据集;为实现SFT准备数据;
  3. 大模型 lora 微调;
  4. 原始模型 + 微调后的lora插件,完成 api 部署;

使用 llama_factory 的 API 部署有 vllm加速推理;

文章目录:

  1. llama-factory SFT系列教程 (一),大模型 API 部署与使用
  2. llama-factory SFT系列教程 (二),大模型在自定义数据集 lora 训练与部署
  3. llama-factory SFT系列教程 (三),chatglm3-6B 命名实体识别实战

难点

可能遇到的一些难点:
llama_factory 默认从 Huggingface下载模型,要改为从modelscope下载模型权重;

前置条件

llama_factory 装包

git clone https://github.com/hiyouga/LLaMA-Factory.git
# conda create -n llama_factory python=3.10
# conda activate llama_factory
cd LLaMA-Factory
pip install -e .[metrics]

If you have trouble with downloading models and datasets from Hugging Face, you can use ModelScope.

export USE_MODELSCOPE_HUB=1 # `set USE_MODELSCOPE_HUB=1` for Windows

linux 在 ~/.bashrc 中 添加 export USE_MODELSCOPE_HUB=1source .bashrc 激活,达到重启电脑也生效;

1. 大模型 api 部署

虽然我执行了这条语句 export USE_MODELSCOPE_HUB=1 以为切换到 modelscope的下载源了;
但是 填写模型名称 --model_name_or_path qwen/Qwen-7B,还是会从 huggingface下载模型权重;于是我填写本地绝对路径的方式;

下载模型权重:

#模型下载
from modelscope import snapshot_download
model_dir = snapshot_download('qwen/Qwen-7B')
model_dir

输出模型的下载地址如下:

/mnt/workspace/.cache/modelscope/qwen/Qwen-7B

切换目录到刚才从github下载的 llama-factory 文件夹

cd LLaMA-Factory

执行 API 部署脚本,本文选择 api 而不是网页,因为API的用途更广,可供python程序调用,而网页只能与用户交互。

CUDA_VISIBLE_DEVICES=0 API_PORT=8000 python src/api_demo.py \
--model_name_or_path /mnt/workspace/.cache/modelscope/qwen/Qwen-7B \
--template qwen 
--infer_backend vllm 
--vllm_enforce_eager

可以注意到 LLaMA-Factory 在模型推理时,使用了 vllm 加速;
不出意外的话,经过一段时间的模型权重加载,看到下述图片展示的状态时,那么 API 便部署成功了;
llama-factory SFT系列教程 (一),大模型 API 部署与使用,大模型,人工智能,自然语言处理

现在如何给 API 接口传参呢?是不是有点不知所措!
不用急,在图片的红框中,笔者已经给大家标出来了,http://localhost:8000/docs 便是API 的接口文档说明;

有同学会说:“我使用的云端服务器,而且还没有公网 ip,我该那怎么访问这个文档呢?”
笔者:直接点击便可访问,该文档做了内网穿透;

比如,我点击后,弹出了如下页面:https://dsw-gateway-cn-beijing.data.aliyun.com/dsw-70173/proxy/8000/docs

该 API 的文档页面如下图所示:
llama-factory SFT系列教程 (一),大模型 API 部署与使用,大模型,人工智能,自然语言处理

下述是官方给的请求体参数

{
  "model": "string",
  "messages": [
    {
      "role": "user",
      "content": "string",
      "tool_calls": [
        {
          "id": "call_default",
          "type": "function",
          "function": {
            "name": "string",
            "arguments": "string"
          }
        }
      ]
    }
  ],
  "tools": [
    {
      "type": "function",
      "function": {
        "name": "string",
        "description": "string",
        "parameters": {}
      }
    }
  ],
  "do_sample": true,
  "temperature": 0,
  "top_p": 0,
  "n": 1,
  "max_tokens": 0,
  "stream": false
}

笔者把下述的请求保存在 1.sh 文件中,因为下述请求体太长了,在sh文件中进行编辑方便一点;

curl -X 'POST' \
  'http://0.0.0.0:8000/v1/chat/completions' \
  -H 'accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
  "model": "string",
  "messages": [
    {
      "role": "user",
      "content": "你能帮我做一些什么事情?",
      "tool_calls": [
        {
          "id": "call_default",
          "type": "function",
          "function": {
            "name": "string",
            "arguments": "string"
          }
        }
      ]
    }
  ],
  "tools": [
    {
      "type": "function",
      "function": {
        "name": "string",
        "description": "string",
        "parameters": {}
      }
    }
  ],
  "do_sample": true,
  "temperature": 0,
  "top_p": 0,
  "n": 1,
  "max_tokens": 128,
  "stream": false
}'

执行 bash 1.sh 便可获得大模型生成的回答了;
llama-factory SFT系列教程 (一),大模型 API 部署与使用,大模型,人工智能,自然语言处理
在 API 文档中,还有其他的接口,请读者自行探索。

下一步阅读

llama-factory SFT系列教程 (二),大模型在自定义数据集 lora 训练与部署

包含如下内容:文章来源地址https://www.toymoban.com/news/detail-853651.html

  1. 增加自定义数据集;为实现SFT准备数据;
  2. 大模型 lora 微调;
  3. 原始模型 + 微调后的lora插件,完成 api 部署;

到了这里,关于llama-factory SFT系列教程 (一),大模型 API 部署与使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python - 深度学习系列30 - 使用LLaMA-Factory微调模型

    最实用的一种利用大语言模型的方式是进行微调。预训练模型与我们的使用场景一定会存在一些差异,而我们又不可能重头训练。 微调的原理并不复杂,载入模型,灌新的数据,然后运行再训练,保留checkpoints。但是不同项目的代码真的不太一样,每一个都要单独去看的话比

    2024年04月12日
    浏览(32)
  • 源2.0大模型适配LLaMA-Factory框架!

    近日, 源2.0开源大模型与LLaMA-Factory框架完成全面适配 ,用户通过LLaMA-Factory,即可快捷、高效地对不同参数规模的源2.0基础模型进行全量微调及高效微调,轻松实现专属大模型。 LLM(大语言模型)微调,是指在大模型的基础上,针对特定任务或领域进行调整和优化,以提升

    2024年01月21日
    浏览(35)
  • 小白也能微调大模型:LLaMA-Factory使用心得

    大模型火了之后,相信不少人都在尝试将预训练大模型应用到自己的场景上,希望得到一个垂类专家,而不是通用大模型。 目前的思路,一是RAG(retrieval augmented generation),在模型的输入prompt中加入尽可能多的“目标领域”的相关知识,引导模型在生成时尽量靠拢目标领域,运

    2024年04月13日
    浏览(42)
  • 快速上手!LLaMa-Factory最新微调实践,轻松实现专属大模型

    Yuan2.0(https://huggingface.co/IEITYuan)是浪潮信息发布的新一代基础语言大模型,该模型拥有优异的数学、代码能力。自发布以来,Yuan2.0已经受到了业界广泛的关注。当前Yuan2.0已经开源参数量分别是102B、51B和2B的3个基础模型,以供研发人员做进一步的开发。 LLM(大语言模型)微

    2024年01月20日
    浏览(42)
  • LLaMA-Factory可视化界面微调chatglm2;LoRA训练微调模型 简单案例

    参考:https://github.com/huggingface/peft https://github.com/hiyouga/LLaMA-Factory 类似工具还有流萤,注意是做中文微调训练这块;来训练微调的chatglm2需要完整最新文件,不能是量化后的模型;另外测试下来显卡资源要大于20来G才能顺利,这边T4单卡训练中间显存不足,需要开启4bit量化才行

    2024年02月05日
    浏览(40)
  • LLaMA-Factory添加adalora

    感谢https://github.com/tsingcoo/LLaMA-Efficient-Tuning/commit/f3a532f56b4aa7d4200f24d93fade4b2c9042736和https://github.com/huggingface/peft/issues/432的帮助。 1. 修改src/llmtuner/hparams/finetuning_args.py代码 在FinetuningArguments中修改finetuning_type,添加target_r和init_r 修改__post_init__函数 2. 修改src/llmtuner/tuner/core/adapter

    2024年01月17日
    浏览(37)
  • LLaMA-Factory参数的解答

    打开LLaMA-Factory的web页面会有一堆参数 ,但不知道怎么选,选哪个,这个文章详细解读一下,每个参数到底是什么含义 这是个人写的参数解读,我并非该领域的人如果那个大佬看到有参数不对请反馈一下,或者有补充的也可以!谢谢(后续该文章可能会持续更新) LLaMA-Facto

    2024年04月11日
    浏览(29)
  • Llama3-8B+ LLaMA-Factory 中文微调

    Llama3是目前开源大模型中最优秀的模型之一,但是原生的Llama3模型训练的中文语料占比非常低,因此在中文的表现方便略微欠佳! 本教程就以Llama3-8B-Instruct开源模型为模型基座,通过开源程序LLaMA-Factory来进行中文的微调,提高Llama3的中文能力!LLaMA-Factory是一个开源的模型训

    2024年04月27日
    浏览(36)
  • Llama-Factory的baichuan2微调

    Llama-Factory:https://github.com/hiyouga/LLaMA-Factory/tree/main 请使用   来启用 QLoRA 训练。 (1)奖励模型训练 (2)PPO训练(PPO训练需要先进行上一步RM的训练,然后导入微调后模型和RM进行训练输出)        大规模无监督语言模型(LMs)虽然可以学习广泛的世界知识和一些推理技能

    2024年02月05日
    浏览(33)
  • 使用LLaMA-Factory微调ChatGLM3

    略 (1)下载LLaMA-Factory https://github.com/hiyouga/LLaMA-Factory (2)安装依赖 (3)启动LLaMA-Factory的web页面 得到如下页面: 设置如下参数,点击开始即可: 点击“预览命令”,可以看到要执行的python脚本,如下所示:

    2024年02月03日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包