Skip to content

Commit

Permalink
enable tests for ipex-llm
Browse files Browse the repository at this point in the history
  • Loading branch information
liu-shaojun committed Mar 8, 2024
1 parent 0bd96c6 commit 6cee70a
Show file tree
Hide file tree
Showing 4 changed files with 1,387 additions and 0 deletions.
118 changes: 118 additions & 0 deletions .github/workflows/ipex-llm-nightly-test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,118 @@
name: LLM Nightly Tests

# Cancel previous runs in the PR when you push new commits
concurrency:
group: ${{ github.workflow }}-llm-nightly-test-${{ github.event.pull_request.number || github.run_id }}
cancel-in-progress: true

permissions:
contents: read

# Controls when the action will run.
on:
schedule:
- cron: "00 13 * * *" # GMT time, 13:00 GMT == 21:00 China
pull_request:
branches: [main]
# paths:
# - ".github/workflows/llm-nightly-test.yml"
# - ".github/actions/llm/setup-llm-env/action.yml"
# - ".github/actions/llm/remove-llm-env/action.yml"
# - ".github/actions/llm/convert-test/action.yml"
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:

# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
# llm-cpp-build:
# uses: ./.github/workflows/llm-binary-build.yml
llm-nightly-convert-test:
# needs: llm-cpp-build
strategy:
fail-fast: false
matrix:
include:
- os: windows
instruction: AVX-VNNI-UT
python-version: "3.9"
- os: ubuntu-20.04-lts
instruction: avx512
python-version: "3.9"
runs-on: [self-hosted, llm, "${{matrix.instruction}}", "${{matrix.os}}"]
env:
ANALYTICS_ZOO_ROOT: ${{ github.workspace }}
steps:
- name: Set model directories
shell: bash
run: |
echo "ORIGIN_DIR=$(pwd)/../llm/origin-models" >> "$GITHUB_ENV"
echo "INT4_CKPT_DIR=$(pwd)/../llm/nightly-converted-models" >> "$GITHUB_ENV"
- name: Create model directories
shell: bash
run: |
if [ ! -d $ORIGIN_DIR ]; then
mkdir -p $ORIGIN_DIR
fi
if [ ! -d $INT4_CKPT_DIR ]; then
mkdir -p $INT4_CKPT_DIR
fi
- name: Set environment variables
shell: bash
run: |
echo "LLAMA_ORIGIN_PATH=${ORIGIN_DIR}/llama-7b-hf" >> "$GITHUB_ENV"
echo "GPTNEOX_ORIGIN_PATH=${ORIGIN_DIR}/gptneox-7b-redpajama-bf16" >> "$GITHUB_ENV"
echo "BLOOM_ORIGIN_PATH=${ORIGIN_DIR}/bloomz-7b1" >> "$GITHUB_ENV"
echo "STARCODER_ORIGIN_PATH=${ORIGIN_DIR}/gpt_bigcode-santacoder" >> "$GITHUB_ENV"
echo "LLAMA_INT4_CKPT_PATH=${INT4_CKPT_DIR}/bigdl_llm_llama_q4_0.bin" >> "$GITHUB_ENV"
echo "GPTNEOX_INT4_CKPT_PATH=${INT4_CKPT_DIR}/bigdl_llm_gptneox_q4_0.bin" >> "$GITHUB_ENV"
echo "BLOOM_INT4_CKPT_PATH=${INT4_CKPT_DIR}/bigdl_llm_bloom_q4_0.bin" >> "$GITHUB_ENV"
echo "STARCODER_INT4_CKPT_PATH=${INT4_CKPT_DIR}/bigdl_llm_starcoder_q4_0.bin" >> "$GITHUB_ENV"
- uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # actions/checkout@v3
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
shell: bash
run: |
python -m pip install --upgrade pip
python -m pip install --upgrade setuptools==58.0.4
python -m pip install --upgrade wheel
# - name: Download llm binary
# uses: ./.github/actions/llm/download-llm-binary

# - name: Install BigDL-LLM
# uses: ./.github/actions/llm/setup-llm-env

- name: Install IPEX-LLM from Pypi
shell: bash
run: |
pip install --pre --upgrade ipex-llm[all]
- name: Download original models & convert
uses: ./.github/actions/llm/convert-test

