

欢迎使用 H2O LLM Studio —— 一个专为微调最先进大语言模型(LLMs)而设计的框架与无代码 GUI。
如有疑问、想参与讨论或只是闲聊,欢迎加入我们的 Discord!
使用基于云的 runpod.io 实例,以 GUI 方式运行最新版 H2O LLM Studio。
使用 CLI 微调 LLM:
max_length 设置,更好地贴合 transformers 中 chat_template 的功能。KTOPairLoss,支持使用简单偏好数据训练模型。目前数据需要手动将正负样本随机配对准备。请注意,由于当前开发速度较快,我们无法保证新功能完全向后兼容。因此建议将框架版本固定为你实验时所用的版本。如需重置,请删除或备份 data 和 output 文件夹。
H2O LLM Studio 需要一台运行 Ubuntu 16.04+ 的机器,以及至少一块较新的 NVIDIA GPU(NVIDIA 驱动版本 >= 580,PyTorch 运行于 CUDA 13)。对于更大的模型,建议至少 24GB 显存。
关于安装前提条件的更多信息,请参阅文档中的 Set up H2O LLM Studio 指南。
关于不同 GPU 的性能对比,请参阅文档中的 H2O LLM Studio 性能指南。
推荐使用 uv 和 Python 3.12 安装 H2O LLM Studio。要在 Ubuntu 20.04+ 上安装 Python 3.12,请执行以下命令:
如果在运行 Ubuntu 的“裸机”上部署,可能需要安装所需的 NVIDIA 驱动和 CUDA。以下命令示例展示了如何在运行 Ubuntu 22.04 的机器上获取最新驱动和 CUDA 13.0。你可以根据所用操作系统相应调整。
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-keyring_1.1-1_all.deb
sudo dpkg -i cuda-keyring_1.1-1_all.deb
sudo apt-get update
sudo apt-get -y install cuda-toolkit-13-0
sudo apt-get -y install cuda-drivers
我们提供多种方式搭建所需的 Python 环境。
以下命令将使用 uv 创建虚拟环境并安装依赖:
make setup
你可以使用以下命令启动 H2O LLM Studio:
make llmstudio
该命令会启动 H2O Wave 服务器和应用。
在浏览器中访问 http://localhost:10101/(推荐使用 Chrome)即可打开 H2O LLM Studio,开始微调你的模型!
如果你使用 uv 之外的自定义环境运行 H2O LLM Studio,需要按如下方式启动应用:
H2O_WAVE_MAX_REQUEST_SIZE=25MB \
H2O_WAVE_NO_LOG=true \
H2O_WAVE_PRIVATE_DIR="/download/@output/download" \
wave run llm_studio.app
首先按照 NVIDIA Containers 的说明安装 Docker。请确保按说明安装好 nvidia-container-toolkit。
H2O LLM Studio 镜像存放在 h2oai Docker Hub 容器仓库中。
mkdir -p `pwd`/llmstudio_mnt
chmod 777 `pwd`/llmstudio_mnt
# make sure to pull latest image if you still have a prior version cached
docker pull h2oairelease/h2oai-llmstudio-app:latest
# run the container
docker run \
--runtime=nvidia \
--shm-size=64g \
--init \
--rm \
-it \
-u `id -u`:`id -g` \
-p 10101:10101 \
-v `pwd`/llmstudio_mnt:/mount \
h2oairelease/h2oai-llmstudio-app:latest
在浏览器中访问 http://localhost:10101/(推荐使用 Chrome)即可打开 H2O LLM Studio,开始微调你的模型!
(其他有用的 Docker 命令还有 docker ps 和 docker kill。)
你也可以使用命令行界面(CLI)运行 H2O LLM Studio,并指定包含所有实验参数的配置 .yaml 文件。使用 CLI 通过 H2O LLM Studio 进行微调,请执行以下命令:
uv run python llm_studio/train.py -Y {path_to_config_yaml_file}
以 DDP 模式在多 GPU 上运行,请执行以下命令:
bash distributed_train.sh {NR_OF_GPUS} -Y {path_to_config_yaml_file}
默认情况下,框架会在前 k 块 GPU 上运行。如需指定特定的 GPU,请在命令前使用 CUDA_VISIBLE_DEVICES 环境变量。
要与训练好的模型进行交互式聊天,请使用以下命令:
uv run python llm_studio/prompt.py -e {experiment_name}
其中 experiment_name 是你要与之聊天的实验输出文件夹(参见配置)。
交互式聊天同样适用于通过 UI 微调的模型。
要将模型发布到 Hugging Face,请使用以下命令:
uv run python llm_studio/publish_to_hugging_face.py -p {path_to_experiment} -d {device} -a {api_key} -u {user_id} -m {model_name} -s {safe_serialization}
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_ALLOWED_ORIGINS="*"
如果在远程运行 H2O Wave 服务器时遇到超时,可通过设置以下环境变量来增加超时时间:
H2O_WAVE_APP_CONNECT_TIMEOUT="15"
H2O_WAVE_APP_WRITE_TIMEOUT="15"
H2O_WAVE_APP_READ_TIMEOUT="15"
H2O_WAVE_APP_POOL_TIMEOUT="15"
上述默认值均为 5(秒)。如遇超时可调大。使用 -1 可禁用超时。
关于导入数据时所需数据格式的详细信息,或可用于试用 H2O LLM Studio 的示例数据,请参阅 H2O LLM Studio 文档中的数据格式。
使用 H2O LLM Studio,训练大语言模型简单直观。首先上传数据集,然后开始训练。从创建实验开始,之后你可以监控和管理实验、比较实验,或将模型推送到 Hugging Face与社区分享。
作为示例,你可以通过 CLI 在 OASST 数据上运行实验。相关说明请参阅 H2O LLM Studio 文档中的在 OASST 数据上运行实验指南。
所有开源数据集和模型均发布在 H2O.ai 的 Hugging Face 页面以及我们的 H2OGPT 仓库中。
H2O LLM Studio 的详细文档和常见问题(FAQs)可在 https://docs.h2o.ai/h2o-llmstudio/ 查看。如果你希望为文档做贡献,请进入本仓库的 /documentation 文件夹,并参阅其中的 README.md 了解更多信息。
我们乐于接受对 H2O LLM Studio 项目的贡献。更多信息请参阅 CONTRIBUTING.md 文件。
H2O LLM Studio 采用 Apache 2.0 许可证。更多信息请参阅 LICENSE 文件。