vllm_example のデモ — vLLMでLLMをホストしてリクエストする例

AI/ML

概要

vllm_exampleは、vllmライブラリを用いて自分のマシン上でLLMを立ち上げ、別プロセスからHTTPリクエストでプロンプトを投げて応答を取得する流れを示すシンプルなデモです。リポジトリには仮想環境の作成手順や必要パッケージのインストール方法、サーバー起動用スクリプト(llm_serve.sh)とクライアントサンプル(llm_request.py, main.py)が含まれており、vllmによる推論サーバー構築のハンズオンができる構成です。教育用途や開発の出発点として手早く試せます。

GitHub

リポジトリの統計情報

  • スター数: 1
  • フォーク数: 0
  • ウォッチャー数: 1
  • コミット数: 5
  • ファイル数: 5
  • メインの言語: Python

主な特徴

  • vllmを使ったローカルLLMサーバーの最小構成サンプル
  • 仮想環境作成から依存インストール、サーバー起動、クライアントリクエストまでのワークフロー例
  • シェルスクリプトとPythonクライアントで再現可能な手順
  • 軽量で教育・プロトタイプ向けに最適

技術的なポイント

このリポジトリはvllmをコアに据え、モデルのホスティングとHTTPによるやり取りを簡潔に示しています。READMEにある手順は、まずシステムのPythonモジュール環境を整え(例: module load python/3.11)、Astralのuvツールで仮想環境を作成・アクティベートする流れを示しています(uv venv —python 3.11 —seed、source .venv/bin/activate)。クライアント側はrequestsライブラリを使ってHTTPリクエストを送信するシンプルな設計で、llm_request.pyがその役割を担います。サーバー起動スクリプト(llm_serve.sh)は環境変数を設定し、vllmのサーバーコマンドを呼び出す想定で、モデルパスやポート設定、GPU利用オプションなどを一括で用意できるようになっています。vllm自体は効率的なトークン生成やバッチ処理、低レイテンシ推論を目指すライブラリであり、このサンプルを通してローカルGPUでの推論・API提供の基本を学べます。実運用を見据える場合は、認証やログ、リクエスト制限、永続化や監視、コンテナ化(Docker)やクラウドGPUへの対応などの拡張が必要になります。また、ストリーミング応答(リアルタイムでの部分応答送信)や複数クライアントの並列処理、モデルの量子化やメモリ最適化も検討ポイントです。本リポジトリは最小限のワークフローに集中しているため、実際のワークロードに合わせた調整やベンチマークを行うことで運用へつなげられます。(約700字)

プロジェクトの構成

主要なファイルとディレクトリ:

  • .gitignore: file
  • README.md: file
  • llm_request.py: file
  • llm_serve.sh: file
  • main.py: file

ファイルの想定役割:

  • llm_serve.sh: 環境変数設定とvllmサーバー起動コマンドをまとめたシェルスクリプト。
  • llm_request.py: requestsを使ったHTTPクライアントの例。プロンプトを送信して応答を受け取る。
  • main.py: デモ実行のエントリやクライアント⇄サーバーの簡単なオーケストレーション。
  • README.md: セットアップ手順と実行例、必要前提の記載。

使い方(概要)

  1. システム上でPython 3.11を用意(モジュール環境を使う指示あり)。
  2. uvツールで仮想環境を作成しアクティベート。
  3. requestsなどの依存パッケージをpipでインストール。
  4. llm_serve.shを編集してモデルパスやポートを指定し、サーバーを起動。
  5. llm_request.pyやmain.pyからHTTPでプロンプトを送信して応答を得る。

改善・拡張案

  • Docker化して依存環境の再現性を向上させる。
  • 認証(APIキー)やレート制限を追加して安全に公開する。
  • ストリーミングAPI対応により応答の逐次配信を実現。
  • 計測(レイテンシ/スループット)やプロファイリングを導入し最適化する。

まとめ

vllmを使ったローカルLLMサーバー導入の最小構成を示す実用的なデモリポジトリです(50字程度)。

リポジトリ情報:

READMEの抜粋:

What is this?

This is a demo of how to use vllm to serve LLMs. This means you are sending requests with your prompt to an LLM which you host on your system.

How do I start

Prerequisites

  1. module load python/3.11
  2. Install uv curl -LsSf https://astral.sh/uv/install.sh | sh
  3. Create virtualenv uv venv --python 3.11 --seed
  4. Activate virtualenv source .venv/bin/activate
  5. Install requests uv pip install requests
  6. Install necessary components ```export U…