はじめに
LM Studio の公式ドキュメントの、以下のページに書かれた「lmstudio-js」(TypeScript SDK)を軽く試してみた話です。
●lmstudio-js (TypeScript SDK) | LM Studio Docs
https://lmstudio.ai/docs/typescript
自分が持っている M4 の MacBook Air でローカルLLM を行う、という話になります。
さっそく試してみる
さっそく試していきます。
ローカルLLM用のローカルサーバー
ローカルLLM用のローカルサーバーを用意します。それについては、以下の記事に書いたやり方を使います。
●ベータ版機能「LM Studio REST API」を使ってみる(curl でのお試し): M4 MacBook Air でのローカルLLM - Qiita
https://qiita.com/youtoy/items/1b9b1ca09b1af5edf0bb
利用するモデルは、上記と同じ「Gemma 3 270M」です。
パッケージのインストール
次にパッケージのインストールです。
LM Studio Docs の lmstudio-js のページや以下のページに書かれているコマンドをベースにします。
●@lmstudio/sdk - npm
https://www.npmjs.com/package/@lmstudio/sdk
用いたコマンドは、具体的には以下です。
npm install @lmstudio/sdk
コードと実行結果
今回のお試しに使ったコードは以下です。
import { LMStudioClient } from "@lmstudio/sdk";
const client = new LMStudioClient();
const model = await client.llm.model("gemma-3-270m-it");
const result = await model.respond("p5.jsについて簡単に説明して");
console.info(result.content);
そして、上記を nodeコマンドで実行してみた結果は以下のとおりです。
lmstudio-js を利用するメリット
最後に、lmstudio-js を利用するメリットについて記載します。
情報の参照元は、公式のページに書かれた以下の部分です。
OpenAI SDK ではなく lmstudio-js を使うメリット
LM Studio では、OpenAI互換の API を利用可能であるため、OpenAI SDK を使うことも可能です。それに関して OpenAI SDK ではなく lmstudio-js を使うメリットは以下があるようです。
- lmstudio-js を使うことで実現できること
- モデルのメモリへのロード/アンロード管理
- 読み込み時の各種パラメータ設定(コンテキスト長、GPU オフロード設定 など)
- スペキュレイティブ・デコーディング(Speculative Decoding)
- モデルに関する情報(コンテキスト長、モデルサイズ など)の取得
上記で、「スペキュレイティブ・デコーディング」という見慣れない内容が出てきていたのですが、公式ドキュメントを見ると、以下の内容になるようです。
●Speculative Decoding | LM Studio Docs
https://lmstudio.ai/docs/typescript/llm-prediction/speculative-decoding
その他
【追記】 Python SDK「lmstudio-python」のお試し
その後、LM Studio の Python SDK「lmstudio-python」も試しました。
●LM Studio の Python SDK「lmstudio-python」でローカルLLM の軽いお試し(M4 MacBook Air を利用) - Qiita
https://qiita.com/youtoy/items/8c1c163a7d99039eed37