Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

エントリポイント (AsyncLLM / LLM) サマリー

深度: [SHALLOW] 確信度: [VERIFIED] 最終更新: 2026-02-09

概要

AsyncLLMLLMはvLLMの2つの主要エントリポイントである。AsyncLLMはAPIサーバー(OpenAI互換API等)が使用する非同期パスで、LLMはオフラインバッチ推論用の同期パスである。どちらもInputProcessorで入力を処理し、EngineCoreClient経由でバックエンド(EngineCore)にリクエストを送信する。

アーキテクチャ

graph LR
    subgraph 非同期パス
        OpenAI["OpenAI API Server"] --> AsyncLLM
        AsyncLLM -->|"process_inputs()"| IP["InputProcessor"]
        IP -->|"EngineCoreRequest"| AsyncLLM
        AsyncLLM -->|"add_request_async()"| Client["EngineCoreClient"]
        Client -->|"ZMQ"| EC["EngineCore"]
    end

    subgraph 同期パス
        User["ユーザーコード"] --> LLM
        LLM -->|"process_inputs()"| IP2["InputProcessor"]
        IP2 -->|"EngineCoreRequest"| LLM
        LLM -->|"add_request()"| Client2["EngineCoreClient"]
    end

主要コンポーネント

コンポーネント用途ファイル
AsyncLLM非同期推論エントリポイント。AsyncGeneratorでストリーミング出力target/vllm/vllm/v1/engine/async_llm.py:71
LLM同期バッチ推論エントリポイント。list[RequestOutput]を返すtarget/vllm/vllm/entrypoints/llm.py:101
RequestOutputCollector非同期パスでの出力キュー管理target/vllm/vllm/v1/engine/async_llm.py
ParentRequestn>1サンプリング時の親リクエスト管理target/vllm/vllm/v1/engine/async_llm.py

主要メソッド

AsyncLLM

メソッド説明
generate()L537メインAPI。AsyncGeneratorでRequestOutputをyield
add_request()L286リクエスト追加。InputProcessor→OutputProcessor→EngineCore
_add_request()L414内部: OutputProcessorとEngineCoreに登録
_run_output_handler()L647バックグラウンドタスク起動。EngineCore出力を受信→キュー

LLM

メソッド説明
generate()L396バッチ推論API。list[RequestOutput]を返す
_add_request()L1850InputProcessor→llm_engine.add_request()
_run_engine()L1900ポーリングループ。完了までstep()を繰り返す

設定

パラメータデフォルト説明
log_requestsTrueリクエストログ出力
log_stats引数指定統計ログ出力
start_engine_loopTrueエンジンループ自動起動

呼び出しフロー

[APIサーバー or ユーザーコード]
  → AsyncLLM.generate() / LLM.generate()
    → InputProcessor.process_inputs()
      → EngineCoreRequest
    → EngineCoreClient.add_request_async()
      → ZMQ → EngineCore(別プロセス)

[バックグラウンド output_handler タスク]
  → EngineCoreClient.get_output_async()
    → EngineCoreOutputs
  → OutputProcessor.process_outputs()
    → RequestOutput → キューにpush

[generate() AsyncGenerator]
  → キューから取り出してyield

関連ドキュメント