LM StudioのAPI接続で”Reached context length of 4096 tokens”エラーが出た時の対応方法

ローカル環境で手軽に大規模言語モデル(LLM)を試せる「LM Studio」。その中でも、OpenAI互換のAPIサーバーを起動できる機能は、とても便利で面白い強力なツールです。しかし、このAPIを利用して長い文章や複雑な対話をさせようとすると、突然こんなエラーメッセージに遭遇したことはありませんか?

これは、モデルが一度に処理できるテキストの量(トークン数)の上限に達してしまったことを示すエラーです。デフォルト設定のままだと、この上限は4096トークンと比較的短く設定されていることが多く、少し長い会話履歴やプロンプトを入力するとすぐに上限に達してしまいます。

コンテキスト長とは、LLMが対話の文脈を理解するために一度に保持できる情報の量のことです。

LM Studioは、多くのモデルでコンテキスト長のデフォルト値を「4096」に設定しています。そのため、API経由でそれを超える長さのテキストを処理させようとすると、エラーが発生してしまいます。

【3ステップで解決】コンテキスト長の設定変更方法

解決策は非常にシンプルです。サーバー設定から、このコンテキスト長の上限を引き上げてあげましょう。

Step 1: サーバーオプション(歯車マーク)を開く

LM Studioを起動し、使用したいモデルを選択してロードします。モデルがロードされた状態で、画面の左側にある歯車マーク(Server Options)を探してクリックしてください。

Step 2: 「Context Length」のつまみを右に動かす!

歯車マークをクリックすると、サーバーに関する様々な設定項目が表示されます。その中から「Context Length (n_ctx)」という項目を見つけてください。

ここにあるスライダー(つまみ)が、コンテキスト長の上限を設定する部分です。このつまみを右にスライドさせて、数値を大きくしましょう。モデルが対応している範囲で、8192や16384、あるいはそれ以上に設定できます。

設定したら下に表示される「Reload to apply changes」を押して反映します。

なおMAXにすると下記のようにメモリーに関する警告が表示されます。不要な場合は「Don’t show this message again」にチェックを入れれば、次回以降は効いて今夏うなります。

これで新しい設定が反映され、より長い文章を扱えるようになります。

注意点:メモリ使用量とのバランスを

少しだけ注意が必要です。コンテキスト長を大きくすると、その分PCのメモリ(RAM)使用量も増加します。PCスペック、特に搭載しているメモリの容量を考慮しながら、最適な値に調整しましょう。もし動作が不安定になった場合は、コンテキスト長の値を少し下げてみてください。

HPE ProLiant DL360 Gen9 に LM Studio と gpt-oss-120b を導入してCPUのみで動かしてみた検証結果とパフォーマンス

巷で話題のオープンソースLLMを使ってみたい!

ということで今回は、かなり前の世代のサーバーである HPE ProLiant DL360 Gen9 に、ローカルLLM実行環境として人気の LM Studio を導入し、大規模モデルの一つである openai/gpt-oss-120b を動作さてみましたので、その仕様メモを共有します。結論から言うと「とりあえず動くけど、やっぱり遅い」という結果になりました(笑)

検証環境

  • サーバー: HPE ProLiant DL360 Gen9
  • CPU: Intel Xeon E5-2623 v4 @ 2.60GHz (1基搭載)
  • メモリ: 192GB DDR4
  • ストレージ: HDD 300GB SAS (RAID-1)
  • OS: Windows 10 Pro
  • ローカルLLMランタイム: LM Studio 0.3.23
  • 実行モデル: openai/gpt-oss-120b

LM Studio のインストールとモデルのダウンロード

LM Studio のインストール自体は非常に簡単です。公式サイトからダウンロードし、インストールして実行するだけです。

初回起動時にgpt-oss-20bをダウンロードしようとしますがお断り(スキップ)しています。openai/gpt-oss-120b モデルは、LM Studio 内の左下虫眼鏡の検索機能を使って簡単に見つけることができます。今回は Q4_K_M 量子化バージョンをダウンロードしました。このモデルファイルは量子化されていても非常に大きく約 63.39 GB でした。

モデルのロードと実行

LM Studio を起動し、ダウンロードした gpt-oss-120b をロードします。ロード自体には、サーバーのI/O性能にもよりますが数分かかります。

そして、いよいよチャットインターフェースでプロンプトを送信してみます。

動作確認

