Skip to content

Commit 0060886

Browse files
[CI]Update accuracy report test (#1288)
### What this PR does / why we need it? Update accuracy report test 1. Add Record commit hashes and GitHub links for both vllm and vllm-ascend in accuracy reports 2. Add accuracy result verification checks to ensure output correctness 3. Creat PR via forked repository workflow ### Does this PR introduce _any_ user-facing change? No ### How was this patch tested? dense-accuracy-test: https://github.com/vllm-project/vllm-ascend/actions/runs/15745619485 create pr via forked repository workflow: https://github.com/zhangxinyuehfad/vllm-ascend/actions/runs/15747013719/job/44385134080 accuracy report pr: #1292 Currently, the accuracy report used is old and needs to be merged into pr, retest, update new report, then close #1292 . Signed-off-by: hfadzxy <[email protected]>
1 parent 15df8be commit 0060886

File tree

3 files changed

+204
-235
lines changed

3 files changed

+204
-235
lines changed

.github/workflows/accuracy_report.yaml

Lines changed: 0 additions & 202 deletions
This file was deleted.

.github/workflows/accuracy_test.yaml

Lines changed: 141 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -45,8 +45,8 @@ on:
4545
type: choice
4646
options:
4747
- main
48-
- v0.7.3-dev
4948
- v0.9.1-dev
49+
- v0.7.3-dev
5050
models:
5151
description: 'model:'
5252
required: true
@@ -183,7 +183,28 @@ jobs:
183183
PIP_EXTRA_INDEX_URL: https://mirrors.huaweicloud.com/ascend/repos/pypi
184184
run: |
185185
pip install -r requirements-dev.txt
186-
pip install -e .
186+
pip install -v -e .
187+
188+
- name: Get vLLM commit hash and URL
189+
working-directory: ./vllm-empty
190+
run: |
191+
VLLM_COMMIT=$(git rev-parse HEAD)
192+
echo "VLLM_COMMIT=$VLLM_COMMIT" >> $GITHUB_ENV
193+
echo "VLLM_COMMIT_URL=https://github.com/vllm-project/vllm/commit/$VLLM_COMMIT" >> $GITHUB_ENV
194+
195+
- name: Get vLLM-Ascend commit hash and URL
196+
working-directory: ./vllm-ascend
197+
run: |
198+
VLLM_ASCEND_COMMIT=$(git rev-parse HEAD)
199+
echo "VLLM_ASCEND_COMMIT=$VLLM_ASCEND_COMMIT" >> $GITHUB_ENV
200+
echo "VLLM_ASCEND_COMMIT_URL=https://github.com/vllm-project/vllm-ascend/commit/$VLLM_ASCEND_COMMIT" >> $GITHUB_ENV
201+
202+
- name: Print resolved hashes and URLs
203+
run: |
204+
echo "vLLM : ${{ env.VLLM_COMMIT }}"
205+
echo "vLLM link : ${{ env.VLLM_COMMIT_URL }}"
206+
echo "vLLM-Ascend: ${{ env.VLLM_ASCEND_COMMIT }}"
207+
echo "Ascend link: ${{ env.VLLM_ASCEND_COMMIT_URL }}"
187208
188209
- name: Install lm-eval, ray, and datasets
189210
run: |
@@ -239,7 +260,12 @@ jobs:
239260
--cann_version "${{ env.GHA_CANN_VERSION }}" \
240261
--torch_npu_version "${{ env.GHA_TORCH_NPU_VERSION }}" \
241262
--torch_version "${{ env.GHA_TORCH_VERSION }}" \
242-
--vllm_version "${{ env.GHA_VLLM_VERSION }}"
263+
--vllm_version "${{ env.GHA_VLLM_VERSION }}" \
264+
--vllm_commit "${{ env.VLLM_COMMIT }}" \
265+
--vllm_ascend_commit "${{ env.VLLM_ASCEND_COMMIT }}" \
266+
--vllm_commit_url "${{ env.VLLM_COMMIT_URL }}" \
267+
--vllm_ascend_commit_url "${{ env.VLLM_ASCEND_COMMIT_URL }}" \
268+
--vllm_use_v1 "$VLLM_USE_V1"
243269
244270
- name: Generate step summary
245271
if: ${{ always() }}
@@ -251,12 +277,122 @@ jobs:
251277
SAFE_VLLM_ASCEND_VERSION="${GHA_VLLM_ASCEND_VERSION//\//-}"
252278
echo "SAFE_VLLM_ASCEND_VERSION=$SAFE_VLLM_ASCEND_VERSION" >> "$GITHUB_ENV"
253279
280+
- name: Check report first line for failure
281+
id: check_report
282+
run: |
283+
REPORT_PATH="./benchmarks/accuracy/${{ steps.report.outputs.markdown_name }}.md"
284+
echo "Scanning $REPORT_PATH for ❌ …"
285+
if grep -q '❌' "$REPORT_PATH"; then
286+
echo "contains_fail=true" >> $GITHUB_OUTPUT
287+
else
288+
echo "contains_fail=false" >> $GITHUB_OUTPUT
289+
fi
290+
254291
- name: Upload Report for V${{ matrix.vllm_use_version }}
255-
if: ${{ github.event_name == 'workflow_dispatch' }}
292+
if: ${{ github.event_name == 'workflow_dispatch' && steps.check_report.outputs.contains_fail == 'false' }}
256293
uses: actions/upload-artifact@v4
257294
with:
258-
name: "${{ env.SAFE_VLLM_ASCEND_VERSION }}-${{ steps.report.outputs.markdown_name }}-report"
295+
name: "report-${{ env.SAFE_VLLM_ASCEND_VERSION }}-${{ steps.report.outputs.markdown_name }}"
259296
path: ./benchmarks/accuracy/${{ steps.report.outputs.markdown_name }}.md
260297
if-no-files-found: warn
261298
retention-days: 90
262299
overwrite: true
300+
301+
create_pr:
302+
runs-on: ubuntu-latest
303+
needs: accuracy_tests
304+
if: ${{ github.event_name == 'workflow_dispatch' }}
305+
env:
306+
UPSTREAM_REPO: vllm-project/vllm-ascend
307+
steps:
308+
- name: Checkout repository
309+
uses: actions/checkout@v4
310+
with:
311+
repository: vllm-ascend-ci/vllm-ascend
312+
token: ${{ secrets.PAT_TOKEN }}
313+
ref: main
314+
315+
- name: Add upstream remote
316+
run: |
317+
git remote add upstream https://github.com/${{ env.UPSTREAM_REPO }}.git
318+
git fetch upstream
319+
git remote -v
320+
321+
- name: Set Git user info dynamically
322+
run: |
323+
git config user.name "${{ github.actor }}"
324+
git config user.email "${{ github.actor }}@users.noreply.github.com"
325+
326+
- name: Create or switch to branch
327+
run: |
328+
TIMESTAMP=$(date +%Y%m%d%H%M%S)
329+
BRANCH_NAME="auto-pr/accuracy-report-${TIMESTAMP}"
330+
echo "BRANCH_NAME=${BRANCH_NAME}" >> $GITHUB_ENV
331+
git checkout -B "${BRANCH_NAME}" upstream/${{ github.event.inputs.vllm-ascend-version }}
332+
333+
- name: Download only current run reports
334+
uses: actions/download-artifact@v4
335+
with:
336+
path: ./docs/source/developer_guide/evaluation/accuracy_report
337+
pattern: report-*
338+
github-token: ${{ secrets.GITHUB_TOKEN }}
339+
run-id: ${{ github.run_id }}
340+
341+
- name: Delete old report
342+
run: |
343+
find ./docs/source/developer_guide/evaluation/accuracy_report -maxdepth 1 -type f -name '*.md' ! -name 'index.md' -delete
344+
find ./docs/source/developer_guide/evaluation/accuracy_report -mindepth 2 -type f -name '*.md' -exec mv -f {} ./docs/source/developer_guide/evaluation/accuracy_report \;
345+
find ./docs/source/developer_guide/evaluation/accuracy_report -mindepth 1 -type d -empty -delete
346+
347+
- name: Update accuracy_report/index.md
348+
run: |
349+
REPORT_DIR="./docs/source/developer_guide/evaluation/accuracy_report"
350+
INDEX_MD="$REPORT_DIR/index.md"
351+
{
352+
echo "# Accuracy Report"
353+
echo ""
354+
echo ":::{toctree}"
355+
echo ":caption: Accuracy Report"
356+
echo ":maxdepth: 1"
357+
358+
for report in "$REPORT_DIR"/*.md; do
359+
filename="$(basename "$report" .md)"
360+
if [ "$filename" != "index" ]; then
361+
echo "$filename"
362+
fi
363+
done
364+
echo ":::"
365+
} > "$INDEX_MD"
366+
367+
- name: push accuracy report
368+
env:
369+
GITHUB_TOKEN: ${{ secrets.PAT_TOKEN }}
370+
run: |
371+
git add ./docs/source/developer_guide/evaluation/accuracy_report/*.md
372+
git commit -s -m "[Doc] Update accuracy reports for ${{ github.event.inputs.vllm-ascend-version }}"
373+
git push -f origin "${{ env.BRANCH_NAME }}"
374+
375+
- name: Create PR in upstream via API
376+
uses: actions/github-script@v6
377+
with:
378+
github-token: ${{ secrets.PAT_TOKEN }}
379+
script: |
380+
const pr = await github.rest.pulls.create({
381+
owner: 'vllm-project',
382+
repo: 'vllm-ascend',
383+
head: `${{ github.actor }}:${{ env.BRANCH_NAME }}`,
384+
base: '${{ github.event.inputs.vllm-ascend-version }}',
385+
title: `[Doc] Update accuracy reports for ${{ github.event.inputs.vllm-ascend-version }}`,
386+
body: `The accuracy results running on NPU Altlas A2 have changed, updating reports for:
387+
${{
388+
github.event.inputs.models == 'all'
389+
&& 'All models (Qwen2.5-7B-Instruct, Qwen2.5-VL-7B-Instruct, Qwen3-8B-Base)'
390+
|| github.event.inputs.models
391+
}}
392+
393+
- [Workflow run][1]
394+
395+
[1]: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}`
396+
});
397+
core.info(`Created PR #${pr.data.number}`);
398+

0 commit comments

Comments
 (0)