From a22083d34864465d070fad808aee30943172b477 Mon Sep 17 00:00:00 2001 From: liujie44 Date: Wed, 26 Aug 2026 10:43:15 +0800 Subject: [PATCH 01/13] add CI --- .../workflows/alignment_model_accuracy.yml | 166 ++++++++++++++++++ .github/workflows/build.yml | 128 ++++++++++++++ scripts/dependence/build.sh | 73 ++++++++ 3 files changed, 367 insertions(+) create mode 100644 .github/workflows/alignment_model_accuracy.yml create mode 100644 .github/workflows/build.yml create mode 100644 scripts/dependence/build.sh diff --git a/.github/workflows/alignment_model_accuracy.yml b/.github/workflows/alignment_model_accuracy.yml new file mode 100644 index 00000000000..b914b277d37 --- /dev/null +++ b/.github/workflows/alignment_model_accuracy.yml @@ -0,0 +1,166 @@ +name: Alignment Model Accuracy + +on: + pull_request: + workflow_dispatch: + +concurrency: + group: Alignment-${{ github.workflow }}-${{ github.event.pull_request.number }} + cancel-in-progress: true + +env: + BRANCH: ${{ github.event.pull_request.base.ref || github.ref_name }} + COMMIT_ID: ${{ github.event.pull_request.head.sha || github.sha }} + PR_ID: ${{ github.event.pull_request.number }} + work_dir: ${{ github.workspace }} + python_version: 3.12 + TASK: Megatron-LM-${{ github.sha }}-alignment + CE_name: alignment-Megatron-LM + no_proxy: "localhost,bj.bcebos.com,su.bcebos.com,bcebos.com,apiin.im.baidu.com,gitee.com,aliyun.com,.baidu.com,.tuna.tsinghua.edu.cn" + +defaults: + run: + shell: bash + +jobs: + alignment_model_accuracy: + name: alignment_model_accuracy + runs-on: + group: h20-2c + steps: + - name: Determine the runner + run: | + runner_name=`(echo $PWD|awk -F '/' '{print $3}')` + echo $runner_name + wget -q https://xly-devops.bj.bcebos.com/utils.sh + source utils.sh + determine_gpu_runner ${runner_name} + - name: Determine Image Name + run: | + echo "IMAGE_NAME=ccr-2vdh3abv-pub.cnc.bj.baidubce.com/paddlepaddle/paddle:ubuntu24-cuda130-py312-dev" >> "$GITHUB_ENV" + - name: Run Container + run: | + container_name=${TASK}-$(date +%Y%m%d-%H%M%S) + echo "container_name=${container_name}" >> "$GITHUB_ENV" + docker run -d -t --name ${container_name} --net=host --gpus all --shm-size=32G \ + -v /dev/shm:/dev/shm \ + -v $work_dir/../../..:$work_dir/../../.. \ + -v $work_dir:/workspace \ + -v /home/.cache/pip:/home/.cache/pip \ + -v /ssd4/MODELDATA:/home/.cache \ + -e "BRANCH=$BRANCH" \ + -e "COMMIT_ID=$COMMIT_ID" \ + -e "PR_ID=$PR_ID" \ + -e "work_dir=$work_dir" \ + -e no_proxy \ + -e CE_name \ + -e python_version \ + -w /workspace $IMAGE_NAME + - name: Checkout Code + run: | + docker exec -t $container_name /bin/bash -c ' + rm -rf * .[^.]* + source $work_dir/../../../proxy + echo "Download PaddleFleet form https://paddle-qa.bj.bcebos.com/CodeSync/develop/PaddleFleet.tar" + wget -q --no-proxy https://paddle-qa.bj.bcebos.com/CodeSync/develop/PaddleFleet.tar --no-check-certificate + rm -rf PaddleFleet && tar xf PaddleFleet.tar && rm -rf PaddleFleet.tar + cd PaddleFleet && git pull && cd - + + echo "Download Megatron-LM form https://paddle-github-action.bj.bcebos.com/whl/Megatron-LM.tar.gz" + wget -q --no-proxy https://paddle-github-action.bj.bcebos.com/whl/Megatron-LM.tar.gz --no-check-certificate + rm -rf Megatron-LM && tar zxf Megatron-LM.tar.gz && rm -rf Megatron-LM.tar.gz + cd Megatron-LM + git config --global --add safe.directory /workspace/Megatron-LM + git pull + git submodule update --init --recursive --force + if [ -n "$PR_ID" ] && [ "$PR_ID" != "0" ]; then + git fetch origin pull/${PR_ID}/head + git checkout -b PR_${PR_ID} FETCH_HEAD + git remote add upstream https://github.com/PFCCLab/Megatron-LM.git + echo "Checking out ${BRANCH}..." + git fetch upstream ${BRANCH}:${BRANCH} + git merge ${BRANCH} --no-edit + git diff --numstat ${BRANCH} -- | awk "{print \$NF}" + else + echo "Not in a pull_request event. Skipping PR-specific operations." + fi + git log --pretty=oneline -10 + ' + - name: Change python version + run: | + docker exec -i -e "work_dir=$work_dir" -e "python_version=$python_version" $container_name /bin/bash <<-DOCKER_EOF + echo "Change python version to $python_version" + set -e + cp ${work_dir}/../../../Miniforge3-Linux-x86_64.sh /tmp/miniforge.sh + bash /tmp/miniforge.sh -b -p /opt/conda + /opt/conda/bin/conda create -n py_\$python_version python=\$python_version -y \ + --override-channels \ + -c conda-forge + . /opt/conda/etc/profile.d/conda.sh + conda activate py_\$python_version + python --version + DOCKER_EOF + - name: Get Whl + run: | + docker exec -t $container_name /bin/bash -c ' + . /opt/conda/etc/profile.d/conda.sh + conda activate py_$python_version + python --version + ldconfig + + BOS=https://paddle-github-action.bj.bcebos.com + echo "::group::Download paddlefleet / paddlefleet_ops / ms_swift wheels from BOS" + cd /workspace + for url in \ + $BOS/PaddleFleet/develop/latest/paddlefleet-0.0.0-py3-none-linux_x86_64.whl \ + $BOS/PaddleFleet/develop/latest/cu130/paddle-release/paddlefleet_ops-0.0.0-cp312-cp312-linux_x86_64.whl \ + $BOS/whl/ms_swift-0.0.0-py3-none-any.whl ; do + echo "Downloading $url" + wget -q --no-proxy --no-check-certificate --tries=3 --timeout=60 "$url" + done + ls -l /workspace/ + echo "::endgroup::" + + echo "::group::Build megatron-core wheel" + cd /workspace/Megatron-LM + bash scripts/dependence/build.sh + ls -l /workspace/upload/ + echo "::endgroup::" + ' + - name: alignment_model_accuracy + run: | + docker exec -t $container_name /bin/bash -c ' + . /opt/conda/etc/profile.d/conda.sh + conda activate py_$python_version + python --version + ldconfig + + source $work_dir/../../../proxy + export PROXY_URL="${http_proxy}" + export PADDLEFLEET_WHEEL_PATH="/workspace/paddlefleet-0.0.0-py3-none-linux_x86_64.whl" + export PADDLEFLEET_OPS_WHEEL_PATH="/workspace/paddlefleet_ops-0.0.0-cp312-cp312-linux_x86_64.whl" + export MEGATRON_CORE_WHEEL=/workspace/upload/megatron_core-0.0.0-cp312-cp312-linux_x86_64.whl + export MS_SWIFT_WHEEL=/workspace/ms_swift-0.0.0-py3-none-any.whl + # The BOS wheels are republished under a fixed 0.0.0 filename + export UV_SKIP_WHEEL_FILENAME_CHECK=1 + + for whl in "$PADDLEFLEET_WHEEL_PATH" "$PADDLEFLEET_OPS_WHEEL_PATH" "$MS_SWIFT_WHEEL" "$MEGATRON_CORE_WHEEL"; do + [ -f "$whl" ] || { echo "::error:: missing wheel: $whl"; exit 1; } + echo "using $whl" + done + python -m pip install uv + bash PaddleFleet/scripts/alignment_model_accuracy/setup_venvs.sh + bash -x PaddleFleet/scripts/alignment_model_accuracy/run_alignment_test.sh + + model_acc_align_exit_code=$? + if [[ "$model_acc_align_exit_code" != "0" ]]; then + echo -e "::error:: \033[31m Model accuracy align failed.\033[0m" + exit 1 + else + echo -e "\033[32m Model accuracy align succeeded.\033[0m" + fi + ' + - name: Terminate And Delete the Container + if: always() + run: | + docker rm -f $container_name 2>/dev/null || true diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 00000000000..f14232c0936 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,128 @@ +name: Build Whl + +on: + pull_request: + workflow_dispatch: + schedule: + - cron: '0 16 * * *' + +env: + BRANCH: ${{ github.ref_name }} + COMMIT_ID: ${{ github.sha }} + work_dir: ${{ github.workspace }} + python_version: 3.12 + TASK: Megatron-LM-${{ github.sha }}-build + CE_name: build-megatron-lm + no_proxy: "localhost,bj.bcebos.com,su.bcebos.com,bcebos.com,apiin.im.baidu.com,gitee.com,aliyun.com,.baidu.com,.tuna.tsinghua.edu.cn" + +defaults: + run: + shell: bash + +jobs: + build: + name: build + runs-on: + group: h20-2c + steps: + - name: Determine the runner + run: | + runner_name=`(echo $PWD|awk -F '/' '{print $3}')` + echo $runner_name + wget -q https://xly-devops.bj.bcebos.com/utils.sh + source utils.sh + determine_gpu_runner ${runner_name} + - name: Determine Image Name + run: | + echo "IMAGE_NAME=ccr-2vdh3abv-pub.cnc.bj.baidubce.com/paddlepaddle/paddle:cuda130-dev" >> "$GITHUB_ENV" + - name: Run Container + run: | + container_name=${TASK}-$(date +%Y%m%d-%H%M%S) + echo "container_name=${container_name}" >> "$GITHUB_ENV" + docker run -d -t --name ${container_name} --net=host -v /dev/shm:/dev/shm --shm-size=32G \ + -v $work_dir/../../..:$work_dir/../../.. \ + -v $work_dir:/workspace \ + -v /home/.cache/pip:/home/.cache/pip \ + -e "BRANCH=$BRANCH" \ + -e "COMMIT_ID=$COMMIT_ID" \ + -e work_dir \ + -e no_proxy \ + -e CE_name \ + -e FLAGS_dynamic_static_unified_comm \ + -e python_version \ + -w /workspace $IMAGE_NAME + - name: Checkout Code + run: | + docker exec -t $container_name /bin/bash -c ' + rm -rf * .[^.]* + echo "Download Megatron-LM form https://paddle-github-action.bj.bcebos.com/whl/Megatron-LM.tar.gz" + wget -q --no-proxy https://paddle-github-action.bj.bcebos.com/whl/Megatron-LM.tar.gz --no-check-certificate + rm -rf Megatron-LM && tar --warning=no-unknown-keyword -zxf Megatron-LM.tar.gz && rm -rf Megatron-LM.tar.gz + source $work_dir/../../../proxy + cd Megatron-LM + git pull + git fetch origin pull/${{ github.event.pull_request.number }}/head:pr-${{ github.event.pull_request.number }} + git checkout pr-${{ github.event.pull_request.number }} + git log --pretty=oneline -10 + ' + - name: Change python version + run: | + docker exec -i -e "work_dir=$work_dir" -e "python_version=$python_version" $container_name /bin/bash <<-DOCKER_EOF + echo "Change python version to $python_version" + set -e + cp ${work_dir}/../../../Miniforge3-Linux-x86_64.sh /tmp/miniforge.sh + bash /tmp/miniforge.sh -b -p /opt/conda + /opt/conda/bin/conda create -n py_\$python_version python=\$python_version -y \ + --override-channels \ + -c conda-forge + . /opt/conda/etc/profile.d/conda.sh + conda activate py_\$python_version + python --version + DOCKER_EOF + - name: Build Whl + run: | + docker exec -t $container_name /bin/bash -c ' + . /opt/conda/etc/profile.d/conda.sh + conda activate py_$python_version + python --version + ldconfig + pip config set global.cache-dir "/home/.cache/pip" + set -e + cd /workspace/Megatron-LM && git config --global --add safe.directory $PWD + bash scripts/dependence/build.sh + ' + - name: Upload Products + env: + bos_file: ${{ github.workspace }}/bos_retry/BosClient.py + if: always() + run: | + docker exec -t $container_name /bin/bash -c ' + echo "::group::Install bce-python-sdk" + python -m pip install bce-python-sdk==0.8.74 + echo "::endgroup::" + export AK=paddle + export SK=paddle + if [ ! -f "${{ env.bos_file }}" ]; then + wget -q --no-proxy -O /workspace/bos_retry.tar.gz https://xly-devops.bj.bcebos.com/home/bos_retry.tar.gz --no-check-certificate + mkdir /workspace/bos_retry + tar xf /workspace/bos_retry.tar.gz -C /workspace/bos_retry + fi + cd /workspace/upload + for FILE in /workspace/upload/*.whl; do + file=$(basename "$FILE") + python ${{ env.bos_file }} $file paddle-github-action/whl + echo "$file: https://paddle-github-action.bj.bcebos.com/whl/$file" + done + TAR_FILE=/workspace/upload/Megatron-LM.tar.gz + if [ -e "$TAR_FILE" ]; then + file=$(basename "$TAR_FILE") + python ${{ env.bos_file }} $file paddle-github-action/whl + echo "$file: https://paddle-github-action.bj.bcebos.com/whl/$file" + else + echo "Megatron-LM.tar.gz not found, skip upload" + fi + ' + - name: Terminate And Delete the Container + if: always() + run: | + docker rm -f $container_name 2>/dev/null || true diff --git a/scripts/dependence/build.sh b/scripts/dependence/build.sh new file mode 100644 index 00000000000..88dc96f6818 --- /dev/null +++ b/scripts/dependence/build.sh @@ -0,0 +1,73 @@ +#!/usr/bin/env bash + +# Copyright (c) 2026 PaddlePaddle Authors. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +set -e +export megatron_dir=/workspace/Megatron-LM +mkdir -p /workspace/build_logs +export log_path=/workspace/build_logs +mkdir -p /workspace/upload +upload_path=/workspace/upload + +python -m pip config --user set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple +python -m pip config --user set global.trusted-host pypi.tuna.tsinghua.edu.cn + +megatron_tar (){ + cd /workspace + # Megatron-LM.tar only include the main branch + if [ -n "$BRANCH" ] && [ "$BRANCH" = "main" ]; then + echo "Checkout branch $BRANCH" + tar -zcf Megatron-LM.tar.gz Megatron-LM/ + mv Megatron-LM.tar.gz ${upload_path}/ + else + echo "No BRANCH specified, skip checkout" + fi +} + +megatron_build (){ + cd $megatron_dir + rm -rf di/ + rm -rf dist/ + rm -rf megatron_core.egg-info/ + + python -m pip install --upgrade pip + python -m pip install build "setuptools>=80" pybind11 packaging + NO_VCS_VERSION=1 python -m build --wheel --no-isolation + + echo "install_megatron_develop_whl" + python -m pip install --ignore-installed dist/megatron_core-*.whl --no-cache-dir --force-reinstall --no-dependencies + + commit=${COMMIT_ID:-unknown} + commit=${commit:0:7} + + whl_file=$(ls $megatron_dir/dist/megatron_core-*.whl) + base_name=$(basename $whl_file) + new_name=$(echo $base_name | sed "s/^\(megatron_core-[0-9.]*\)-/\1+${commit}-/") + echo "commit whl: $new_name" + cp "$whl_file" "${upload_path}/${new_name}" + cp "$whl_file" "${upload_path}/${base_name}" + + zero_name=$(echo $base_name | sed "s/^megatron_core-[^-]*-/megatron_core-0.0.0-/") + echo "0.0.0 whl: $zero_name" + cp "$whl_file" "${upload_path}/${zero_name}" +} + +# main +cd ${megatron_dir} +echo -e "\033[32m ---- make Megatron-LM.tar.gz \033[0m" +megatron_tar +echo -e "\033[32m ---- build Megatron-LM whl \033[0m" +megatron_build + From dbf993555e90119e4f2679b363bb072e669da0e4 Mon Sep 17 00:00:00 2001 From: liujie44 Date: Wed, 26 Aug 2026 15:51:16 +0800 Subject: [PATCH 02/13] remove build pr --- .github/workflows/build.yml | 3 --- 1 file changed, 3 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index f14232c0936..c3d8c7e2f8a 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -1,7 +1,6 @@ name: Build Whl on: - pull_request: workflow_dispatch: schedule: - cron: '0 16 * * *' @@ -61,8 +60,6 @@ jobs: source $work_dir/../../../proxy cd Megatron-LM git pull - git fetch origin pull/${{ github.event.pull_request.number }}/head:pr-${{ github.event.pull_request.number }} - git checkout pr-${{ github.event.pull_request.number }} git log --pretty=oneline -10 ' - name: Change python version From 8bf3783f82ae16ce5ab43c1db9029b41abfff6a4 Mon Sep 17 00:00:00 2001 From: liujie44 Date: Wed, 26 Aug 2026 16:31:27 +0800 Subject: [PATCH 03/13] test --- .github/workflows/alignment_model_accuracy.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/alignment_model_accuracy.yml b/.github/workflows/alignment_model_accuracy.yml index b914b277d37..8cc210cb38d 100644 --- a/.github/workflows/alignment_model_accuracy.yml +++ b/.github/workflows/alignment_model_accuracy.yml @@ -134,7 +134,6 @@ jobs: conda activate py_$python_version python --version ldconfig - source $work_dir/../../../proxy export PROXY_URL="${http_proxy}" export PADDLEFLEET_WHEEL_PATH="/workspace/paddlefleet-0.0.0-py3-none-linux_x86_64.whl" From d26f5637abe92026cf65a2ffa899d951acff2f27 Mon Sep 17 00:00:00 2001 From: liujie44 Date: Wed, 26 Aug 2026 18:55:46 +0800 Subject: [PATCH 04/13] fix path name --- .github/workflows/alignment_model_accuracy.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/alignment_model_accuracy.yml b/.github/workflows/alignment_model_accuracy.yml index 8cc210cb38d..0fc0b2c49e5 100644 --- a/.github/workflows/alignment_model_accuracy.yml +++ b/.github/workflows/alignment_model_accuracy.yml @@ -138,12 +138,12 @@ jobs: export PROXY_URL="${http_proxy}" export PADDLEFLEET_WHEEL_PATH="/workspace/paddlefleet-0.0.0-py3-none-linux_x86_64.whl" export PADDLEFLEET_OPS_WHEEL_PATH="/workspace/paddlefleet_ops-0.0.0-cp312-cp312-linux_x86_64.whl" - export MEGATRON_CORE_WHEEL=/workspace/upload/megatron_core-0.0.0-cp312-cp312-linux_x86_64.whl - export MS_SWIFT_WHEEL=/workspace/ms_swift-0.0.0-py3-none-any.whl + export MEGATRON_CORE_WHEEL_PATH=/workspace/upload/megatron_core-0.0.0-cp312-cp312-linux_x86_64.whl + export MS_SWIFT_WHEEL_PATH=/workspace/ms_swift-0.0.0-py3-none-any.whl # The BOS wheels are republished under a fixed 0.0.0 filename export UV_SKIP_WHEEL_FILENAME_CHECK=1 - for whl in "$PADDLEFLEET_WHEEL_PATH" "$PADDLEFLEET_OPS_WHEEL_PATH" "$MS_SWIFT_WHEEL" "$MEGATRON_CORE_WHEEL"; do + for whl in "$PADDLEFLEET_WHEEL_PATH" "$PADDLEFLEET_OPS_WHEEL_PATH" "$MS_SWIFT_WHEEL_PATH" "$MEGATRON_CORE_WHEEL_PATH"; do [ -f "$whl" ] || { echo "::error:: missing wheel: $whl"; exit 1; } echo "using $whl" done From 4f763889504becc2f2f499413bd149ec41d54a13 Mon Sep 17 00:00:00 2001 From: liujie44 Date: Thu, 27 Aug 2026 11:29:13 +0800 Subject: [PATCH 05/13] test --- .github/workflows/alignment_model_accuracy.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/alignment_model_accuracy.yml b/.github/workflows/alignment_model_accuracy.yml index 0fc0b2c49e5..91853a2a2e9 100644 --- a/.github/workflows/alignment_model_accuracy.yml +++ b/.github/workflows/alignment_model_accuracy.yml @@ -140,7 +140,7 @@ jobs: export PADDLEFLEET_OPS_WHEEL_PATH="/workspace/paddlefleet_ops-0.0.0-cp312-cp312-linux_x86_64.whl" export MEGATRON_CORE_WHEEL_PATH=/workspace/upload/megatron_core-0.0.0-cp312-cp312-linux_x86_64.whl export MS_SWIFT_WHEEL_PATH=/workspace/ms_swift-0.0.0-py3-none-any.whl - # The BOS wheels are republished under a fixed 0.0.0 filename + # The BOS wheels are republished under a fixed 0.0.0 filename export UV_SKIP_WHEEL_FILENAME_CHECK=1 for whl in "$PADDLEFLEET_WHEEL_PATH" "$PADDLEFLEET_OPS_WHEEL_PATH" "$MS_SWIFT_WHEEL_PATH" "$MEGATRON_CORE_WHEEL_PATH"; do From 172b5b9812c39d8aa9cd9c28c9aa77aa438b6052 Mon Sep 17 00:00:00 2001 From: liujie44 Date: Thu, 27 Aug 2026 14:22:57 +0800 Subject: [PATCH 06/13] rerun --- .github/workflows/alignment_model_accuracy.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/alignment_model_accuracy.yml b/.github/workflows/alignment_model_accuracy.yml index 91853a2a2e9..0fc0b2c49e5 100644 --- a/.github/workflows/alignment_model_accuracy.yml +++ b/.github/workflows/alignment_model_accuracy.yml @@ -140,7 +140,7 @@ jobs: export PADDLEFLEET_OPS_WHEEL_PATH="/workspace/paddlefleet_ops-0.0.0-cp312-cp312-linux_x86_64.whl" export MEGATRON_CORE_WHEEL_PATH=/workspace/upload/megatron_core-0.0.0-cp312-cp312-linux_x86_64.whl export MS_SWIFT_WHEEL_PATH=/workspace/ms_swift-0.0.0-py3-none-any.whl - # The BOS wheels are republished under a fixed 0.0.0 filename + # The BOS wheels are republished under a fixed 0.0.0 filename export UV_SKIP_WHEEL_FILENAME_CHECK=1 for whl in "$PADDLEFLEET_WHEEL_PATH" "$PADDLEFLEET_OPS_WHEEL_PATH" "$MS_SWIFT_WHEEL_PATH" "$MEGATRON_CORE_WHEEL_PATH"; do From 3fbf904fd8f92b35fe121ff2fdecb84c52e58376 Mon Sep 17 00:00:00 2001 From: liujie44 Date: Thu, 27 Aug 2026 14:40:49 +0800 Subject: [PATCH 07/13] test old whl --- .github/workflows/alignment_model_accuracy.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/alignment_model_accuracy.yml b/.github/workflows/alignment_model_accuracy.yml index 0fc0b2c49e5..bd0f2b12094 100644 --- a/.github/workflows/alignment_model_accuracy.yml +++ b/.github/workflows/alignment_model_accuracy.yml @@ -123,7 +123,9 @@ jobs: echo "::group::Build megatron-core wheel" cd /workspace/Megatron-LM - bash scripts/dependence/build.sh + # bash scripts/dependence/build.sh + wget -q https://paddle-github-action.bj.bcebos.com/whl/megatron_core-0.0.0-cp312-cp312-linux_x86_64.whl + mv megatron_core-0.0.0-cp312-cp312-linux_x86_64.whl /workspace/upload/ ls -l /workspace/upload/ echo "::endgroup::" ' From c8195696924036d569e596d6eb659ac8a8be4f6c Mon Sep 17 00:00:00 2001 From: liujie44 Date: Thu, 27 Aug 2026 14:57:32 +0800 Subject: [PATCH 08/13] rerun --- .github/workflows/alignment_model_accuracy.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/alignment_model_accuracy.yml b/.github/workflows/alignment_model_accuracy.yml index bd0f2b12094..b0c5768978d 100644 --- a/.github/workflows/alignment_model_accuracy.yml +++ b/.github/workflows/alignment_model_accuracy.yml @@ -123,7 +123,7 @@ jobs: echo "::group::Build megatron-core wheel" cd /workspace/Megatron-LM - # bash scripts/dependence/build.sh + # bash scripts/dependence/build.sh #test wget -q https://paddle-github-action.bj.bcebos.com/whl/megatron_core-0.0.0-cp312-cp312-linux_x86_64.whl mv megatron_core-0.0.0-cp312-cp312-linux_x86_64.whl /workspace/upload/ ls -l /workspace/upload/ From ecbc7b64747bd49fed0413beb204c74c3f9f0359 Mon Sep 17 00:00:00 2001 From: liujie44 Date: Thu, 27 Aug 2026 15:41:58 +0800 Subject: [PATCH 09/13] fix test --- .github/workflows/alignment_model_accuracy.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/alignment_model_accuracy.yml b/.github/workflows/alignment_model_accuracy.yml index b0c5768978d..0a28845ff35 100644 --- a/.github/workflows/alignment_model_accuracy.yml +++ b/.github/workflows/alignment_model_accuracy.yml @@ -123,9 +123,7 @@ jobs: echo "::group::Build megatron-core wheel" cd /workspace/Megatron-LM - # bash scripts/dependence/build.sh #test - wget -q https://paddle-github-action.bj.bcebos.com/whl/megatron_core-0.0.0-cp312-cp312-linux_x86_64.whl - mv megatron_core-0.0.0-cp312-cp312-linux_x86_64.whl /workspace/upload/ + # bash scripts/dependence/build.sh ls -l /workspace/upload/ echo "::endgroup::" ' @@ -140,7 +138,9 @@ jobs: export PROXY_URL="${http_proxy}" export PADDLEFLEET_WHEEL_PATH="/workspace/paddlefleet-0.0.0-py3-none-linux_x86_64.whl" export PADDLEFLEET_OPS_WHEEL_PATH="/workspace/paddlefleet_ops-0.0.0-cp312-cp312-linux_x86_64.whl" - export MEGATRON_CORE_WHEEL_PATH=/workspace/upload/megatron_core-0.0.0-cp312-cp312-linux_x86_64.whl + wget -q https://paddle-github-action.bj.bcebos.com/whl/megatron_core-0.0.0-cp312-cp312-linux_x86_64.whl + export MEGATRON_CORE_WHEEL_PATH=/workspace/megatron_core-0.0.0-cp312-cp312-linux_x86_64.whl + # export MEGATRON_CORE_WHEEL_PATH=/workspace/upload/megatron_core-0.0.0-cp312-cp312-linux_x86_64.whl export MS_SWIFT_WHEEL_PATH=/workspace/ms_swift-0.0.0-py3-none-any.whl # The BOS wheels are republished under a fixed 0.0.0 filename export UV_SKIP_WHEEL_FILENAME_CHECK=1 From 3d321027b76b4c055b79721c768d024c37086cc4 Mon Sep 17 00:00:00 2001 From: liujie44 Date: Thu, 27 Aug 2026 16:16:13 +0800 Subject: [PATCH 10/13] add proxy --- .github/workflows/alignment_model_accuracy.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/alignment_model_accuracy.yml b/.github/workflows/alignment_model_accuracy.yml index 0a28845ff35..42eda043ac7 100644 --- a/.github/workflows/alignment_model_accuracy.yml +++ b/.github/workflows/alignment_model_accuracy.yml @@ -91,6 +91,7 @@ jobs: docker exec -i -e "work_dir=$work_dir" -e "python_version=$python_version" $container_name /bin/bash <<-DOCKER_EOF echo "Change python version to $python_version" set -e + source $work_dir/../../../proxy cp ${work_dir}/../../../Miniforge3-Linux-x86_64.sh /tmp/miniforge.sh bash /tmp/miniforge.sh -b -p /opt/conda /opt/conda/bin/conda create -n py_\$python_version python=\$python_version -y \ From 6afe061ad5052ae467752bd8bf8df81d37bea8cf Mon Sep 17 00:00:00 2001 From: liujie44 Date: Thu, 27 Aug 2026 16:34:33 +0800 Subject: [PATCH 11/13] revert test --- .github/workflows/alignment_model_accuracy.yml | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/.github/workflows/alignment_model_accuracy.yml b/.github/workflows/alignment_model_accuracy.yml index 42eda043ac7..fb47924efbc 100644 --- a/.github/workflows/alignment_model_accuracy.yml +++ b/.github/workflows/alignment_model_accuracy.yml @@ -124,7 +124,7 @@ jobs: echo "::group::Build megatron-core wheel" cd /workspace/Megatron-LM - # bash scripts/dependence/build.sh + bash scripts/dependence/build.sh ls -l /workspace/upload/ echo "::endgroup::" ' @@ -139,9 +139,7 @@ jobs: export PROXY_URL="${http_proxy}" export PADDLEFLEET_WHEEL_PATH="/workspace/paddlefleet-0.0.0-py3-none-linux_x86_64.whl" export PADDLEFLEET_OPS_WHEEL_PATH="/workspace/paddlefleet_ops-0.0.0-cp312-cp312-linux_x86_64.whl" - wget -q https://paddle-github-action.bj.bcebos.com/whl/megatron_core-0.0.0-cp312-cp312-linux_x86_64.whl - export MEGATRON_CORE_WHEEL_PATH=/workspace/megatron_core-0.0.0-cp312-cp312-linux_x86_64.whl - # export MEGATRON_CORE_WHEEL_PATH=/workspace/upload/megatron_core-0.0.0-cp312-cp312-linux_x86_64.whl + export MEGATRON_CORE_WHEEL_PATH=/workspace/upload/megatron_core-0.0.0-cp312-cp312-linux_x86_64.whl export MS_SWIFT_WHEEL_PATH=/workspace/ms_swift-0.0.0-py3-none-any.whl # The BOS wheels are republished under a fixed 0.0.0 filename export UV_SKIP_WHEEL_FILENAME_CHECK=1 From bf7f909cb93f22b435f7a16472f3ff2d96025348 Mon Sep 17 00:00:00 2001 From: liujie44 Date: Wed, 2 Sep 2026 14:21:03 +0800 Subject: [PATCH 12/13] add workflow_dispatch --- .../workflows/alignment_model_accuracy.yml | 1 + .github/workflows/build.yml | 21 ++++++++++++++++++- scripts/dependence/build.sh | 15 +++++++++---- 3 files changed, 32 insertions(+), 5 deletions(-) diff --git a/.github/workflows/alignment_model_accuracy.yml b/.github/workflows/alignment_model_accuracy.yml index fb47924efbc..ed2a2e8e222 100644 --- a/.github/workflows/alignment_model_accuracy.yml +++ b/.github/workflows/alignment_model_accuracy.yml @@ -124,6 +124,7 @@ jobs: echo "::group::Build megatron-core wheel" cd /workspace/Megatron-LM + pip config set global.cache-dir "/home/.cache/pip" bash scripts/dependence/build.sh ls -l /workspace/upload/ echo "::endgroup::" diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index c3d8c7e2f8a..4861887370e 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -2,12 +2,25 @@ name: Build Whl on: workflow_dispatch: + inputs: + commit: + description: 'Commit to build (empty = HEAD of the selected ref)' + required: false + type: string + default: '' + update_latest: + description: 'Also publish the latest (0.0.0) whl' + required: false + type: boolean + default: true schedule: - cron: '0 16 * * *' env: BRANCH: ${{ github.ref_name }} - COMMIT_ID: ${{ github.sha }} + COMMIT_ID: ${{ inputs.commit || github.sha }} + TARGET_COMMIT: ${{ inputs.commit }} + UPDATE_LATEST: ${{ github.event.inputs.update_latest || 'true' }} work_dir: ${{ github.workspace }} python_version: 3.12 TASK: Megatron-LM-${{ github.sha }}-build @@ -44,6 +57,8 @@ jobs: -v /home/.cache/pip:/home/.cache/pip \ -e "BRANCH=$BRANCH" \ -e "COMMIT_ID=$COMMIT_ID" \ + -e "TARGET_COMMIT=$TARGET_COMMIT" \ + -e "UPDATE_LATEST=$UPDATE_LATEST" \ -e work_dir \ -e no_proxy \ -e CE_name \ @@ -60,6 +75,10 @@ jobs: source $work_dir/../../../proxy cd Megatron-LM git pull + if [ -n "$TARGET_COMMIT" ]; then + echo "Checkout requested commit: $TARGET_COMMIT" + git checkout "$TARGET_COMMIT" + fi git log --pretty=oneline -10 ' - name: Change python version diff --git a/scripts/dependence/build.sh b/scripts/dependence/build.sh index 88dc96f6818..841b6544720 100644 --- a/scripts/dependence/build.sh +++ b/scripts/dependence/build.sh @@ -27,7 +27,9 @@ python -m pip config --user set global.trusted-host pypi.tuna.tsinghua.edu.cn megatron_tar (){ cd /workspace # Megatron-LM.tar only include the main branch - if [ -n "$BRANCH" ] && [ "$BRANCH" = "main" ]; then + if [ -n "$TARGET_COMMIT" ]; then + echo "TARGET_COMMIT=$TARGET_COMMIT specified, skip refreshing Megatron-LM.tar.gz" + elif [ -n "$BRANCH" ] && [ "$BRANCH" = "main" ]; then echo "Checkout branch $BRANCH" tar -zcf Megatron-LM.tar.gz Megatron-LM/ mv Megatron-LM.tar.gz ${upload_path}/ @@ -57,11 +59,16 @@ megatron_build (){ new_name=$(echo $base_name | sed "s/^\(megatron_core-[0-9.]*\)-/\1+${commit}-/") echo "commit whl: $new_name" cp "$whl_file" "${upload_path}/${new_name}" - cp "$whl_file" "${upload_path}/${base_name}" zero_name=$(echo $base_name | sed "s/^megatron_core-[^-]*-/megatron_core-0.0.0-/") - echo "0.0.0 whl: $zero_name" - cp "$whl_file" "${upload_path}/${zero_name}" + if [ "${UPDATE_LATEST:-true}" = "true" ]; then + echo "latest whl: $base_name" + cp "$whl_file" "${upload_path}/${base_name}" + echo "0.0.0 whl: $zero_name" + cp "$whl_file" "${upload_path}/${zero_name}" + else + echo "UPDATE_LATEST=$UPDATE_LATEST, skip publishing $base_name and $zero_name" + fi } # main From e0eda3908385f2c65f9af4e6dd57f4bc513c4d03 Mon Sep 17 00:00:00 2001 From: liujie44 Date: Thu, 3 Sep 2026 11:03:58 +0800 Subject: [PATCH 13/13] add MCORE_BRIDGE_WHEEL_PATH --- .github/workflows/alignment_model_accuracy.yml | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/.github/workflows/alignment_model_accuracy.yml b/.github/workflows/alignment_model_accuracy.yml index ed2a2e8e222..185330c16a9 100644 --- a/.github/workflows/alignment_model_accuracy.yml +++ b/.github/workflows/alignment_model_accuracy.yml @@ -110,12 +110,13 @@ jobs: ldconfig BOS=https://paddle-github-action.bj.bcebos.com - echo "::group::Download paddlefleet / paddlefleet_ops / ms_swift wheels from BOS" + echo "::group::Download paddlefleet / paddlefleet_ops / ms_swift / mcore-bridge wheels from BOS" cd /workspace for url in \ $BOS/PaddleFleet/develop/latest/paddlefleet-0.0.0-py3-none-linux_x86_64.whl \ $BOS/PaddleFleet/develop/latest/cu130/paddle-release/paddlefleet_ops-0.0.0-cp312-cp312-linux_x86_64.whl \ - $BOS/whl/ms_swift-0.0.0-py3-none-any.whl ; do + $BOS/whl/ms_swift-0.0.0-py3-none-any.whl \ + $BOS/whl/mcore_bridge-0.0.0-py3-none-any.whl ; do echo "Downloading $url" wget -q --no-proxy --no-check-certificate --tries=3 --timeout=60 "$url" done @@ -142,10 +143,13 @@ jobs: export PADDLEFLEET_OPS_WHEEL_PATH="/workspace/paddlefleet_ops-0.0.0-cp312-cp312-linux_x86_64.whl" export MEGATRON_CORE_WHEEL_PATH=/workspace/upload/megatron_core-0.0.0-cp312-cp312-linux_x86_64.whl export MS_SWIFT_WHEEL_PATH=/workspace/ms_swift-0.0.0-py3-none-any.whl + export MCORE_BRIDGE_WHEEL_PATH=/workspace/mcore_bridge-0.0.0-py3-none-any.whl # The BOS wheels are republished under a fixed 0.0.0 filename export UV_SKIP_WHEEL_FILENAME_CHECK=1 - for whl in "$PADDLEFLEET_WHEEL_PATH" "$PADDLEFLEET_OPS_WHEEL_PATH" "$MS_SWIFT_WHEEL_PATH" "$MEGATRON_CORE_WHEEL_PATH"; do + for whl in "$PADDLEFLEET_WHEEL_PATH" "$PADDLEFLEET_OPS_WHEEL_PATH" \ + "$MS_SWIFT_WHEEL_PATH" "$MEGATRON_CORE_WHEEL_PATH" \ + "$MCORE_BRIDGE_WHEEL_PATH"; do [ -f "$whl" ] || { echo "::error:: missing wheel: $whl"; exit 1; } echo "using $whl" done