プロンプト「自己紹介をしてください」に対する応答は、確かに生成されました。内容も自然な日本語で、モデルの性能自体は問題なさそうです。

パフォーマンスの課題

しかし、応答速度はかなり遅いと言わざるを得ません。トークンの生成が始まってからも、1文字ずつゆっくりと現れるような感覚です。短文の生成でも数秒~数十秒、長文になれば1分以上かかることも珍しくありませんでした。

LM Studio のリソースモニターを確認すると、CPU使用率はかなり高めを推移し、メモリもモデルロード後は常に50GB以上が消費されている状態でした。特にCPUのコア数が多くても、シングルスレッド性能がボトルネックになっている箇所も散見されました。

仕様メモと考察

  • モデルサイズ: openai/gpt-oss-120b の Q4_K_M 量子化版は約 63GB。このサイズから、やはり大量のメモリ(RAMまたはVRAM)が必要になります。今回は192GBの潤沢なRAMがあったため、メモリ不足でクラッシュすることはありませんでした。
  • メモリ消費: モデルのロードと実行には、上記のモデルサイズに加え、LM Studio自体やOSのオーバーヘッド、そして推論時のテンポラリ領域などで、最終的には65GB以上のRAMが消費されます。
  • CPU依存性: DL360 Gen9 の Xeon E5 v4 は、当時のサーバー向けCPUとしては高性能でしたが、現代のLLM推論においては、特に AVX-512 命令セットに対応した最新世代のCPUや、さらに言えばGPUの推論性能には遠く及びません。LM Studio はCPU推論も可能ですが、やはり大規模モデルでは処理能力が不足します。
  • ディスクI/O: モデルファイルのロードやスワップ発生時などに、ストレージの速度も影響します。
  • 遅延の要因: 主な遅延要因は、やはりCPUの演算能力不足と、モデルサイズに対するメモリ帯域幅の限界にあるかと。GPUを使用しない場合、モデルの全パラメータをCPUで処理する必要があるため、計算負荷が非常に高くなります。

まとめ

HPE ProLiant DL360 Gen9 で openai/gpt-oss-120b を動かすことは「可能」でしたが、「実用的」とは言い難い結果となりました。これは、あくまでCPUベースの推論であり、この規模のモデルにはやはり専用のGPUアクセラレータ(特にVRAM容量の大きいもの)が必須です。

生成されたトークンのスピードは、3.32 tok/sec 877 tokens 14.10s to first token でした。

しかし、古いサーバーを再活用してLLMに触れてみる、という点ではいいかんじです。とりあえず動くというのが感動します。

  • メリット:
    • 既存のサーバーリソースを有効活用できる。HP Gen9はヤフオクで1万円で買えるので。
    • LM Studio の手軽さで、比較的簡単に大規模モデルを試せる。
  • デメリット:
    • 推論速度が非常に遅い。くそ遅い。待ちきれない。
    • 消費電力に対するパフォーマンスが悪い。あと音もうるさい。
    • DL360 Gen9 に高性能GPUを搭載するのは難しい(電源や冷却、PCIeスロットの制約)。

もし、居ないとは思うけど、古いサーバーでLLMを動かすことを検討されているのであれば、より小規模なモデル(例: Llama 7B/13B クラス)であれば、もう少し実用的な速度で動作する可能性があります。あるいは、GPU搭載可能なサーバーやワークステーションに移行することが、LLMの本格的な活用には不可欠と言えるでしょう。

今回の検証が、同様の環境でLLMのローカル実行を検討されている方の参考になれば幸いです。

GMKtec EVO-X2 AI ミニPC AMD Ryzen AI Max 395、LPDDR5X 8000MHz 128GB 2TB SSD (Max.8TB) Windows 11 PRO ゲーミングPC、AMD Radeon 8060S RJ45/Wi-Fi 7/BT 5.4、4画面 HDMI 2.1/DP 1.4/USB4 70Bパラメータ対応 静音ビジネス ゲーミング向け

新品価格
¥393,990から
(2025/8/29 08:41時点)

真面目に、Ryzen AI Max+ 395 に 128GB メモリが搭載されたものを買ったほうが幸せですよ!
一時期、在庫がなくなっていましたが復活しているようです。マジほしい・・・。

SKYSEA Client View 20.2未満の場合、USBデバイスが読み取り専用となる設定を回避して自由に書き込みを行う方法

