[Feature] [Bugfix] Tool Call Parser Support & Gemma4 Bug Fix #269
Workflow file for this run
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: e2e-test | |
| # on: | |
| # workflow_call: | |
| # pull_request: | |
| # branches: [main] | |
| # types: [opened, synchronize, reopened] | |
| # push: | |
| # branches: [main] | |
| # concurrency: | |
| # group: e2e-singlecard | |
| # cancel-in-progress: false | |
| # jobs: | |
| # e2e: | |
| # name: e2e-test-singlecard | |
| # runs-on: | |
| # - self-hosted | |
| # - Linux | |
| # - X64 | |
| # steps: | |
| # - name: Checkout PR code | |
| # uses: actions/checkout@v4 | |
| # with: | |
| # fetch-depth: 0 | |
| # - name: Verify PR workspace | |
| # run: | | |
| # echo "===== WORKSPACE =====" | |
| # pwd | |
| # ls -l | |
| # echo "===== GIT INFO =====" | |
| # git rev-parse HEAD | |
| # git log -1 --oneline | |
| # git status --porcelain | |
| # - name: Start docker | |
| # run: | | |
| # bash ci/scripts/docker/start_docker.sh | |
| # - name: Install enviroments | |
| # env: | |
| # PROXY_URL: ${{ secrets.PROXY_URL }} | |
| # NO_PROXY_LIST: ${{ secrets.NO_PROXY_LIST }} | |
| # run: | | |
| # bash ci/scripts/env/install_env.sh | |
| # - name: Start vLLM server | |
| # run: | | |
| # bash ci/scripts/server/start_vllm.sh | |
| # - name: Wait for vLLM ready | |
| # run: | | |
| # bash ci/scripts/server/wait_vllm.sh | |
| # - name: API Test | |
| # run: | | |
| # docker exec aiak-e2e-singlecard bash -lc ' | |
| # curl http://localhost:8356/v1/chat/completions \ | |
| # -H "Content-Type: application/json" \ | |
| # -d @- << "EOF" | |
| # { | |
| # "model": "Qwen3-8B", | |
| # "messages": [ | |
| # { "role": "user", "content": "Who are you?" } | |
| # ], | |
| # "max_tokens": 200, | |
| # "temperature": 0 | |
| # } | |
| # EOF | |
| # ' | |
| # - name: Accuracy testing | |
| # run: | | |
| # bash ci/scripts/tests/run_accuracy.sh | |
| # - name: Performance testing | |
| # run: | | |
| # docker exec aiak-e2e-singlecard bash -lc ' | |
| # source ci/scripts/common/env.sh | |
| # source ci/scripts/common/log.sh | |
| # #!/bin/bash | |
| # # ========================================== | |
| # # 1. Define test dimensions | |
| # # (can be easily extended, e.g., add "2048x2048") | |
| # # ========================================== | |
| # DIMENSIONS=("1024x1024") | |
| # # ========================================== | |
| # # 2. Define concurrency generation logic (densification strategy) | |
| # # ============x============================== | |
| # # Use array concatenation to combine different density ranges | |
| # # Syntax: seq [start] [step] [end] | |
| # CONCURRENCIES=(1) | |
| # # ========================================== | |
| # # 3. Automatically assemble test cases | |
| # # ========================================== | |
| # TEST_COMBINATIONS=() # Initialize empty array | |
| # # 🔄 Modified: outer loop over batch size (concurrency), inner loop over dimensions | |
| # for bs in "${CONCURRENCIES[@]}"; do # ← outer loop: concurrency | |
| # for dim in "${DIMENSIONS[@]}"; do # ← inner loop: dimensions | |
| # case_str="${bs}x${dim}" | |
| # TEST_COMBINATIONS+=("$case_str") | |
| # done | |
| # done | |
| # # ========================================== | |
| # # 4. (Optional) Print generated cases for sanity check | |
| # # ========================================== | |
| # echo "Generated ${#TEST_COMBINATIONS[@]} test cases in total:" | |
| # echo "${TEST_COMBINATIONS[@]}" # Uncomment if you want to print all cases | |
| # # Progress counters | |
| # TOTAL_TESTS=${#TEST_COMBINATIONS[@]} | |
| # CURRENT_TEST=0 | |
| # # Iterate over all test combinations | |
| # for COMBINATION in "${TEST_COMBINATIONS[@]}"; do | |
| # # Parse parameters from combination string | |
| # NUM_PROMPTS=$(echo $COMBINATION | cut -d'x' -f1) | |
| # INPUT_LEN=$(echo $COMBINATION | cut -d'x' -f2) | |
| # OUTPUT_LEN=$(echo $COMBINATION | cut -d'x' -f3) | |
| # # Update progress | |
| # CURRENT_TEST=$((CURRENT_TEST + 1)) | |
| # echo "==========================================================" | |
| # echo "Test progress: $CURRENT_TEST / $TOTAL_TESTS" | |
| # echo "Current configuration: concurrency=$NUM_PROMPTS, input_len=$INPUT_LEN, output_len=$OUTPUT_LEN" | |
| # echo "==========================================================" | |
| # #OUTPUT_FILE="$RESULT_DIR/p800_${NUM_PROMPTS}_${INPUT_LEN}_${OUTPUT_LEN}.log" | |
| # # Run benchmark | |
| # python3 -m vllm.entrypoints.cli.main bench serve \ | |
| # --host 127.0.0.1 \ | |
| # --port ${VLLM_PORT:-8356}\ | |
| # --backend vllm \ | |
| # --model ${SERVED_MODEL_NAME:-Qwen3-8B} \ | |
| # --dataset-name random \ | |
| # --num-prompts $NUM_PROMPTS \ | |
| # --random-input-len $INPUT_LEN \ | |
| # --random-output-len $OUTPUT_LEN \ | |
| # --tokenizer ${MODEL_PATH:-/ssd3/models/Qwen3-8B} \ | |
| # --ignore-eos | |
| # done | |
| # ' | |
| # - name: Set permissions | |
| # if: always() | |
| # run: | | |
| # bash ci/scripts/docker/set_permissions.sh | |
| # - name: Cleanup docker | |
| # if: always() | |
| # run: | | |
| # bash ci/scripts/docker/stop_docker.sh |