- name: Upload ckpt to ftp
shell: bash
if: runner.os == 'Linux' && github.event_name == 'schedule'
run: |
curl -T $LLAMA_INT4_CKPT_PATH ${LLM_FTP_URL}/llm/ggml-actions/nightly/bigdl_llm_llama_7b_q4_0.bin
curl -T $GPTNEOX_INT4_CKPT_PATH ${LLM_FTP_URL}/llm/ggml-actions/nightly/bigdl_llm_redpajama_7b_q4_0.bin
curl -T $BLOOM_INT4_CKPT_PATH ${LLM_FTP_URL}/llm/ggml-actions/nightly/bigdl_llm_bloom_7b_q4_0.bin
curl -T $STARCODER_INT4_CKPT_PATH ${LLM_FTP_URL}/llm/ggml-actions/nightly/bigdl_llm_santacoder_1b_q4_0.bin
- name: Delete ckpt
shell: bash
run: |
rm -rf $LLAMA_INT4_CKPT_PATH
rm -rf $GPTNEOX_INT4_CKPT_PATH
rm -rf $BLOOM_INT4_CKPT_PATH
rm -rf $STARCODER_INT4_CKPT_PATH
llm-unit-tests:
# needs: llm-cpp-build
uses: ./.github/workflows/ipex_llm_unit_tests.yml
llm-example-test:
# needs: llm-cpp-build
uses: ./.github/workflows/ipex_llm_example_tests.yml
80 changes: 80 additions & 0 deletions .github/workflows/ipex_llm_example_tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
name: LLM Example Test

# Cancel previous runs in the PR when you push new commits
concurrency:
group: ${{ github.workflow }}-llm-example-tests-${{ github.event.pull_request.number || github.run_id }}
cancel-in-progress: true

permissions:
contents: read

# Controls when the action will run.
on:
# schedule:
# - cron: '00 13 * * *' # GMT time, 13:00 GMT == 21:00 China
pull_request:
branches: [ main ]
# paths:
# - '.github/workflows/llm_example_tests.yml'
# - '.github/workflows/llm-binary-build.yml'
# - '.github/actions/llm/example-test/action.yml'
# - '.github/actions/llm/setup-llm-env/action.yml'
# - '.github/actions/llm/remove-llm-env/action.yml'
# - '.github/actions/llm/download-llm-binary/action.yml'
# - 'python/llm/dev/test/run-example-tests.sh'
# - 'python/llm/example/**'
workflow_dispatch:
workflow_call:

env:
INT4_CKPT_DIR: ./llm/ggml-actions/stable
LLM_DIR: ./llm

# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
# llm-cpp-build:
# uses: ./.github/workflows/llm-binary-build.yml
llm-example-test:
# needs: llm-cpp-build
strategy:
fail-fast: false
matrix:
python-version: ["3.9"]
instruction: ["AVX512"]
runs-on: [ self-hosted, llm,"${{matrix.instruction}}", ubuntu-20.04-lts ]
env:
THREAD_NUM: 24
steps:
- uses: actions/checkout@ee0669bd1cc54295c223e0bb666b733df41de1c5 # actions/checkout@v2
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v2
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: |
python -m pip install --upgrade pip
python -m pip install --upgrade setuptools==58.0.4
python -m pip install --upgrade wheel
# - name: Download llm binary
# uses: ./.github/actions/llm/download-llm-binary

# - name: Run LLM install (all) test
# uses: ./.github/actions/llm/setup-llm-env
# env:
# ANALYTICS_ZOO_ROOT: ${{ github.workspace }}

- name: Install IPEX-LLM from Pypi
shell: bash
run: |
pip install --pre --upgrade ipex-llm[all]
- name: Run LLM example test
uses: ./.github/actions/llm/example-test
env:
ANALYTICS_ZOO_ROOT: ${{ github.workspace }}

# - name: Clean up test environment
# uses: ./.github/actions/llm/remove-llm-env
# env:
# ANALYTICS_ZOO_ROOT: ${{ github.workspace }}
Loading

0 comments on commit 6cee70a

Please sign in to comment.