以下の内容はhttps://touch-sp.hateblo.jp/entry/2025/02/23/213743より取得しました。


【Arc A770】Dockerを使わずにIPEX-LLMでvLLMを使う

はじめに

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()



以上の内容はhttps://touch-sp.hateblo.jp/entry/2025/02/23/213743より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14