モデルサービングModel Serving

作っておいたモデルを大勢が使えるように出す仕事

  • 基本
  • 5分で読める
  • 図 3点

ポイント

  • モデルサービングは学習を終えたモデルをコンピューターに載せておき、届く要求ごとに答えを返す運用の仕事です。
  • モデルファイルがあればすぐ使えるわけではありません。載せて準備させる時間が別に必要です。
  • 要求が集中すると**待ち行列ができます。**増えた分だけ処理する席を増やし、落ち着けばまた減らします。
  • 一度に複数をまとめて処理すると全体の処理量は増えますが、まとまりが大きくなるほど一人の応答は少しずつ遅くなります。
  • 新しい版に替えるときはたいてい一度に全部は切り替えません。一部だけ先に乗せてみて問題がなければ広げます。

たとえで理解する

新しいバスが車庫に入ったからといって誰でも乗れるわけではありません。路線に組み込み、時刻表を組み、始発の前にエンジンをかけておいて初めて人が乗ります。車を作る仕事と客を乗せる仕事はまったく別の仕事です。

モデルサービングはこの配車です。学習を終えたモデルは車庫に停めた車と同じで、コンピューターに載せて準備させて初めて要求を受けられます。通勤時間に車を増やすように人が集まれば処理する席を増やし、落ち着けば減らします。

一台が故障しても路線が止まってはいけないので予備車を用意し、新しい車に替えるときも一台ずつそっと差し込みます。

くわしく

車庫に停めておくだけでは誰も乗れません

モデルを作る仕事と出す仕事は担当が違うほど性格が違います。学習は一度大きく行う工事に近く、サービングは毎日同じ時刻に車を出す運用です。学習が終わってファイルが出たというのは、車が完成したという意味にすぎません。

要求を受けるには、モデルを計算装置のメモリにまるごと載せておかなければなりません。この準備にかかる時間が短くないので、要求が来るたびに載せたり下ろしたりすると答えがずいぶん遅れます。だからたいていは点けたまま待たせます。しばらく使われていなかった席で最初の要求が特に遅いのは、そのときエンジンをかけているからです。

点けている間は誰も使わなくても席の値段はかかります。どれだけ点けておくか、夜は消しておくかといった決定がそのまま費用になる理由です。

混み合う時間には車を増やします

一つの席が一度に処理できる要求の数には限りがあります。その限りを超えて要求が入ると、前の人の計算が終わるまで後ろの人は列で待ちます。利用者が感じる「今日はやけに遅い」は、モデルが急に悪くなったからではなく、列が長くなり一度に処理する量が増えたせいであることがあります。

だからサービングには混む分だけ席を増やし、落ち着けば減らす仕組みを付けます。ただし席を新しく開くにも準備の時間がかかるので、急に集中すると増える速さが列の伸びる速さに追いつきません。あらかじめいくつかの席を温めておく理由です。

一台に複数を乗せます

要求を一つずつ処理するより複数をまとめて一度に計算するほうがずっと効率がよいです。計算装置は一度にたくさんの仕事を処理するよう作られているので、一人だけ乗せて出発すると席が空いてしまうことになります。

以前はまとまりが埋まるまで少し待ちましたが、最近の対話型言語モデルのサービングは、走っている途中でも空きが出れば新しい要求をすぐ乗せます。それでも一度に乗せる人が多いほど一歩一歩が重くなるので、一人が感じる応答は遅くなります。全体をたくさん処理する側と一人に速く答える側は互いに取り引きする関係なので、サービスの性格に応じてどちらに重みを置くか決めます。リアルタイムで言葉をやり取りする対話ならまとまりを小さめにし、一晩かけて文書を調べる用件なら束を大きくします。

新しい版は一台ずつ差し込みます

モデルを新しい版に替えるとき、すべての席を一度に切り替えると、問題があったとき全員が一度に影響を受けます。だから席をいくつかだけ新しい版に載せて一部の要求を乗せてみて、答えの質と速さを見守ってから広げます。おかしければその席だけ元の版に戻せばよいのです。

古い版をしばらく一緒に立てておくこともあります。答えの言い回しや形式が変わると、その答えを受けて使うプログラムも一緒に揺らぐので、移る時間を与えるのです。

車庫をどこに置くか

一番よくある方式はサービス会社が車庫を持ち、使う側は要求だけ送ることです。席を増やしたり減らしたりする仕事、夜に故障した車を替える仕事を任せる代わりに、使った分だけお金を払います。

資料を外に出してはいけない場合や、いつも同じ量を安定して使う場合は自分で車庫を持つこともあります。最近は小さいモデルを利用者の機器やブラウザにまるごと載せて動かす方式も使われます。このときは車庫が一人ひとりに一つずつできる形になるので待ち行列の心配は消えますが、最初にダウンロードする時間と機器の性能が新しい壁になります。

もう少し正確に

特に対話型の言語モデルをサービングするとき、一番よくぶつかる詰まりは計算速度よりメモリです。モデルはまるごとメモリに載っていなければならず、会話が長くなればその会話を抱えている席も一緒に大きくなります。一つの席が同時に受けられる要求数が決まるのも、たいていこのメモリのせいです。だからモデルを軽くして載せたり、会話を抱えている席を細かく分けて隙間なく使ったり、同じ書き出しを持つ要求同士ではその部分の計算結果を共有したりする方法を一緒に使います。

たとえがずれる点もあります。バスは定員が目に見えて決まっていますが、サービングの席の定員は要求の長さによってその都度変わります。バスは決まった路線だけ回りますが、同じモデルはあらゆる要求を全部受けます。何よりバスは乗客を運べば仕事が終わりますが、サービングは答えを返した後も速さと誤りを見守り続けて席を調節する仕事が続きます。よく回っているサービングほど、使う人の目にはなにも起きていないように見えます。

やってみる

よくある誤解

  • 学習が終わればすぐ使えると思われがちですが、実際には載せて見守る運用が別にあって初めて人々が使えます。

  • 応答が遅いのはモデルのせいだけだと思われがちですが、実際にはモデルの大きさや答えの長さのほかにも、前に並んだ待ち行列やまだ準備できていない席のせいで遅くなることが少なくありません。

  • サービングは学習より軽い仕事だと思われがちですが、実際には一日中点けたまま動くため、長く使うほどかかる力が大きくなることもあります。

ひとこと要約

つまり

モデルサービングは作っておいたモデルを路線に組み込む配車のような仕事なので、どれだけよいモデルかより、どれだけ途切れず時間どおりに答えるかが肝心です。

誤りや、もっと良いたとえがありますか? 修正を提案する · 最終更新 2026-10-18