[ChatStream] LLMの読み込みが長いときは Generator Mock レスポンス
こんにちは! (株)Qualiteg プロダクト開発部 です!
本稿では、LLMの読み込みに時間がかかるときに使えるテクニックについてご紹介いたします。
テスト用途や、ChatStream の API をつかったサンプルアプリを実装したいときに、何度か ChatStream を再起動しては、試してみたいというシーンがあります。そういうときに、本来は LLM として読み込まなくても、ChatStreamのAPIにそった”決まり切った”レスポンスで問題がないという場合があります。
このとき、サイズの小さなLLMを読んで読み込み時間を短縮するというワザもあるのですが、そもそも、固定的なレスポンスを返してくれればそれでOKという場合は、 Mockレスポンス を指定することができます。
再起動のたびに、 LLM を読み込む時間にストレスを感じていた方はぜひこちらをお試しくださいませ!
Generator Mockレスポンスの利用(高速起動)
Generator Mockレスポンスを使用すると読み込みに時間のかかる事前学習済言語モデルのかわりに、ダミーの文章を生成させることができます
使用方法
chat_stream = ChatStream(
use_mock_response=True,
mock_params={"type": "echo", "initial_wait_sec": 1, "time_per_token_sec": 1},
chat_prompt_clazz=ChatPrompt,
)
ChatStream クラスのコンストラクタ引数
- use_mock_response ... True ジェネレーターモックレスポンスを有効にする。
- mock_params ... ジェネレーターモックレスポンスの生成ルールを指定する
- chat_prompt_clazz ... プロンプト履歴管理クラス
mock_params パラメータ
パラメータ名 | パラメータ値 | 説明 |
---|---|---|
type | round | 100ワード程度のダミー文章をラウンドロビン方式で生成する |
long | 長文のダミー文章を生成する | |
echo | ユーザーが入力した文字列をそのまま返す | |
initial_wait_sec | 数値(秒) | 文章生成開始までの待ち時間を 秒 で指定する |
time_per_token_sec | 数値(秒) | 1トークンあたりの生成時間。 |
上記設定のようにすると、 ChatStream はLLM を読み込む必要がないため、一瞬!で起動します。
Transformer Mockとの違い
類似の機能に Transformer Mockモード があります。
https://blog.qualiteg.com/transformerying-da-womotukusuru/
Transformer Mock モードは 実際のModel,Tokenizerの挙動を記録して再現するのにたいして Generator Mock は
入力を受け取った後、ダミーの文章で応答します。 Transformer Mock モードは決められた入力しか受け付けられませんが、Generator Mockは
どのような入力でもダミーの文章で応答します。
用途に応じて使い分けることができます。