SKYSEA Client View 20.2以降では使えません。古いバージョンだとUSBへ自由に書き込み可能。

SKYSEAでUSB書き込み制限を行っている環境はよくあると思いますが、至急USBに書き込みたいという要件もあったりしますよね。そんなときに、いちいち情シスや管理者に連絡して制限解除してもらったりするのも面倒なものです。
そんな時に、下記の手順を行うことでUSBに書き込むことが出来ます。

なおこれは脆弱性ではなく、仕様とのサポート回答でした。またSKYSEAバージョン20.2以降へのアップデートで書き込み制限が可能になりますが、書き込み時のアラート通知機能は最新版でも未対応です。

■前提

・PC管理者権限(Administrators)であること
・SKYSEA Client View 20.2未満であること

■事象の概要

SKYSEA Client ViewでUSBデバイスへの書き込みを禁止する設定を行っているにもかかわらず、一部のデバイスで書き込みができてしまいます。
これは、SKYSEA Client Viewの仕様に起因しています。書き込み制御の対象となるのは、PC上でドライブレター(例:D:\やF:\など)として認識されるデバイスのみとなっており、ドライブレターを持たない形式で認識されるデバイスは、Ver20.2未満では制御の対象外となっていました。

■手順

1.USBをPCに接続して「ディスクの管理」(diskmgmt.msc)を開く。USBを選択して右クリックを行い「ドライブ文字とパスの変更」を押す。

2.現在設定されているドライブレターを選択して「削除」をおす。

3.確認が出るので「はい」を押す。

4.再度「ディスクの管理」でUSBを選択して右クリックを行い「ドライブ文字とパスの変更」を押す

5.「追加」ボタンを押す

6.「次のからのNTFSフォルダーにマウントする」を選択して、任意の空のフォルダを参照してOKを押す。

7.フォルダに対して読み書きをすることで、USBへ書き込みを行える

まとめ

  • 事象:Ver.20.1以前では、ドライブレターを持たないUSBデバイスへの書き込みが制限できない(製品の制限事項)。
  • 見解:PC管理者権限が必要なため、SKY側は脆弱性ではないと判断しているようです。
  • 対策バージョン20.2以降へのアップデートで、書き込み制限が可能になります。
  • 課題:書き込み時のアラート通知機能は、最新版でも未対応です。

情シス担当としては、一刻も早くバージョンアップする必要がありそうですね。

【Excelマクロトラブル】ボタンを押してもマクロが動かない!原因と解決策は「デュアルディスプレイ」「フォームコントロール」への乗り換え

「昨日まで問題なく動いていたExcelマクロが、なぜか今日になったら動かない…」

Excelで業務効率化を図っている方なら、一度はこんな冷や汗をかく経験があるかもしれません。マクロが動かないと、焦りますよね。

実は先日、まさにこの現象に遭遇しました。色々と原因を切り分けていくと、意外なところに落とし穴が。それは、デュアルディスプレイ環境と「ActiveX コントロール」のボタンの相性問題でした。

今回は、このニッチで厄介な問題の切り分けから、具体的な解決策までを詳しくご紹介します。

事件発生!マクロ実行ボタンが沈黙

いつものようにマクロを組んだExcelファイルを開き、実行用のボタンをクリック。しかし、うんともすんとも言いません。マクロが実行される気配が全くないのです。

「あれ?マクロ無効にでもなってる?」

最初に疑ったのは、基本的なExcelの設定です。例えば下記などですね。

【試したこと①】一般的なトラブルシューティング

まずはマクロやActiveXが動作しない時の定番チェック項目を確認しました。

  • トラストセンターのActiveX設定
    • [ファイル] > [オプション] > [トラストセンター] > [トラストセンターの設定] > [ActiveXの設定]
    • 「先に確認メッセージを表示してから、最低限の制限を適用してすべてのコントロールを有効にする」に設定。
    • → 改善せず
  • ファイルのプロパティ
    • 対象のExcelファイルを右クリック > [プロパティ]
    • 「セキュリティ:このファイルは他のコンピュータから取得したものです…」のメッセージと「許可する」チェックボックスがあるか確認。
    • → そもそもこの項目が表示されておらず、設定変更できず
  • トラストセンターのマクロ設定
    • [マクロの設定]で「警告を表示してすべてのマクロを無効にする」になっていることを確認。
  • メッセージバーの設定
    • [メッセージバー]で「アクティブコンテンツがブロックされた場合、すべてのアプリケーションにメッセージバーを表示する」になっていることを確認。

