Model Hub V2是提供一站式的模型微调,部署,调试的无代码可视化平台,可以帮助用户快速验证微调各类开源模型的效果,方便用户快速实验和决策,降低用户微调大模型的门槛。详情请见飞书使用说明
- 进入CloudFormation创建一个stack,选择上传部署文件cloudformation-template.yaml
- 填入一个stack名,例如modelhub, 和HuggingFaceHubToken(可选)
- 一直下一步,直到勾选确认框,然后提交
- 配置完成后,等待stack创建完成,从Stack output栏找到PublicIP地址,然后访问http://{ip}:3000访问modelhub,默认用户名demo_user
- 密码获取:进入AWS System Manager->Parameter Store服务控制台,可以看到多了一个/modelhub/RandomPassword,进入之后打开Show decrypted value开关,获取登陆密码,默认用户名是
⚠️ 注意,stack显示部署完成之后,启动的EC2还需要8-10分钟自动运行一些脚本,如果不行,请等待8-10分钟,然后刷新页面
- 中国区由于无法直接用github,所以部署分为两步,首先使用cloudformation创建ec2服务器和role,然后下载项目代码上传至ec2服务器,运行一键安装脚本。
- 首先,进入CloudFormation创建一个stack,选择上传部署文件cloudformation-template-cn.yaml
- 填入一个stack名,例如modelhub,选择一个keypair文件用于ssh到ec2实例(如果没有已有的,则需要到ec2控制台事先创建好)
- 大约几分钟部署完成,在output页卡找到ec2 PublicIP和SageMakerRoleArn信息,后面会用到
- 请先在能访问github的电脑环境中执行以下命令下载代码,然后把代码打包成zip文件,上传到ec2服务器的/home/ubuntu/下。
⚠️ 注意:需要使用--recurse-submodule下载代码
git clone --recurse-submodule https://github.com/aws-samples/llm_model_hub.git
- zip项目并上传至第一步创建的ec2服务器的/home/ubuntu目录下
zip -r llm_model_hub.zip llm_model_hub/
scp -i <path_to_your_keypair_file> llm_model_hub.zip ubuntu@<第一步中获取的PublicIP>:~/
- 在本地终端中通过ssh到第一步创建的ec2, 注意ssh时添加-o ServerAliveInterval=60命令,防止安装脚本时,终端超时断开
ssh -i <path_to_your_keypair_file> -o ServerAliveInterval=60 ubuntu@<第一步中获取的PublicIP>:~/
- 登陆到ec2之后,解压上传的zip包
sudo apt update
sudo apt install unzip
unzip llm_model_hub.zip
- 设置环境变量
export SageMakerRoleArn=<第一步cloudformation output里SageMakerRoleArn信息,如 arn:aws-cn:iam:1234567890:role/sagemaker_exection_role>
- (可选)如需要设置Swanlab或者wandb作为metrics监控看板,也可以后期在backend/.env中添加,添加之后运行pm2 restart all重启服务
export SWANLAB_API_KEY=<SWANLAB_API_KEY>
export WANDB_API_KEY=<WANDB_API_KEY>
export WANDB_BASE_URL=<WANDB_BASE_URL>
- 执行一键部署脚本
cd /home/ubuntu/llm_model_hub
bash cn-region-deploy.sh
大约40~60分钟(取决于docker镜像网站速度)之后执行完成,可以在/home/ubuntu/setup.log中查看安装日志。
- 访问
- 以上都部署完成后,前端启动之后,可以通过浏览器访问http://{ec2 PublicIP}:3000访问前端,/home/ubuntu/setup.log中查看用户名和随机密码
- 如果需要做端口转发,则参考后端配置中的nginx配置部分
- 硬件需求:一台ec2 Instance, m5.xlarge, 200GB EBS storage
- os需求:ubuntu 22.04
- 配置权限:
- 在IAM中创建一个ec2 role :adminrole-for-ec2.
- select trust type: AWS service, service: EC2,
- 添加以下2个服务的权限,AmazonSageMakerFullAccess, CloudWatchLogsFullAccess
- 把ec2 instance attach到role
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:GetObject",
"s3:PutObject",
"s3:DeleteObject",
"s3:ListBucket",
"s3:CreateBucket"
],
"Resource": [
"*"
]
},
{
"Effect": "Allow",
"Action": [
"ssmmessages:CreateControlChannel"
],
"Resource": [
"*"
]
}
]
}
- ssh 到ec2 instance
- 如果是中国区需要手动下载代码并打包传到ec2中
- 请先在能访问github的环境中执行以下命令下载代码,然后把代码打包成zip文件,上传到ec2服务器的/home/ubuntu/下。
- 使用--recurse-submodule下载代码
git clone --recurse-submodule https://github.com/aws-samples/llm_model_hub.git
unzip llm_model_hub.zip
export SageMakerRoleArn=<上面步骤创建的sagemaker_exection_role的完整arn,如 arn:aws-cn:iam:1234567890:role/sagemaker_exection_role>
- (可选)如需要设置Swanlab或者wandb作为metrics监控看板,也可以后期在backend/.env中添加,添加之后运行pm2 restart all重启服务
export SWANLAB_API_KEY=<SWANLAB_API_KEY>
export WANDB_API_KEY=<WANDB_API_KEY>
export WANDB_BASE_URL=<WANDB_BASE_URL>
cd /home/ubuntu/llm_model_hub
bash cn-region-deploy.sh
大约40~60分钟(取决于docker镜像网站速度)之后执行完成,可以在/home/ubuntu/setup.log中查看安装日志。
- 以上都部署完成后,前端启动之后,可以通过浏览器访问http://{ip}:3000访问前端,/home/ubuntu/setup.log中查看用户名和随机密码
- 如果需要做端口转发,则参考后端配置中的nginx配置部分
- 方法 1. 下载新的cloudformation 模板进行重新部署,大约12分钟部署完成一个全新的modelhub (此方法以前的job 任务数据会丢失)
- 方法 2.
- 使用一键升级脚本(1.0.6之后支持):
cd /home/ubuntu/llm_model_hub/backend/
bash 03.upgrade.sh
- 方法 3. 手动更新:
- 更新代码, 重新打包byoc镜像
git pull
git submodule update --remote
cd /home/ubuntu/llm_model_hub/backend/byoc
bash build_and_push.sh
- 重启服务
pm2 restart all
- 更新完成