当前位置: 首页 > news >正文

使用SFTTrainer进行微调

使用SFTTrainer进行微调

无论是大型模型还是其他模型,微调过程所遵循的训练步骤与从头开始训练模型完全相同。我们可以用纯PyTorch编写自己的训练循环,也可以使用Hugging Face的Trainer来微调模型。

不过,使用SFTTrainer会简单得多(顺便说一下,它的底层使用的是Trainer),因为只要我们向它提供以下四个参数,它就会为我们处理大部分繁琐的细节:

  • 模型
  • 分词器
  • 数据集
  • 配置对象

前三个要素我们已经准备好了,接下来让我们处理配置对象。

SFT配置

在配置对象中,我们可以设置许多参数。我们将这些参数分为四类:

  • 与梯度累积和检查点相关的内存使用优化参数
  • 数据集相关参数,例如数据所需的最大序列长度(max_seq_length),以及是否对序列进行打包
  • 典型的训练参数,如学习率(learning_rate)和训练轮次(num_train_epochs)
  • 环境和日志参数,如输出目录(output_dir,若你选择在训练完成后将模型推送到Hugging Face Hub,这将成为模型的名称)、日志目录(logging_dir)和日志步数(logging_steps)

虽然学习率是一个非常重要的参数(作为起点,你可以尝试使用最初训练基础模型时的学习率),但实际上,最大序列长度更有可能导致内存不足问题。

务必始终选择对于你的使用场景而言合理的最短最大序列长度。在我们的案例中,无论是英文句子还是尤达

http://www.dtcms.com/a/308643.html

相关文章:

  • sqli-labs靶场Less24
  • FlexLM/SLM协议解析
  • [硬件电路-110]:模拟电路 - 能量并非凭空产生,自激振荡器,一种把直流能量转换成交流信号的装置!
  • TCP/IP协议的安全隐患与防范措施
  • php session 和 jwt 区别和使用场景
  • TCP窗口缩放配置在云服务器高延迟网络中的参数调整测试
  • 如何快速部署主数据管理解决方案?
  • 用于Forza系列测试自动化的3D可视化工具
  • MySQL 8.0 OCP 1Z0-908 题目解析(38)
  • Android Jetpack消息推送全解析:从FCM集成到Jetpack组件优化
  • 信令和信号在通信领域的区别
  • 详解分布式数据库缓存技术:高性能数据访问的基石
  • 【javascript】Reflect学习笔记
  • OCP网卡、OVS网卡和DPU(数据处理单元)三类技术方案
  • system.conf linux用于启动和管理系统进程的初始化系统和服务管理器的配置文件
  • 检索召回率优化探究二:基于 LangChain 0.3集成 Milvus 2.5向量数据库构建的智能问答系统
  • 中国高速铁路网的“四纵四横“和“八纵八横“shp数据
  • LLM——使用 LangGraph 构建 ReAct 智能体:多轮对话 + 工具调用 + 可视化流程图
  • flowable对已经部署的流程进行更新,不产生新版本
  • 【问题】Docker 容器内的应用(如n8n),访问不到外部主机的应用(如mysql)
  • C语言基础第18天:内存操作函数
  • Jmeter 性能测试常用图表、服务器资源监控
  • AI学习笔记三十四:基于yolov5+deepsort+slowfast的视频实时行为检测测试
  • 【源力觉醒 创作者计划】文心大模型4.5体验:技术跃迁,拥抱AI新时代
  • Coze是什么?能做什么?
  • MySQL 9 INNODB Cluster部署
  • Qt之CJSON:从基础到进阶的 JSON 数据处理指南
  • MySQL 8.0 OCP 1Z0-908 题目解析(41)
  • 节目预告:工程师张仰彪在相对论学习中的九个疑问
  • 【Kubernetes 指南】基础入门——Kubernetes 集群(一)