[BugFix] Fix chunked prefill (#3759) #62
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Publish Job | ||
on: | ||
workflow_dispatch: | ||
schedule: | ||
- cron: '0 18 * * *' # 2:00 AM China Standard Time (UTC+8) | ||
push: | ||
# branches: | ||
# - develop | ||
tags: | ||
- '*' | ||
permissions: read-all | ||
concurrency: | ||
group: ${{ github.ref }}-${{ github.sha }} | ||
cancel-in-progress: true | ||
jobs: | ||
publish_pre_check: | ||
runs-on: ubuntu-latest | ||
if: | | ||
github.event.repository.fork == false && | ||
( | ||
(github.event_name == 'schedule' && github.ref_name == 'develop') || | ||
(github.event_name == 'push' && github.ref_type == 'tag') || | ||
((github.event_name == 'workflow_dispatch') && | ||
(github.ref_name == 'develop' || github.ref_type == 'tag')) | ||
) | ||
env: | ||
TAG_VERSION_MAPPINGS: ${{ vars.TAG_VERSION_MAPPINGS }} | ||
FD_VERSION_DEV: ${{ vars.FD_VERSION_DEV }} | ||
COMPILE_USE_PADDLE_WHL_URL_MAPPINGS: ${{ vars.COMPILE_USE_PADDLE_WHL_URL_MAPPINGS }} | ||
outputs: | ||
compile_use_paddle_version: ${{ steps.set_output.outputs.compile_use_paddle_version }} | ||
compile_continue: ${{ steps.set_output.outputs.compile_continue }} | ||
fd_version: ${{ steps.set_output.outputs.fd_version }} | ||
with_nightly_build: ${{ steps.set_output.outputs.with_nightly_build }} | ||
compile_use_paddle_whl_url: ${{ steps.set_output.outputs.compile_use_paddle_whl_url }} | ||
steps: | ||
- name: Get tag version | ||
if: github.ref_type == 'tag' | ||
run: | | ||
TAG_NAME="${GITHUB_REF##*/}" # 提取 tag 名称,比如 v2.1.0 | ||
TAG_VERSION="${TAG_NAME#v}" # 去掉前缀 v | ||
echo "FD_VERSION=$TAG_VERSION" >> $GITHUB_ENV | ||
- name: Check FD version to Paddle version mapping | ||
if: github.ref_type == 'tag' | ||
env: | ||
TARGET_FD: ${{ env.FD_VERSION }} | ||
run: | | ||
FOUND_PADDLE="" | ||
# 遍历映射 | ||
for pair in $(echo $TAG_VERSION_MAPPINGS | tr ';' ' '); do | ||
fd=$(echo "$pair" | cut -d',' -f1) | ||
paddle=$(echo "$pair" | cut -d',' -f2) | ||
if [[ "$fd" == "$TARGET_FD" ]]; then | ||
FOUND_PADDLE="$paddle" | ||
break | ||
fi | ||
done | ||
if [[ -z "$FOUND_PADDLE" ]]; then | ||
echo "No Paddle version found for FD $TARGET_FD" | ||
else | ||
echo "FD $TARGET_FD maps to Paddle $FOUND_PADDLE" | ||
echo "PADDLE_VERSION=$FOUND_PADDLE" >> $GITHUB_ENV | ||
fi | ||
- name: Set Version | ||
id: set_output | ||
env: | ||
PADDLE_VERSION: ${{ env.PADDLE_VERSION }} | ||
FD_VERSION: ${{ env.FD_VERSION }} | ||
run: | | ||
if [[ "${{ github.ref_type }}" == "tag" ]]; then | ||
if [[ -z "$PADDLE_VERSION" ]]; then | ||
compile_continue=false | ||
else | ||
compile_use_paddle_version=$PADDLE_VERSION | ||
compile_continue=true | ||
fi | ||
fd_version=$FD_VERSION | ||
fi | ||
if [[ "${{ github.ref_name }}" == "develop" ]];then | ||
compile_continue=true | ||
compile_use_paddle_version="" | ||
fd_version=${FD_VERSION_DEV} | ||
with_nightly_build=ON | ||
fi | ||
# Todo | ||
# 通过变量COMPILE_USE_PADDLE_WHL_URL_MAPPINGS中的映射关系,决定是否是安装指定版本的Paddle还是直接安装URL | ||
for pair in $(echo $COMPILE_USE_PADDLE_WHL_URL_MAPPINGS | tr ';' ' '); do | ||
branch=$(echo "$pair" | cut -d',' -f1) | ||
paddle_whl_url=$(echo "$pair" | cut -d',' -f2) | ||
if [[ "$branch" == "${{ github.ref_name }}" ]]; then | ||
FOUND_PADDLE_URL="$paddle_whl_url" | ||
echo "compile_use_paddle_whl_url=${FOUND_PADDLE_URL}" >> $GITHUB_OUTPUT | ||
compile_continue=true | ||
break | ||
fi | ||
done | ||
echo "compile_continue=${compile_continue}" >> $GITHUB_OUTPUT | ||
echo "compile_use_paddle_version=${compile_use_paddle_version}" >> $GITHUB_OUTPUT | ||
echo "fd_version=${fd_version}" >> $GITHUB_OUTPUT | ||
echo "with_nightly_build=${with_nightly_build:-OFF}" >> $GITHUB_OUTPUT | ||
print_publish_pre_check_outputs: | ||
runs-on: ubuntu-latest | ||
needs: publish_pre_check | ||
steps: | ||
- name: Print outputs as JSON | ||
run: | | ||
echo '${{ toJSON(needs.publish_pre_check.outputs) }}' | ||
clone: | ||
environment: CodeSync | ||
name: FD-Clone-Linux | ||
runs-on: ubuntu-latest | ||
needs: publish_pre_check | ||
if: ${{ needs.publish_pre_check.outputs.compile_continue == 'true' }} | ||
outputs: | ||
repo_archive_url: ${{ steps.set_output.outputs.repo_archive_url }} | ||
steps: | ||
- name: Clone FastDeploy | ||
uses: actions/checkout@v4 | ||
with: | ||
ref: ${{ github.ref_name }} | ||
submodules: 'recursive' | ||
fetch-depth: 1000 | ||
- name: Python Setup | ||
uses: actions/setup-python@v5 | ||
with: | ||
python-version: '3.10' | ||
- name: Code Info Show and Upload | ||
id: set_output | ||
env: | ||
AK: ${{ secrets.BOS_AK }} | ||
SK: ${{ secrets.BOS_SK }} | ||
run: | | ||
git config --unset http.https://github.com/.extraheader | ||
git submodule foreach --recursive sh -c "git config --local --unset-all 'http.https://github.com/.extraheader'" | ||
git submodule foreach --recursive sh -c "git config remote.origin.fetch '+refs/heads/*:refs/remotes/origin/*'" | ||
echo "Current HEAD Log:" | ||
git log --oneline -n 5 | ||
ls | ||
cd .. | ||
tar -zcf FastDeploy.tar.gz FastDeploy | ||
if [[ "${{ github.ref_type }}" == "tag" ]]; then | ||
commit_id=${{ github.sha }} | ||
tag_name=${{ github.ref_name }} | ||
target_path=paddle-qa/TAG/FastDeploy/${tag_name}/${commit_id} | ||
else | ||
commit_id=${{ github.sha }} | ||
branch_name=${{ github.ref_name }} | ||
target_path=paddle-qa/BRANCH/FastDeploy/${branch_name}/${commit_id} | ||
fi | ||
wget -q --no-proxy --no-check-certificate https://paddle-qa.bj.bcebos.com/CodeSync/develop/PaddlePaddle/PaddleTest/tools/bos_tools.py | ||
push_file=$(realpath bos_tools.py) | ||
python -m pip install bce-python-sdk==0.9.29 | ||
ls | ||
python ${push_file} FastDeploy.tar.gz ${target_path} | ||
target_path_stripped="${target_path#paddle-qa/}" | ||
REPO_ARCHIVE_URL=https://paddle-qa.bj.bcebos.com/${target_path_stripped}/FastDeploy.tar.gz | ||
echo "repo_archive_url=${REPO_ARCHIVE_URL}" >> $GITHUB_OUTPUT | ||
resultshow: | ||
name: Show Code Archive Output | ||
needs: clone | ||
runs-on: ubuntu-latest | ||
steps: | ||
- name: Print wheel path | ||
run: | | ||
echo "The code archive is located at: ${{ needs.clone.outputs.repo_archive_url }}" | ||
build_sm8090: | ||
name: BUILD_SM8090 | ||
needs: [clone, publish_pre_check] | ||
uses: ./.github/workflows/_build_linux.yml | ||
with: | ||
DOCKER_IMAGE: ccr-2vdh3abv-pub.cnc.bj.baidubce.com/paddlepaddle/paddleqa:fastdeploy-ciuse-cuda126-dailyupdate | ||
FASTDEPLOY_ARCHIVE_URL: ${{ needs.clone.outputs.repo_archive_url }} | ||
COMPILE_ARCH: "80,90" | ||
WITH_NIGHTLY_BUILD: ${{ needs.publish_pre_check.outputs.with_nightly_build }} | ||
FD_VERSION: ${{ needs.publish_pre_check.outputs.fd_version }} | ||
PADDLEVERSION: ${{ needs.publish_pre_check.outputs.compile_use_paddle_version }} | ||
PADDLE_WHL_URL: ${{ needs.publish_pre_check.outputs.compile_use_paddle_whl_url }} | ||
build_sm8689: | ||
name: BUILD_SM8689 | ||
needs: [clone, publish_pre_check] | ||
uses: ./.github/workflows/_build_linux.yml | ||
with: | ||
DOCKER_IMAGE: ccr-2vdh3abv-pub.cnc.bj.baidubce.com/paddlepaddle/paddleqa:fastdeploy-ciuse-cuda126-dailyupdate | ||
FASTDEPLOY_ARCHIVE_URL: ${{ needs.clone.outputs.repo_archive_url }} | ||
COMPILE_ARCH: "86,89" | ||
WITH_NIGHTLY_BUILD: ${{ needs.publish_pre_check.outputs.with_nightly_build }} | ||
FD_VERSION: ${{ needs.publish_pre_check.outputs.fd_version }} | ||
PADDLEVERSION: ${{ needs.publish_pre_check.outputs.compile_use_paddle_version }} | ||
PADDLE_WHL_URL: ${{ needs.publish_pre_check.outputs.compile_use_paddle_whl_url }} | ||
paddle_pypi_upload_sm8090: | ||
environment: PaddleSourceUpload | ||
name: PADDLE_PYPI_UPLOAD_8090 | ||
needs: build_sm8090 | ||
runs-on: ubuntu-latest | ||
env: | ||
AK: ${{ secrets.BOS_AK }} | ||
SK: ${{ secrets.BOS_SK }} | ||
FASTDEPLOY_WHEEL_URL: ${{ needs.build_sm8090.outputs.wheel_path }} | ||
COMPILE_ARCH: "80,90" | ||
steps: | ||
- uses: actions/setup-python@v5 | ||
with: | ||
python-version: '3.10' | ||
- name: Wheel Info Show and Upload | ||
if: github.ref_name == 'develop' || github.ref_type == 'tag' | ||
run: | | ||
echo "The wheel is located at: ${FASTDEPLOY_WHEEL_URL}" | ||
wget -q --no-check-certificate ${FASTDEPLOY_WHEEL_URL} | ||
filename=$(basename ${FASTDEPLOY_WHEEL_URL}) | ||
if [[ "${{ github.ref_name }}" == "develop" ]];then | ||
target_path=paddle-whl/nightly/fastdeploy-gpu-${COMPILE_ARCH//,/_}/fastdeploy-gpu | ||
elif [[ "${{ github.ref_type }}" == "tag" ]]; then | ||
target_path=paddle-whl/stable/fastdeploy-gpu-${COMPILE_ARCH//,/_}/fastdeploy-gpu | ||
else | ||
echo "Not develop or tag, do nothing" | ||
fi | ||
wget -q --no-proxy --no-check-certificate https://paddle-qa.bj.bcebos.com/CodeSync/develop/PaddlePaddle/PaddleTest/tools/bos_tools.py | ||
push_file=$(realpath bos_tools.py) | ||
python -m pip install bce-python-sdk==0.9.29 | ||
ls | ||
python ${push_file} ${filename} ${target_path} | ||
paddle_pypi_upload_sm8689: | ||
environment: PaddleSourceUpload | ||
name: PADDLE_PYPI_UPLOAD_8689 | ||
needs: build_sm8689 | ||
runs-on: ubuntu-latest | ||
env: | ||
AK: ${{ secrets.BOS_AK }} | ||
SK: ${{ secrets.BOS_SK }} | ||
FASTDEPLOY_WHEEL_URL: ${{ needs.build_sm8689.outputs.wheel_path }} | ||
COMPILE_ARCH: "86,89" | ||
steps: | ||
- uses: actions/setup-python@v5 | ||
with: | ||
python-version: '3.10' | ||
- name: Wheel Info Show and Upload | ||
if: github.ref_name == 'develop' || github.ref_type == 'tag' | ||
run: | | ||
echo "The wheel is located at: ${FASTDEPLOY_WHEEL_URL}" | ||
wget -q --no-check-certificate ${FASTDEPLOY_WHEEL_URL} | ||
filename=$(basename ${FASTDEPLOY_WHEEL_URL}) | ||
if [[ "${{ github.ref_name }}" == "develop" ]];then | ||
target_path=paddle-whl/nightly/fastdeploy-gpu-${COMPILE_ARCH//,/_}/fastdeploy-gpu | ||
elif [[ "${{ github.ref_type }}" == "tag" ]]; then | ||
target_path=paddle-whl/stable/fastdeploy-gpu-${COMPILE_ARCH//,/_}/fastdeploy-gpu | ||
else | ||
echo "Not develop or tag, do nothing" | ||
fi | ||
wget -q --no-proxy --no-check-certificate https://paddle-qa.bj.bcebos.com/CodeSync/develop/PaddlePaddle/PaddleTest/tools/bos_tools.py | ||
push_file=$(realpath bos_tools.py) | ||
python -m pip install bce-python-sdk==0.9.29 | ||
ls | ||
python ${push_file} ${filename} ${target_path} | ||
unittest_coverage: | ||
name: Run FastDeploy Unit Tests and Coverage | ||
needs: [clone,build_sm8090] | ||
uses: ./.github/workflows/_unit_test_coverage.yml | ||
with: | ||
DOCKER_IMAGE: ccr-2vdh3abv-pub.cnc.bj.baidubce.com/paddlepaddle/paddleqa:fastdeploy-ciuse-cuda126-dailyupdate | ||
FASTDEPLOY_ARCHIVE_URL: ${{ needs.clone.outputs.repo_archive_url }} | ||
FASTDEPLOY_WHEEL_URL: ${{ needs.build_sm8090.outputs.wheel_path }} | ||
MODEL_CACHE_DIR: "/ssd2/actions-runner/ModelData" | ||
secrets: | ||
github-token: ${{ secrets.GITHUB_TOKEN }} | ||
logprob_test: | ||
name: Run FastDeploy LogProb Tests | ||
needs: [build_sm8090] | ||
uses: ./.github/workflows/_logprob_test_linux.yml | ||
with: | ||
DOCKER_IMAGE: ccr-2vdh3abv-pub.cnc.bj.baidubce.com/paddlepaddle/paddleqa:fastdeploy-ciuse-cuda126-dailyupdate | ||
PADDLETEST_ARCHIVE_URL: "https://xly-devops.bj.bcebos.com/PaddleTest/PaddleTest.tar.gz" | ||
FASTDEPLOY_WHEEL_URL: ${{ needs.build_sm8090.outputs.wheel_path }} | ||
MODEL_CACHE_DIR: "/ssd2/actions-runner/ModelData" | ||
pre_ce_test: | ||
name: Extracted partial CE model tasks to run in CI. | ||
needs: [clone,build_sm8090] | ||
uses: ./.github/workflows/_pre_ce_test.yml | ||
with: | ||
DOCKER_IMAGE: ccr-2vdh3abv-pub.cnc.bj.baidubce.com/paddlepaddle/paddleqa:fastdeploy-ciuse-cuda126-dailyupdate | ||
FASTDEPLOY_ARCHIVE_URL: ${{ needs.clone.outputs.repo_archive_url }} | ||
FASTDEPLOY_WHEEL_URL: ${{ needs.build_sm8090.outputs.wheel_path }} | ||
MODEL_CACHE_DIR: "/ssd2/actions-runner/ModelData" | ||
base_test: | ||
name: Run Base Tests | ||
needs: [clone,build_sm8090] | ||
uses: ./.github/workflows/_base_test.yml | ||
with: | ||
DOCKER_IMAGE: ccr-2vdh3abv-pub.cnc.bj.baidubce.com/paddlepaddle/paddleqa:fastdeploy-ciuse-cuda126-dailyupdate | ||
FASTDEPLOY_ARCHIVE_URL: ${{ needs.clone.outputs.repo_archive_url }} | ||
FASTDEPLOY_WHEEL_URL: ${{ needs.build_sm8090.outputs.wheel_path }} | ||
MODEL_CACHE_DIR: "/ssd2/actions-runner/ModelData" | ||
accuracy_test: | ||
name: Run Accuracy Tests | ||
needs: [clone,build_sm8090] | ||
uses: ./.github/workflows/_accuracy_test.yml | ||
with: | ||
DOCKER_IMAGE: ccr-2vdh3abv-pub.cnc.bj.baidubce.com/paddlepaddle/paddleqa:fastdeploy-ciuse-cuda126-dailyupdate | ||
FASTDEPLOY_ARCHIVE_URL: ${{ needs.clone.outputs.repo_archive_url }} | ||
FASTDEPLOY_WHEEL_URL: ${{ needs.build_sm8090.outputs.wheel_path }} | ||
MODEL_CACHE_DIR: "/ssd2/actions-runner/ModelData" | ||
stable_test: | ||
name: Run Stable Tests | ||
needs: [clone,build] | ||
uses: ./.github/workflows/_stable_test.yml | ||
with: | ||
DOCKER_IMAGE: ccr-2vdh3abv-pub.cnc.bj.baidubce.com/paddlepaddle/paddleqa:fastdeploy-ciuse-cuda126-dailyupdate | ||
FASTDEPLOY_ARCHIVE_URL: ${{ needs.clone.outputs.repo_archive_url }} | ||
FASTDEPLOY_WHEEL_URL: ${{ needs.build.outputs.wheel_path }} | ||
MODEL_CACHE_DIR: "/ssd2/actions-runner/ModelData" |