Files
sci-gui-agent-benchmark/desktop_env/providers/volcengine/VOLCENGINE_GUIDELINE_CN.md
2025-08-15 18:53:13 +08:00

128 lines
5.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 火山引擎ECS提供商配置指南
本指南介绍如何为OSWorld桌面环境配置和使用火山引擎ECS。
## 配置流程
1. **火山引擎账户**您需要一个有效的火山引擎账户本脚本默认ECS通过按量付费方式拉起需保证账户余额在100以上。
2. **访问密钥**在火山引擎IAM控制台中创建AccessKey ID和SecretAccessKey并授权ECS控制权限
3. **VPC设置**在目标地域创建VPC、子网和安全组
4. **自定义镜像**创建OSWorld自定义镜像
5. 建议手动完成一次ECS创建流程后记录所有需要的环境变量信息。
## 环境变量
在您的`.env`文件中设置以下环境变量:
```bash
# 火山引擎访问凭证
VOLCENGINE_ACCESS_KEY_ID=your_access_key_id
VOLCENGINE_SECRET_ACCESS_KEY=your_secret_access_key
# ECS配置信息
VOLCENGINE_REGION=eu-central-1
VOLCENGINE_IMAGE_ID=your_image_id
VOLCENGINE_INSTANCE_TYPE=ecs.e-c1m2.large
VOLCENGINE_SUBNET_ID=subnet-xxxxxxxxx
VOLCENGINE_SECURITY_GROUP_ID=sg-xxxxxxxxx
VOLCENGINE_ZONE_ID=zone-xxxxxxxxx
VOLCENGINE_DEFAULT_PASSWORD=your_default_password
```
## 所需火山引擎资源
### 1. VPC和子网
- 在目标地域创建VPC
- 在VPC内创建子网
- 确保子网具有互联网访问能力以支持VNC连接
### 2. 安全组
**⚠️ 重要提示**请严格按照以下端口设置以防止OSWorld任务因连接问题而失败
#### 入方向规则需要8条规则
| 类型 | 协议 | 端口范围 | 源地址 | 描述 |
|------|------|----------|--------|------|
| SSH | TCP | 22 | 0.0.0.0/0 | SSH访问 |
| HTTP | TCP | 80 | 172.31.0.0/16 | HTTP流量 |
| 自定义TCP | TCP | 5000 | 172.31.0.0/16 | OSWorld后端服务 |
| 自定义TCP | TCP | 5910 | 0.0.0.0/0 | NoVNC可视化端口 |
| 自定义TCP | TCP | 8006 | 172.31.0.0/16 | VNC服务端口 |
| 自定义TCP | TCP | 8080 | 172.31.0.0/16 | VLC服务端口 |
| 自定义TCP | TCP | 8081 | 172.31.0.0/16 | 附加服务端口 |
| 自定义TCP | TCP | 9222 | 172.31.0.0/16 | Chrome控制端口 |
#### 出方向规则需要1条规则
| 类型 | 协议 | 端口范围 | 目标地址 | 描述 |
|------|------|----------|----------|------|
| 全部流量 | 全部 | 全部 | 0.0.0.0/0 | 允许所有出站流量 |
### 3. 自定义镜像
您需要为火山引擎ECS创建自定义OSWorld镜像。请按照"为OSWorld创建自定义ECS镜像"部分的说明进行操作。
## 为OSWorld创建自定义ECS镜像
本部分提供如何创建OSWorld桌面环境所需的自定义ECS镜像的指导。该过程包括设置带有桌面环境和VNC服务器的基础实例然后从中创建自定义镜像。
### 分步镜像创建过程
#### 步骤1上传现有qcow2镜像到火山引擎
-`desktop_env/providers/docker/manager.py`中的链接下载提供的qcow2镜像https://huggingface.co/datasets/xlangai/ubuntu_osworld/resolve/main/Ubuntu.qcow2.zip
- 解压下载的文件并上传到火山引擎对象存储服务TOS。确保TOS与您要启动ECS实例的目标地域在同一地域。
- 在您的ECS控制台中转到"镜像"页面,您将看到"导入镜像"按钮。点击它并按照说明从TOS导入qcow2镜像。
- 导入完成后,您将在"镜像"列表中看到导入的镜像。
#### 步骤2创建新镜像
请注意您在步骤1中创建的镜像分辨率与您想要用于OSWorld的分辨率1920x1080不同。我们需要自定义镜像以具有正确的分辨率并设置noVNC。
- 转到"实例"选项卡,使用导入的镜像创建新实例。
- 通过VNC连接到正在运行的实例。
- 连接到实例后,请打开终端并下载此配置脚本:`https://gist.githubusercontent.com/qykong/bea58ff98f20057d3a69921276dd4553/raw/cd1a91a0840c4192d793f43cfb90553370343b08/config.sh`
- 运行脚本并重启您的实例。
- 重启后实例将具有正确的分辨率和noVNC设置。您可以通过"http://<your_instance_public_ip>:5910/vnc.html"连接到实例确保您的安全组允许端口5910
- 将正在运行的实例保存为新镜像。新镜像将用作OSWorld镜像。
## 使用说明
### 启动OSWorld任务
```bash
python run_multienv_qwen25vl.py \
--provider_name volcengine \
--region eu-central-1 \
--num_envs 2 \
--model qwen2.5-vl-72b-instruct \
--action_space pyautogui \
--observation_type screenshot \
--max_steps 15 \
--domain chrome
```
### 监控实例状态
- 在火山引擎控制台中查看实例运行状态
- 通过VNC URL访问远程桌面`http://<public_ip>:5910/vnc.html`
- 查看日志文件了解任务执行情况
### 清理资源
- 任务完成后,实例会自动终止
- 如需手动清理,可在控制台中删除相关实例
- 建议定期清理不再使用的镜像以节省存储成本
## 故障排除
### 常见问题
1. **实例启动失败**检查账户余额、镜像ID和实例类型配置
2. **VNC连接失败**确认安全组端口5910已开放
3. **网络连接问题**:验证子网配置和路由表设置
4. **镜像导入失败**检查TOS权限和镜像格式
### 日志查看
- 查看控制台日志:`logs/normal-YYYYMMDD@HHMMSS.log`
- 查看调试日志:`logs/debug-YYYYMMDD@HHMMSS.log`
- 查看实例系统日志通过VNC连接查看系统日志
## 成本优化建议
1. **实例类型选择**:根据任务复杂度选择合适的实例类型
2. **镜像优化**:定期清理未使用的镜像
3. **批量任务**:合理设置并发数量以平衡性能和成本
4. **监控使用**:定期查看资源使用情况,及时调整配置