LlamaFactory 进行大模型 llama3 微调,轻松上手体验学习

节前,我们星球组织了一场算法岗技术&面试讨论会,邀请了一些互联网大厂朋友、参加社招和校招面试的同学,针对算法岗技术趋势、大模型落地项目经验分享、新手如何入门算法岗、该如何准备、面试常考点分享等热门话题进行了深入的讨论。

汇总合集:《大模型面试宝典》(2024版) 发布!


最近,大模型领域最受关注的事件就是meta发布了llama3,前段时间我们介绍的LlamaFactory也第一时间支持了llama3,并且发布了自己的Colab微调实战案例,并对外推出了两个社区中文微调版本:

  • Llama3-Chinese,首个使用 DoRA 和 LoRA+ 算法微调的中文 Llama3 模型,仓库地址:https://github.com/seanzhang-zhichen/llama3-chinese

在这里插入图片描述

技术交流群

前沿技术资讯、算法交流、求职内推、算法竞赛、面试交流(校招、社招、实习)等、与 10000+来自港科大、北大、清华、中科院、CMU、腾讯、百度等名校名企开发者互动交流~

我们建了算法岗技术与面试交流群, 想要大模型技术交流、了解最新面试动态的、需要源码&资料、提升技术的同学,可以直接加微信号:mlc2040。加的时候备注一下:研究方向 +学校/公司+优快云,即可。然后就可以拉你进群了。

方式①、微信搜索公众号:机器学习社区,后台回复:加群
方式②、添加微信号:mlc2040,备注:技术交流

下面我们一起来看看它的微调案例,整个流程与其他模型微调基本一致:

from llmtuner import run_exp

%cd /content/LLaMA-Factory/

run_exp(dict(
  stage="sft",
  do_train=True,
  model_name_or_path="unsloth/llama-3-8b-Instruct-bnb-4bit",
  dataset="identity,alpaca_gpt4_en,alpaca_gpt4_zh",
  template="llama3",
  finetuning_type="lora",
  lora_target="all",
  output_dir="llama3_lora",
  per_device_train_batch_size=2,
  gradient_accumulation_steps=4,
  lr_scheduler_type="cosine",
  logging_steps=10,
  warmup_ratio=0.1,
  save_steps=1000,
  learning_rate=5e-5,
  num_train_epochs=3.0,
  max_samples=500,
  max_grad_norm=1.0,
  quantization_bit=4,
  loraplus_lr_ratio=16.0,
  use_unsloth=True,
  fp16=True,
))

训练数据集:

[
  {
    "instruction": "hi",
    "input": "",
    "output": "Hello! I am Llama-3, an AI assistant developed by LLaMA Factory. How can I assist you today?"
  },
  {
    "instruction": "hello",
    "input": "",
    "output": "Hello! I am Llama-3, an AI assistant developed by LLaMA Factory. How can I assist you today?"
  },
  {
    "instruction": "Who are you?",
    "input": "",
    "output": "I am Llama-3, an AI assistant developed by LLaMA Factory. How can I assist you today?"
  },
  ...

更多llama3数据集(huggingface&魔搭):

图片

https://huggingface.co/datasets?sort=trending&search=llama3

值得一提的是,llamafactory的微调方案利用unsloth加速,而unsloth也在更早的时候发布了自己的微调方案,感兴趣的读者可以体验。

unsloth(https://github.com/unslothai/unsloth)是一个用于加速深度学习模型训练的开源工具。它可以实现5倍到30倍的训练速度提升,同时还能减少50%的内存占用。

地址:https://colab.research.google.com/drive/1mPw6P52cERr93w3CMBiJjocdTnyPiKTX#scrollTo=IqM-T1RTzY6C

面试精选

参考文章

https://zhuanlan.zhihu.com/p/693905042
https://colab.research.google.com/drive/1d5KQtbemerlSDSxZIfAaWXhKr30QypiK?usp=sharing

### LLaMA Factory 模型微调教程 LLaMA Factory 是一款开源低代码大模型微调框架,它集成了多种业界广泛使用的微调技术,并提供了详细的文档和操作指南[^1]。以下是关于如何使用 LLaMA Factory 进行模型微调的相关说明。 #### 微调环境准备 为了成功运行 LLaMA Factory 提供的工具链,需先安装必要的依赖项并配置好开发环境。具体步骤可参考其官方 GitHub 页面上的 README 文件中的指导。通常情况下,这涉及 Python 虚拟环境设置以及 PyTorch 或其他深度学习库的安装。 #### 数据预处理 在实际执行微调之前,数据准备工作至关重要。通过脚本定义示例文本的方式,可以构建训练所需的结构化数据集合。每条记录应至少包含两部分内容——原始文本与目标转换后的版本(例如其中性的表述形式)。这种设计有助于 LangChain 类似架构下的序列到序列生成任务的学习过程优化[^2]。 #### 开始微调流程 一旦完成了上述前置条件的确立,则可以根据项目仓库内的指引来启动具体的参数调整作业: ```bash cd /path/to/LLaMA-Factory/ pip install -r requirements.txt python train.py --config configs/default.yaml ``` 此命令假设您已经下载好了基础权重文件存放在指定路径下,并且按照需求修改了 `default.yaml` 中的各项超参设定值以适配自己的硬件资源状况及业务场景特点。 #### 导出与服务化部署 当完成一轮或多轮迭代之后得到满意的性能指标结果时,就可以考虑将最终版模型导出了。利用 vLLM 工具包能够轻松实现这一目的,如下所示即为一段典型的服务端初始化片段[^3]: ```python import os from vllm import LLM, SamplingParams if __name__ == "__main__": model_path = "/LLaMA-Factory/save/lora/export/" served_model_name = "qwen" llm = LLM(model=model_path, trust_remote_code=True) sampling_params = SamplingParams(temperature=0.8) # Example usage of the loaded model. outputs = llm.generate(["What is your name?"], sampling_params=sampling_params) for output in outputs: print(output.text) ``` 以上代码展示了怎样加载本地保存好的 LoRA 权重并通过 RESTful API 对外暴露接口访问权限。 #### 参考资料补充 另外值得一提的是,《GLM-4 大模型部署微调教程》由 DataWhale 社区精心打造而成,在短时间内覆盖到了多个热点话题领域比如但不限于模型 api 部署;Langchain 接入等方面的内容介绍[^4]。对于希望进一步深入探索该主题的朋友来说无疑是一份不可多得的好材料! ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值