はじめに
Dockerを使う場合の記事をこちらに書いてます。touch-sp.hateblo.jp
また、IPEX-LLMを使わずにOpenVINOを使う記事も書いてます。
touch-sp.hateblo.jp
touch-sp.hateblo.jp
Python3.11のインストール
Python3.12以上ではうまくいきません。おそらくPython3.12以降でビルドされた「oneccl-bind-pt」が公開されていないためです。
自分でビルドできればPython3.12以上でも動かせるかもしれません。素直にPython3.11を使います。
sudo add-apt-repository ppa:deadsnakes/ppa sudo apt update sudo apt install python3.11 python3.11-dev python3.11-venv
グラフィックドライバーのインストール
こちらに従いました。oneAPIのインストール
インストールするのはoneAPI Base Toolkitだけで良いです。こちらに従いました。
vLLMのインストール
事前準備
sudo apt install git build-essential
インストール
pip install --pre --upgrade ipex-llm[xpu_2.6] --extra-index-url https://download.pytorch.org/whl/xpu pip install oneccl-bind-pt --index-url https://pytorch-extension.intel.com/release-whl/stable/xpu/us/ pip install setuptools-scm cmake transformers_stream_generator git clone -b 0.6.6 --depth 1 https://github.com/analytics-zoo/vllm.git cd vllm VLLM_TARGET_DEVICE=xpu pip install --no-build-isolation -v .
使用前の設定
export USE_XETLA=OFF export SYCL_PI_LEVEL_ZERO_USE_IMMEDIATE_COMMANDLISTS=2 export SYCL_CACHE_PERSISTENT=1 source /opt/intel/oneapi/setvars.sh
使用例
vllm serve Qwen/Qwen2.5-1.5B-Instruct
クライアント側で回答を得る
from openai import OpenAI openai_api_key = "EMPTY" openai_api_base = "http://localhost:8000/v1" client = OpenAI( api_key=openai_api_key, base_url=openai_api_base, ) stream = client.chat.completions.create( model="Qwen/Qwen2.5-1.5B-Instruct", messages=[ {"role": "system", "content": "You are a helpful assistant."}, {"role": "user", "content": "Tell me a joke."}, ], #temperature=0.5, #max_tokens=8000, #frequency_penalty=1.1, stream=True ) for chunk in stream: print(chunk.choices[0].delta.content or "", end="") print()