プロビジョニングされたスループットにおける 1 秒あたりのトークンの範囲は何を意味しますか?
この記事では、Databricks が基盤モデルAPIのプロビジョニングされたスループット ワークロードの 1 秒あたりのトークンを測定する方法とその理由について説明します。
大規模言語モデル (LLM) のパフォーマンスは、多くの場合、1 秒あたりのトークン数で測定されます。 本番運用モデルサービング エンドポイントを構成するときは、アプリケーションがエンドポイントに送信するリクエストの数を考慮することが重要です。 そうすることで、レイテンシーに影響を与えないようにエンドポイントをスケーリングするように構成する必要があるかどうかを把握できます。
プロビジョニングされたスループットでデプロイされたエンドポイントのスケールアウト範囲を構成する場合、Databricks は、トークンを使用してシステムに入力される入力を推論する方が簡単であることに気付きました。
トークンとは?
LLM は、いわゆるトークンという観点からテキストを読み取り、生成します。 「なんと」は単語またはサブ単語にすることができ、テキストをトークンに分割するための正確なルールはモデルごとに異なります。 たとえば、オンライン ツールを使用して、 Llama のトークナイザーがどのように単語をトークンに変換するかを確認できます。
なぜLLMのパフォーマンスをトークン/秒で測定するのですか?
従来、サービス提供エンドポイントは 1 秒あたりのライナー リクエスト数 (RPS) に基づいて構成されていました。 ただし、LLM 推論リクエストにかかる時間は、渡されるトークンの数と生成されるトークンの数に基づいて異なり、リクエスト間で不均衡になる可能性があります。 したがって、エンドポイントに必要なスケールアウトの量を決定するには、リクエストの内容 (トークン) の観点からエンドポイントのスケールを測定する必要があります。
ユースケースが異なれば、入力トークンと出力トークンの比率も異なります。
入力コンテキストの長さの変化: 短い質問など、いくつかのリクエストには数個の入力トークンのみが含まれる場合もありますが、要約用の長い文書など、数百、さらには数千のトークンが含まれるリクエストもあります。 この変動性により、RPS のみに基づいてサービスを提供するエンドポイントを構成することは困難になります。これは、さまざまなリクエストのさまざまな処理要求を考慮していないためです。
ユースケースに応じた出力の長さの変化: LLM のユースケースが異なると、出力トークンの長さが大幅に異なる場合があります。 出力トークンの生成は、LLM 推論で最も時間がかかる部分であるため、スループットに劇的な影響を与える可能性があります。 たとえば、要約にはより短く、より簡潔な回答が含まれますが、記事や製品の説明を書くようなテキスト生成では、はるかに長い回答が生成される可能性があります。
エンドポイントの 1 秒あたりのトークン範囲を選択するにはどうすればよいですか?
プロビジョニングされたスループットを提供するエンドポイントは、エンドポイントに送信できる 1 秒あたりのトークンの範囲に基づいて構成されます。 エンドポイントは、本番運用アプリケーションの負荷を処理するためにスケールアップおよびスケールダウンします。 エンドポイントがスケールされる 1 秒あたりのトークンの範囲に基づいて、時間単位で料金が請求されます。
プロビジョニングされたスループットを提供するエンドポイントで 1 秒あたりのトークンの範囲がユースケースに適しているかを知る最善の方法は、代表的なデータセットを使用して負荷テストを実行することです。 「独自の LLM エンドポイント ベンチマークを実施する」を参照してください。
考慮すべき重要な要素が 2 つあります。
Databricks が LLM のトークン/秒のパフォーマンスを測定する方法
Databricks は、検索拡張生成のユースケースに一般的な要約タスクを表すワークロードに対してエンドポイントのベンチマークを行います。 具体的には、ワークロードは次のもので構成されます。
2048 入力トークン
256 出力トークン
表示されるトークン範囲は、入力トークンと出力トークンのスループットを組み合わせたもので、デフォルトではスループットとレイテンシーのバランスが最適化されます。
Databricks のベンチマークでは、ユーザーがリクエストごとに 1 のバッチ サイズで 1 秒あたりその数のトークンを同時にエンドポイントに送信できるかどうかが評価されています。 これは、同時にエンドポイントに到達する複数のリクエストをシミュレートし、本番運用で実際にエンドポイントを使用する方法をより正確に表します。
オートスケールの仕組み
モデルサービングは、基盤となるコンピュートをスケーリングして、アプリケーションの毎秒のトークン数の需要を満たす高速オートスケールシステムを備えています。 Databricks では、プロビジョニングされたスループットがトークン/秒のチャンク単位でスケールアップされるため、プロビジョニングされたスループットの追加ユニットは、それらを使用している場合にのみ課金されます。