これらの設定はすべて問題ありませんでした。マクロを有効にするためのメッセージバーも表示され、コンテンツの有効化は済んでいます。にもかかわらず、ボタンは反応しません。

原因の切り分けで見えてきた「ある環境」

基本的な設定に問題がないとなると、次に疑うべきは「環境」です。

  1. マクロのコードは正しいか?
    → VBE(Visual Basic Editor)を開き、手動でマクロを実行(F5キー)すると、問題なく動作しました。コード自体にエラーはなさそうです。
  2. 他のPCでは動くか?
    → 別のPCで同じファイルを開くと、問題なくボタンが動作しました。

この時点で、問題はファイルやマクロのコードではなく、私のPC環境に依存する何かであることが濃厚になりました。

そして、ふと気づきます。
「そういえば最近、作業効率化のためにデュアルディスプレイにしたな…」

まさかと思いつつ、Excelのウィンドウをメインディスプレイに移動させてボタンをクリックしてみると…

動きました!

再度、サブディスプレイにウィンドウを移動してクリックすると、また沈黙。
原因はこれでした。サブディスプレイ側でExcelを開いていると、マクロ実行用の「ActiveX コントロール」のボタンが機能しなかったのです。

なぜActiveXボタンは動かなかったのか?

この現象は、Excelのバージョン、Windowsのアップデート、グラフィックドライバなどが複雑に絡み合って発生する、環境依存の不具合だと考えられます。結構古い記事などでもActiveXがサブディスプレイ側で動作しないといった事象があったようです。

ActiveXコントロールは、Windowsの機能を深く利用するリッチな部品ですが、その分、こうした環境の変化に影響を受けやすいという側面があります。根本的な原因を特定して解消するのは、非常に困難なケースが多いのが現実です。

解決策:さよならActiveX!「フォームコントロール」を使おう

根本原因の解決が難しいなら、アプローチを変えましょう。
幸い、Excelにはボタンを設置する方法がもう一つあります。それが「フォームコントロール」です。

ActiveX コントロールフォームコントロール
特徴高機能、プロパティが豊富
見た目のカスタマイズ性が高い
シンプル、互換性が高い
安定して動作する
弱点環境依存の不具合が起きやすい機能やデザインがシンプル

今回のケースのように、マクロを実行するだけのシンプルなボタンであれば、互換性が高く安定している「フォームコントロール」への乗り換えが最も確実で手早い解決策です。

【簡単3ステップ】フォームコントロールのボタンに乗り換える方法

マクロのコードを1行も変更する必要はありません。ボタンを入れ替えるだけです。

Step 1: 開発タブからボタンを挿入

  1. Excelのリボンから[開発]タブをクリックします。(※表示されていない場合は、[ファイル] > [オプション] > [リボンのユーザー設定]で[開発]にチェックを入れてください)
  2. [挿入]をクリックし、「フォームコントロール」の中から[ボタン]を選択します。

Step 2: ボタンを配置してマクロを登録

  1. シート上のボタンを置きたい場所でドラッグして、ボタンを作成します。
  2. ボタンを配置すると、自動的に「マクロの登録」ダイアログボックスが開きます。
  3. ここで、このボタンで実行したいマクロを選択し、[OK]をクリックします。

Step 3: 古いボタンを削除

新しいボタンが問題なく動作することを確認したら、今まで使っていた古いActiveXのボタンは削除してしまいましょう。(ActiveXコントロールを削除するには、開発タブの「デザインモード」をオンにしてから選択・削除します)

たったこれだけで、デュアルディスプレイのどちらの画面にExcelがあっても、問題なくマクロが実行できるようになりました!

まとめ

今回のExcelマクロトラブルから得られた教訓は以下の通りです。

  • デュアルディスプレイ環境では、ActiveXコントロールが正常に動作しない場合がある。
  • 一般的なトラストセンターの設定を見直しても解決しないときは、PC環境(特にディスプレイ環境)を疑ってみる。
  • 原因不明の不具合に直面したら、安定性の高い「フォームコントロール」への乗り換えが有効な解決策になる。

もし、あなたも同じように「Excelボタンが動かない!」と悩んでいたら、ぜひ今回の「フォームコントロールへの乗り換え」を試してみてください。2画面は手放せないのでActiveXを手放しましょう(笑)