Skip to content

Commit c5674e4

Browse files
vermouth1992chenhaiq
authored andcommitted
[ci] feat: migrate gpu_unit_tests to volcengine (verl-project#3872)
### What does this PR do? - As title ### Checklist Before Starting - [ ] Search for similar PRs. Paste at least one query link here: ... - [ ] Format the PR title as `[{modules}] {type}: {description}` (This will be checked by the CI) - `{modules}` include `fsdp`, `megatron`, `sglang`, `vllm`, `rollout`, `trainer`, `ci`, `training_utils`, `recipe`, `hardware`, `deployment`, `ray`, `worker`, `single_controller`, `misc`, `perf`, `model`, `algo`, `env`, `tool`, `ckpt`, `doc`, `data` - If this PR involves multiple modules, separate them with `,` like `[megatron, fsdp, doc]` - `{type}` is in `feat`, `fix`, `refactor`, `chore`, `test` - If this PR breaks any API (CLI arguments, config, function signature, etc.), add `[BREAKING]` to the beginning of the title. - Example: `[BREAKING][fsdp, megatron] feat: dynamic batching` ### Test > For changes that can not be tested by CI (e.g., algorithm implementation, new model support), validate by experiment(s) and show results like training curve plots, evaluation results, etc. ### API and Usage Example > Demonstrate how the API changes if any, and provide usage example(s) if possible. ```python # Add code snippet or script demonstrating how to use this ``` ### Design & Code Changes > Demonstrate the high-level design if this PR is complex, and list the specific changes. ### Checklist Before Submitting > [!IMPORTANT] > Please check all the following items before requesting a review, otherwise the reviewer might deprioritize this PR for review. - [ ] Read the [Contribute Guide](https://github.com/volcengine/verl/blob/main/CONTRIBUTING.md). - [ ] Apply [pre-commit checks](https://github.com/volcengine/verl/blob/main/CONTRIBUTING.md#code-linting-and-formatting): `pre-commit install && pre-commit run --all-files --show-diff-on-failure --color=always` - [ ] Add / Update [the documentation](https://github.com/volcengine/verl/tree/main/docs). - [ ] Add unit or end-to-end test(s) to [the CI workflow](https://github.com/volcengine/verl/tree/main/.github/workflows) to cover all the code. If not feasible, explain why: ... - [ ] Once your PR is ready for CI, send a message in [the `ci-request` channel](https://verl-project.slack.com/archives/C091TCESWB1) in [the `verl` Slack workspace](https://join.slack.com/t/verl-project/shared_invite/zt-3855yhg8g-CTkqXu~hKojPCmo7k_yXTQ). (If not accessible, please try [the Feishu group (飞书群)](https://applink.larkoffice.com/client/chat/chatter/add_by_link?link_token=772jd4f1-cd91-441e-a820-498c6614126a).)
1 parent 55caa24 commit c5674e4

File tree

1 file changed

+42
-9
lines changed

1 file changed

+42
-9
lines changed

.github/workflows/gpu_unit_tests.yml

Lines changed: 42 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -70,19 +70,36 @@ concurrency:
7070
permissions:
7171
contents: read
7272

73+
env:
74+
IMAGE: "verl-ci-cn-beijing.cr.volces.com/verlai/verl:app-verl0.6-transformers4.56.1-sglang0.5.2-mcore0.13.0-te2.2"
75+
DYNAMIC_RUNNER_ENDPOINT: "https://sd10g3clalm04ug7alq90.apigateway-cn-beijing.volceapi.com/runner"
76+
7377
jobs:
78+
setup:
79+
if: github.repository_owner == 'volcengine'
80+
runs-on: ubuntu-latest
81+
outputs:
82+
runner-label: ${{ steps.create-runner.outputs.runner-label }}
83+
mlp-task-id: ${{ steps.create-runner.outputs.mlp-task-id }}
84+
steps:
85+
- uses: actions/checkout@v4
86+
- id: create-runner
87+
uses: volcengine/vemlp-github-runner@v1
88+
with:
89+
mode: "create"
90+
faas-url: "${{ env.DYNAMIC_RUNNER_ENDPOINT }}"
91+
mlp-image: "${{ env.IMAGE }}"
92+
7493
gpu_unit_tests:
7594
if: github.repository_owner == 'volcengine'
76-
runs-on: [L20x8]
95+
needs: setup
96+
runs-on: [ "${{ needs.setup.outputs.runner-label || 'L20x8' }}" ]
7797
timeout-minutes: 60 # Increase this timeout value as needed
7898
env:
7999
HTTP_PROXY: ${{ secrets.PROXY_HTTP }}
80100
HTTPS_PROXY: ${{ secrets.PROXY_HTTPS }}
81101
NO_PROXY: "localhost,127.0.0.1"
82102
HF_HUB_ENABLE_HF_TRANSFER: 1
83-
container:
84-
image: verlai/verl:app-verl0.6-transformers4.56.1-sglang0.5.2-mcore0.13.0-te2.2
85-
options: --gpus all --shm-size=10g
86103
steps:
87104
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
88105
with:
@@ -94,11 +111,11 @@ jobs:
94111
pip3 install --upgrade "ray>=2.40.0"
95112
pip3 install cupy-cuda12x
96113
pip3 install mlflow
97-
- name: Download Model to Use
98-
run: |
99-
huggingface-cli download Qwen/Qwen2.5-0.5B-Instruct
100-
huggingface-cli download Qwen/Qwen2.5-1.5B-Instruct
101-
export HF_HUB_OFFLINE=1
114+
# - name: Download Model to Use
115+
# run: |
116+
# huggingface-cli download Qwen/Qwen2.5-0.5B-Instruct
117+
# huggingface-cli download Qwen/Qwen2.5-1.5B-Instruct
118+
# export HF_HUB_OFFLINE=1
102119
# Disable requests to avoid network errors
103120
- name: Run all GPU unit tests
104121
run: |
@@ -112,3 +129,19 @@ jobs:
112129
- name: Testing FSDP2 critic functionality
113130
run: |
114131
torchrun --standalone --nnodes=1 --nproc-per-node=2 tests/workers/critic/test_special_dp_critic.py
132+
133+
cleanup:
134+
runs-on: ubuntu-latest
135+
needs:
136+
[
137+
setup,
138+
gpu_unit_tests,
139+
]
140+
if: always()
141+
steps:
142+
- id: destroy-runner
143+
uses: volcengine/vemlp-github-runner@v1
144+
with:
145+
mode: "destroy"
146+
faas-url: "${{ env.DYNAMIC_RUNNER_ENDPOINT }}"
147+
mlp-task-id: "${{ needs.setup.outputs.mlp-task-id }}"

0 commit comments

Comments
 (0)