H2O LLM Studio 是一个用于微调大型语言模型(LLM)的框架和无代码 GUI。
用途
该工具旨在让用户无需任何编码经验,即可轻松且有效地微调最先进的 LLM。它提供专门为大型语言模型设计的图形用户界面(GUI),同时也支持命令行界面(CLI)进行微调。
主要能力
- 使用专门为大型语言模型设计的图形用户界面(GUI)。
- 使用大量超参数微调任意 LLM。
- 使用近期微调技术,如低秩适配(LoRA)和低内存占用的 8 位模型训练。
- 使用强化学习(RL)微调模型(实验性)。
- 使用高级评估指标评判模型生成的答案。
- 可视化追踪和对比模型性能,并可使用 W&B 集成。
- 与模型聊天,即时获取模型性能反馈。
- 轻松将模型导出到 Hugging Face Hub 并与社区分享。
使用方式
安装
- 推荐使用 uv 配合 Python 3.10 安装 H2O LLM Studio。
- 提供虚拟环境设置方式。
- 可通过 Docker 运行 GUI。
- 可运行 H2O LLM Studio GUI。
- 可运行 H2O LLM Studio GUI(使用 Docker)。
- 可使用命令行界面(CLI)运行 H2O LLM Studio。
运行 GUI
使用相应命令启动 H2O Wave 服务器和应用,然后导航至 http://localhost:10101/(推荐使用 Chrome)访问 H2O LLM Studio 并开始微调模型。
使用 CLI 微调
可使用 CLI 并指定包含所有实验参数的配置文件(.yaml)进行微调。支持 DDP 模式多 GPU 运行。默认情况下,框架会在前 k 个 GPU 上运行;如需指定特定 GPU,可在命令前使用 CUDA_VISIBLE_DEVICES 环境变量。
交互式聊天
使用命令与训练好的模型启动交互式聊天,其中 experiment_name 是想要聊天实验的输出文件夹。交互式聊天也适用于使用 UI 微调的模型。
发布到 Hugging Face
使用命令将模型发布到 Hugging Face。path_to_experiment 是实验的输出文件夹;device 是运行模型的目标设备,为 'cpu' 或 'cuda:0',默认 'cuda:0';api_key 是 Hugging Face API Key,若用户已登录可省略;user_id 是 Hugging Face 用户 ID,若用户已登录可省略;model_name 是要发布到 Hugging Face 的模型名称,可省略;safe_serialization 是指示是否使用安全序列化的标志,默认 True。
云端与远程设置
如果在 runpod 等基于云的机器上运行,可能需要设置特定环境变量以允许 H2O Wave 服务器接受来自代理的连接。如果远程运行 H2O Wave 服务器时遇到超时,可通过设置特定环境变量增加超时,默认均为 5 秒,遇到超时请增加,使用 -1 可禁用超时。
训练模型
首先上传数据集,然后开始训练模型。先创建实验,之后可以监控和管理实验、比较实验,或将模型推送到 Hugging Face 与社区分享。可参考在 OASST 数据上通过 CLI 运行实验的示例指南。
数据格式
关于导入数据所需的数据格式或可用于试用 H2O LLM Studio 的示例数据详情,请参阅 H2O LLM Studio 文档中的 Data format 部分。
适用场景与限制
系统要求
H2O LLM Studio 需要 Ubuntu 16.04+ 的机器,并且至少有一个较新的 NVIDIA GPU,NVIDIA 驱动版本 >= 580(PyTorch 在 CUDA 13 上运行)。对于更大的模型,建议至少 24GB GPU 内存。
开发状态
由于当前快速开发,无法保证新功能的完全向后兼容。建议将框架版本固定为实验所用的版本。如需重置,请删除/备份数据和输出文件夹。
功能变更
- 新问题类型 Causal Regression Modeling 允许使用 LLM 训练单目标回归数据。
- 完全移除 RLHF,改用 DPO/IPO/KTO 优化。
- 移除 prompt 和 answer 的单独最大长度设置,改用单一的 max_length 设置,以更好地类似于 transformers 的 chat_template 功能。
- 为 DPO 建模添加 KTOPairLoss,允许使用简单偏好数据训练模型;数据目前需要手动准备,随机匹配正负示例成对。
- 开始弃用 RLHF,改用 DPO/IPO 优化。训练已禁用,但旧实验仍可查看。RLHF 将在未来版本中完全移除。
- 引入 DPO/IPO 优化的新问题类型,可作为 RLHF 的替代方案。
- 引入 DeepSpeed 用于分片训练,允许在多 GPU 机器上训练更大的模型,需要 NVLink。此功能取代 FSDP 并提供更多灵活性。DeepSpeed 需要系统安装 CUDA Toolkit,推荐使用 12.1 版本。
- 新问题类型 Causal Classification Modeling 允许使用 LLM 训练二分类和多分类模型。
- 用户密钥现在处理得更安全、灵活。添加了对使用 'keyring' 库处理密钥的支持。用户设置会尝试自动迁移。
其他信息
所有开源数据集和模型发布在 H2O.ai 的 Hugging Face 页面和 H2OGPT 仓库。详细文档和常见问题(FAQ)见 https://docs.h2o.ai/h2o-llmstudio/ 。如需为文档做贡献,请导航至本仓库的 /documentation 文件夹并参阅 README.md。欢迎为 H2O LLM Studio 项目做贡献,请参阅 CONTRIBUTING.md 文件。H2O LLM Studio 在 Apache 2.0 许可下发布,请参阅 LICENSE 文件。