使用 Training Operator 微调大型语言模型
旧版本
此页面关于 Kubeflow Training Operator V1,最新信息请查阅 Kubeflow Trainer V2 文档。
此页面展示了 Training Operator 如何实现用于微调大型语言模型的 API。
架构
您可以在下图中看到 train
Python API 的工作原理
用户执行
train
API 后,Training Operator 会创建具有适当资源的 PyTorchJob 来微调大型语言模型。存储初始化器 InitContainer 被添加到 PyTorchJob worker 0,用于使用提供的参数下载预训练模型和数据集。
具有
ReadOnlyMany
访问模式的 PVC 会挂载到每个 PyTorchJob worker 上,以便在 Pod 之间分发模型和数据集。注意:您的 Kubernetes 集群必须支持具有ReadOnlyMany
访问模式的卷,否则您只能使用单个 PyTorchJob worker。每个 PyTorchJob worker 运行 LLM Trainer,使用提供的参数微调模型。
Training Operator 使用这些预创建的组件实现 train
API
模型提供者
模型提供者下载预训练模型。目前,Training Operator 支持 HuggingFace 模型提供者,用于从 HuggingFace Hub 下载模型。
您可以使用此抽象基类实现自己的模型提供者
数据集提供者
数据集提供者下载数据集。目前,Training Operator 支持 AWS S3 和 HuggingFace 数据集提供者。
您可以使用此抽象基类实现自己的数据集提供者
LLM 训练器
训练器实现训练循环来微调大型语言模型。目前,Training Operator 支持 HuggingFace 训练器来微调大型语言模型。
您可以为其他机器学习用例(如图像分类、语音识别等)实现自己的训练器。