本文へ移動

AI Buildersのための最新のニュース、知見、事例を毎日お届け

運営会社
コーディングエージェント

vLLM 0.32公開、ブラウザーからの読み取りを既定で禁止

自前のGPUでモデルを動かす定番のソフト「vLLM」の0.32が、10月18日に公開された。安全面では、どのWebサイトのスクリプトからでも応答を読めた既定の設定をやめ、許す相手を自分で書く形に変えた。Python 3.10での動作も打ち切った。ブラウザーから直接vLLMを呼んでいる画面は、更新しただけで動かなくなるおそれがある。変更は814件のコミットに及び、363人が加わった。

記事の内容を自社でどう進めるか、内容が固まっていない段階でも相談できます。仕事の相談

毎週 1 回、その週の記事から 5 本と実践の 1 本を選んでメールで届けます。ニュースレターを購読する(無料)

vLLM 0.32公開、ブラウザーからの読み取りを既定で禁止

vLLMは、オープンウェイトのモデルを自前のGPUで動かし、OpenAIと同じ形のAPIで返すためのソフトだ。社内でモデルを立てる時の定番になっている。その0.32が10月18日に公開された。0.32のリリースノートによると、814件のコミットに363人が加わり、うち121人は初めての参加だった。今回は、更新しただけで動きが変わる点がいくつかある。

ブラウザーからの読み取りを既定で止めた

いちばん影響が大きいのは、CORSと呼ぶ設定の既定値だ。CORSは、あるWebサイトのスクリプトが、別の場所にあるサーバーの応答を読んでよいかをブラウザーが判断する仕組みである。

これまでのvLLMは、許す相手を「すべて」にしていた。変更を提案したプルリクエストによると、APIの鍵を設定していないvLLMにブラウザーから届くと、どのWebサイトのスクリプトからでも応答を読めた。社内の機械で立てたvLLMでも、社員がふつうのサイトを開いただけで、そのサイトから中身を読まれるおそれがあったことになる(編集部の読み)。

0.32からは既定で誰も許さない。自分の画面からブラウザー経由でvLLMを呼んでいる場合は、起動の時に「--allowed-origins」で許すサイトを書く必要がある。書かないと、更新した途端に画面から呼べなくなる。プルリクエストは、CORSはブラウザーの決まりであって、APIの鍵による認証の代わりにはならないとも書いている。鍵を設定していない人は、この機会に設定したい。

ほかにも並ぶ安全のための変更

リリースノートには、ほかにも安全のための変更が並ぶ。外から受け取った画像は、ふつうの画素の形式だけを開き、EPSやWMFのような形式は断る。64段より深く入れ子になったJSONの型の指定も受け付けない。複数の処理の間で大きな画像などを受け渡すための共有メモリーの目印には署名を付け、偽の目印は断るようにした。

どれも、外から届く入力を疑ってかかる方向の変更だ。社外の利用者にvLLMを開いている場合ほど、更新の意味は大きい(編集部の読み)。

更新の前に確かめたいこと

Python 3.10では動かなくなり、3.11以上が要る。transformersとtokenizersの版の指定も上がった。出力の上限を決めるmax_tokensの扱いも変わった。これまでは指定した分を入力の枠から先に取り分けていたので、長い入力が断られることがあった。今後は単なる上限になり、長い入力でも通る。逆に言えば、出力が途中で切れる場面は出うる(編集部の読み)。

新しく動くモデルには、GoogleのEmbeddingGemma 2やNVIDIAの音声認識Nemotron 3.5 ASRなどが加わった。入れ方はこれまでどおりpipかDockerで、CUDA 13.0向けが標準だ。

Responses APIで推論の途中経過を流す時のイベントも変わった。これまでの「response.reasoning_part.added」と「response.reasoning_part.done」は、「response.content_part.added」と「response.content_part.done」になり、中身の種類が「reasoning_text」で示される。古い名前で推論の表示を組んでいる画面は、書き換えが要る。

速さの面では、低い精度でKVキャッシュを持つ対応がGPUの世代を広げ、メモリーを減らせる場面が増えた。複数のAPIの窓口を立てた時に、いちばん空いている窓口へ回す変更もあり、入力32トークン、出力1トークンの短い呼び出しを小さなモデルで流した計測で、1秒あたりの処理が43〜85%増えたという(変更のプルリクエストでの計測)。

編集部の見方

自前でモデルを動かす人にとって、今回の要点は速さよりも既定値の変更だ。社内のブラウザーから届く場所に鍵なしで立てていたvLLMは、どのサイトのスクリプトからでも応答を読まれうる状態だった。更新すればその穴はふさがるが、ブラウザーから呼ぶ画面は止まる。Pythonの版とmax_tokensの扱いも含め、検証用の環境で一度動かしてから本番を上げたい。

出典

に確認(日本時間)

  1. 0.32のリリースノート(github.com)
  2. 変更を提案したプルリクエスト(github.com)
  3. 変更のプルリクエストでの計測(github.com)

この記事をシェア

この記事は役に立ちましたか