4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

10分でできる!VLLMを使ったgoogle/gemma-3-27b-itのローカル環境構築

Last updated at Posted at 2025-03-13

はじめに

VLLMは、大規模言語モデル(LLM)を高速かつ効率的に動作させるための軽量なサーバーです。本記事では、google/gemma-3-27b-itという日本語にサポートした高性能な言語モデルを、ローカルPCでVLLMを使って簡単に起動する方法を解説します。手順に従えば、わずか10分でモデルを動作させることが可能です。


目次

  1. 環境準備
  2. モデルのダウンロード
  3. モデルの起動
  4. モデルの検証
  5. 注意事項
  6. 参考リンク

環境準備

必要なツール

以下のツールを準備してください:

  • conda:Python仮想環境の管理に使用します。
  • pip:Pythonパッケージのインストールに使用します。
  • VLLM:LLMを高速に動作させるためのサーバーです。
  • flash-attn:モデルの推論速度を向上させるためのライブラリです。

仮想環境の作成

まず、Python 3.11の仮想環境を作成し、アクティベートします。

conda create -n vllm_main python=3.11 -y
conda activate vllm_main

VLLMと依存ライブラリのインストール

以下のコマンドで、VLLMとflash-attnをインストールします。

git clone https://github.com/vllm-project/vllm.git; cd vllm
# VLLM_USE_PRECOMPILED=1 pip install --editable . vllm[audio]
VLLM_USE_PRECOMPILED=1 pip install --editable .
pip install flash-attn --no-build-isolation
pip install git+https://github.com/huggingface/transformers@v4.49.0-Gemma-3

2025/3/13時点では、google/gemma-3-27b-itをサポートするVLLMはまだリリースされていないため、ソースコードからインストールする必要です。


モデルのダウンロード

Hugging Face CLIのインストール

モデルをダウンロードするために、Hugging Face CLIをインストールします。

pip install "huggingface_hub[hf_transfer]"

google/gemma-3-27b-itのダウンロード

以下のコマンドで、google/gemma-3-27b-itをダウンロードします。

HF_HUB_ENABLE_HF_TRANSFER=1 \
huggingface-cli download google/gemma-3-27b-it

モデルの起動

起動コマンド

以下のコマンドでモデルを起動します。
CUDA_VISIBLE_DEVICESで使用するGPUを指定し、--tensor-parallel-sizeでGPUの数を指定します。)

CUDA_VISIBLE_DEVICES=3,1,0,2 \
VLLM_WORKER_MULTIPROC_METHOD=spawn \
TRANSFORMERS_OFFLINE=1 \
HF_DATASETS_OFFLINE=1 \
vllm serve google/gemma-3-27b-it --trust-remote-code --served-model-name gpt-4o --gpu-memory-utilization 0.99 --tensor-parallel-size 4 --port 8000 --api-key sk-dummy --max-model-len 32768

起動確認

起動に成功すると、以下のメッセージが表示されます。

INFO 03-13 08:17:14 [api_server.py:958] Starting vLLM API server on http://0.0.0.0:8000
INFO 03-13 08:17:14 [launcher.py:26] Available routes are:
INFO 03-13 08:17:14 [launcher.py:34] Route: /openapi.json, Methods: HEAD, GET
INFO 03-13 08:17:14 [launcher.py:34] Route: /docs, Methods: HEAD, GET
INFO 03-13 08:17:14 [launcher.py:34] Route: /docs/oauth2-redirect, Methods: HEAD, GET
INFO 03-13 08:17:14 [launcher.py:34] Route: /redoc, Methods: HEAD, GET
INFO 03-13 08:17:14 [launcher.py:34] Route: /health, Methods: GET
INFO 03-13 08:17:14 [launcher.py:34] Route: /ping, Methods: POST, GET
INFO 03-13 08:17:14 [launcher.py:34] Route: /tokenize, Methods: POST
INFO 03-13 08:17:14 [launcher.py:34] Route: /detokenize, Methods: POST
INFO 03-13 08:17:14 [launcher.py:34] Route: /v1/models, Methods: GET
INFO 03-13 08:17:14 [launcher.py:34] Route: /version, Methods: GET
INFO 03-13 08:17:14 [launcher.py:34] Route: /v1/chat/completions, Methods: POST
INFO 03-13 08:17:14 [launcher.py:34] Route: /v1/completions, Methods: POST
INFO 03-13 08:17:14 [launcher.py:34] Route: /v1/embeddings, Methods: POST
INFO 03-13 08:17:14 [launcher.py:34] Route: /pooling, Methods: POST
INFO 03-13 08:17:14 [launcher.py:34] Route: /score, Methods: POST
INFO 03-13 08:17:14 [launcher.py:34] Route: /v1/score, Methods: POST
INFO 03-13 08:17:14 [launcher.py:34] Route: /v1/audio/transcriptions, Methods: POST
INFO 03-13 08:17:14 [launcher.py:34] Route: /rerank, Methods: POST
INFO 03-13 08:17:14 [launcher.py:34] Route: /v1/rerank, Methods: POST
INFO 03-13 08:17:14 [launcher.py:34] Route: /v2/rerank, Methods: POST
INFO 03-13 08:17:14 [launcher.py:34] Route: /invocations, Methods: POST
INFO:     Started server process [102854]
INFO:     Waiting for application startup.
INFO:     Application startup complete.

モデルの検証

Chatbox AIというツールを使用して、検証してみてみました。

検証1

鯉のぼりを識別してくれました。

image.png

検証2

Prompt通りに正しく生成してくれました。

image.png

検証3

検証3で生成されたものを画像にして、識別してもらいます。100%正解でした。

image.png

検証4

テキストを抽出してもらいました。惜しいところですが、1文字が違いました。

(誤)これは、このリリースの焦点と、リリースされる情報を反映しています。
(正)これは、このリリースの焦点と、リリースされる情勢を反映しています。

image.png

image.png


注意事項

  • GPUメモリの設定--gpu-memory-utilization 0.99はGPUメモリの利用率を設定します。環境に応じて調整してください。
  • テンソル並列処理--tensor-parallel-size 4は使用するGPUの数に応じて変更します。
  • ポート番号--port 8000はAPIのポート番号です。他のアプリケーションと競合する場合は変更してください。

参考リンク


この手順に従えば、ローカルPCでgoogle/gemma-3-27b-itを簡単に動作させることができます。ぜひお試しください!


参考資料:

4
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?