リソース/モデルのトレーニング/モデルの試行とサービング

概念

推論とデプロイメント

推論とは、モデルを使用して回答を生成することです。トレーニング済みモデルは、まずデプロイされる(エンドポイントの背後にあるハードウェアに重みが読み込まれる)必要があり、これには数分かかる場合があります。その後、トークン単位または時間単位でコストが発生します。

第9章読了時間 2分参考文献 4件

概要

推論とは、トレーニング後に発生するすべてのプロセスです。プロンプトが入力され、モデルが回答を生成します。何も学習されず、重みは固定されたままです。すべてのテストチャット、すべての評価回答、すべての判定結果、および本番環境でのすべての応答は推論です。

仕組み

モデルはテキストを1トークンずつ生成します。まず、プロンプト全体を1回のパスで読み込みます(プレフィルと呼ばれます)。すべてのトークンを並列処理できるため、これは高速です。次にデコードを行います。次のトークンを予測して追加し、終了トークンを生成するか長さの制限に達するまでこれを繰り返します。新しいトークンごとにモデルを再度パスする必要があるため、長い質問よりも長い回答の方が時間がかかります。

  • 最初のトークンまでの時間は主にプレフィルです。プロンプトが長いほど、何かが表示されるまでの待ち時間が長くなります。
  • 1秒あたりのトークン数はデコード速度です。これにより、回答がストリーミングされる速さが決まります。
  • 温度などのサンプリング設定により、モデルの確率から次のトークンがどのように選択されるかが決まります。値が低いほど回答は予測可能になり、値が高いほど多様になります。
  • バッチ処理:サーバーは一度に多くのリクエストに応答し、GPUを稼働させ続けます。vLLMなどのサービングシステムはメモリ管理に優れており、同じレイテンシで以前のシステムよりもスループットを2〜4倍向上させました。

デプロイメント

トレーニングにより、プロバイダーに保存される重みのセットが生成されます。回答するには、これらの重みをデプロイする必要があります。つまり、リクエストを受け付けるエンドポイントの背後にある1つ以上のGPUのメモリに読み込まれます。必要なメモリは、おおよそパラメータ数にパラメータあたりに使用されるバイト数を掛けたものになります。

大規模モデルに大規模なハードウェアが必要な理由
memory for weights ≈ parameters × bytes per parameter

7B model  × 2 bytes (16-bit)  ≈ 14 GB
70B model × 2 bytes (16-bit)  ≈ 140 GB  → several GPUs

そのハードウェアを割り当て、重みをダウンロードしてGPUメモリに読み込むプロセスがコールドスタートです。マネージドモデルの場合、これは通常迅速または目に見えませんが、専用GPU上のオープンモデルの場合は10〜40分かかることがよくあります。一度読み込まれると、デプロイメントはウォーム状態を保ち、存在する限り数秒で応答します。

  1. 01期間の選択時間あたりのコストを事前に表示
  2. 02デプロイ中重みの読み込み · コールドスタート
  3. 03稼働中チャット · 課金進行中
  4. 04削除中課金停止
専用デプロイメントは、使用の有無にかかわらず、存在する時間ごとに課金されます。ライフサイクルは削除することで終了します。
実践例:調整済みオープンモデルのテスト
  1. 80億パラメーターのオープンモデルでの教師あり実行が完了しました。16ビット精度ではその重みは約16 GBを占めるため、それ以上のメモリを搭載したGPUと、処理されるリクエスト用のスペースが必要になります。
  2. 2時間のテストチャットを開始します。何かが作成される前に、1時間あたりの価格が表示されます。
  3. デプロイ中: GPUが割り当てられ、重みが読み込まれます。これには約15分かかります。デプロイの課金が開始されています。
  4. ライブ: 各質問には1〜2秒で回答されます。先週の実際の質問を10個試します。
  5. 作業を早く終え、セッションを終了します。Deleting によりデプロイメントが削除され、課金が停止します。コスト:質問の数に関わらず、デプロイメントが存在した時間 × 時間単価となります。

よくある間違い

  • 「念のため」専用デプロイメントを一晩中稼働させたままにする — 使用の有無に関わらず、時間単位で課金されます。
  • コールドスタート後の最初の回答や、まだ読み込み中であるときの応答時間でモデルを評価する。
  • 評価で使用したものとは異なるサンプリング設定や異なるシステムプロンプトでテストする。
  • ファインチューニングされたモデルがトレーニング後に起こった出来事を知っていると期待する — 推論では学習は行われません。

参考文献および関連資料

外部ソースは新しいタブで開きます。

  1. 01Efficient Memory Management for Large Language Model Serving with PagedAttentionKwon et al., 2023 · arXiv · arxiv.orgvLLMの論文:サービングシステムがリクエストをバッチ処理し、GPUメモリを管理する方法。
  2. 02Text Generation InferenceHugging Face docs · huggingface.coオープンモデル向けの本番用サービングスタックとその機能の解説。
  3. 03Inference EndpointsHugging Face docs · huggingface.coマネージドエンドポイントの背後にモデルをデプロイすることの意味。
  4. 04Cold start (computing)Wikipedia · en.wikipedia.orgコールドスタートの一般的な概念。

専門家が数週間かける作業を数分に短縮します

Scalataがお客様のチーム、データ、および統制にどのように適合するかをご確認ください。

営業へのお問い合わせ