SuperAPI AI 工具集

h2o-llmstudio

H2O LLM Studio 是一个用于微调大型语言模型(LLM)的框架和无代码图形界面(GUI)。它让用户无需编码经验即可轻松、有效地微调最先进的 LLM,提供专门为大型语言模型设计的 GUI,支持大量超参数、LoRA 和 8 位模型训练等低内存微调技术,还包含实验性强化学习(RL)微调、高级评估指标、模型性能可视化对比、W&B 集成、与模型聊天以及导出到 Hugging Face Hub 等功能。此外也提供命令行界面(CLI)。

访问官网

工具介绍

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 文件。