ドキュメンテーション
テキスト補完
ロードされた言語モデルからテキスト補完を生成するには、llm.complete(...)
を使用します。テキスト補完とは、フォーマットされていない文字列をモデルに送信し、モデルがテキストを補完することを期待するものです。
これは、複数ターンにわたるチャット会話とは異なります。チャット補完の詳細については、チャット補完をご覧ください。
まず、補完を生成するためのモデルをロードする必要があります。これは、トップレベルのllm
コンビニエンスAPIを使用するか、スコープ付きリソースAPIを使用する場合にllm
名前空間内のmodel
メソッドを使用することで行うことができます。例えば、Qwen2.5 7B Instructの使用方法は以下のとおりです。
import lmstudio as lms
model = lms.llm("qwen2.5-7b-instruct")
モデルをロードしたら、llm
ハンドル上のcomplete
メソッドに文字列を渡すことで補完を生成できます。
# The `chat` object is created in the previous step.
result = model.complete("My name is", config={"maxTokens": 100})
print(result)
生成に使用されたモデル、生成されたトークンの数、最初のトークンまでの時間、停止理由など、予測のメタデータも出力できます。
# `result` is the response from the model.
print("Model used:", result.model_info.display_name)
print("Predicted tokens:", result.stats.predicted_tokens_count)
print("Time to first token (seconds):", result.stats.time_to_first_token_sec)
print("Stop reason:", result.stats.stop_reason)
ここでは、complete
メソッドを使用してターミナルをシミュレートする方法の例を示します。
import lmstudio as lms
model = lms.llm()
console_history = []
while True:
try:
user_command = input("$ ")
except EOFError:
print()
break
if user_command.strip() == "exit":
break
console_history.append(f"$ {user_command}")
history_prompt = "\n".join(console_history)
prediction_stream = model.complete_stream(
history_prompt,
config={ "stopStrings": ["$"] },
)
for fragment in prediction_stream:
print(fragment.content, end="", flush=True)
print()
console_history.append(prediction_stream.result().content)
.complete()
のconfig
キーワードパラメータを介して、推論パラメータを渡すことができます。
prediction_stream = model.complete_stream(initial_text, config={
"temperature": 0.6,
"maxTokens": 50,
})
設定可能な内容の詳細については、モデルの設定をご覧ください。
長いプロンプトは、最初のトークンまでに時間がかかることがよくあります。つまり、モデルがプロンプトを処理するのに長い時間がかかります。このプロセスの進捗状況に関する更新を取得したい場合は、プロンプト処理の進捗状況を0.0〜1.0の浮動小数点数で受け取るフロートコールバックをcomplete
に提供できます。
import lmstudio as lms
llm = lms.llm()
completion = llm.complete(
"My name is",
on_prompt_processing_progress = (lambda progress: print(f"{progress*100}% complete")),
)
on_prompt_processing_progress
に加えて、利用可能なその他のプログレスコールバックは次のとおりです。
on_first_token
: プロンプト処理が完了し、最初のトークンが発行された後に呼び出されます。引数は受け取りません(トークンが発行されるときに処理するには、ストリーミングイテレーションAPIまたはon_prediction_fragment
を使用します)。on_prediction_fragment
: クライアントが受信した各予測フラグメントに対して呼び出されます。ストリームイテレーションAPIを反復処理する場合と同じ予測フラグメントを受け取ります。on_message
: 予測が完了したときに、アシスタント応答メッセージとともに呼び出されます。受信したメッセージをチャット履歴インスタンスに追加することを目的としています。このページについて
1. モデルのインスタンス化
2. 補完の生成
3. 予測統計の出力
例: LLMにターミナルをシミュレートさせる
推論パラメータのカスタマイズ
プログレスコールバック