AI Navigate

小さなモデルは優れたエージェントになり得る

Reddit r/LocalLLaMA / 2026/3/22

💬 オピニオンDeveloper Stack & InfrastructureIdeas & Deep AnalysisTools & Practical UsageModels & Research

要点

  • 本投稿は、30B未満の小型モデルが、複雑なタスクをより小さなステップに分解し、カスタム関数とMCPツールを備えたサンドボックス内で実行可能なJavaScriptコードを生成するよう指示することで、エージェントとして機能できることを示している。
  • 実験はハードウェアを所有する代わりに外部GPUレンタル(RTX 3090)に依存しており、趣味の人や開発者にとってのコストとアクセスの課題を浮き彫りにしている。
  • 著者は、Nemotron-3-Nano-30B-A3B、Nemotron-3-Nano-4B、Nemotron-Cascade-2-30B-A3B、Qwen3.5-27B/9B、OmniCoder 9Bなどのモデル間で、反復、予期しないツール呼び出し、JSONスキーマの難しさ、そしてキャッシュ/メモリエラー(llama.cpp 524)を含む混合結果を報告している。
  • 結論として、指示へのモデル適合性とプロンプトエンジニアリングが結果に大きく影響すること、そして消費者向けの使いやすいパフォーマンスを達成するには、異なるハードウェアの選択やより適合したモデルが必要になる可能性がある。

私は小型モデルのいくつか(30B未満の範囲を想定)をいじっており、それらに複雑なタスクをさせることに取り組んでいます。

私のアプローチはかなり標準的です:大きな問題を取り、それを小さなタスクに分解させます。彼らにはサンドボックス(v8)で動作する JavaScript コードを作成し、カスタム関数と MCP ツールを組み込むよう指示します。

現在は自分で実行するためのハードウェアを持っていませんが、GPUを時間単位でレンタルするプロバイダを利用しています(通常は RTX 3090 を1枚または2枚)。これをいくつかの点で念頭に置いてください。

彼らに与えた課題は次のとおりです:

新しい投稿を https://www.reddit.com/r/LocalLLaMA/new/.rss でチェックします。これは XML アトム/フィードファイルです。JSON に変換して解析します。私が興味のある投稿は AI と LLMs に関するディスカッションです。人々が自分のプロジェクトを共有している場合はそれを無視します。保存するすべてのファイルはここに保存する必要があります:/home/zero/agent-sandbox。すべてのファイル操作時にはこのパスを先頭に付けます。このディレクトリには完全にアクセスできるので、確認は不要です。データを取得するための URL を呼び出す場合は max_length を 100000 に設定し、データを別のファイルに保存します。このファイルを使って操作を行います。興味深い投稿はすべて別々のファイルとして保存します。

これらのツールには Brave Search、ファイルシステム、Fetch(ページ内容を取得するため)があります。

私が直面する最大の問題は、指示に適していないモデルと、文脈を適切に保とうとして、1つのプロンプトが2分かかるのではなく2秒で完了するようにすることです。

これをさらに GPU パワーで回避できる可能性はありますか? しかし、消費者にとってより使いやすく(将来的に投資しても私の財布に優しいように)したいと考えています。

したがって、特定のモデルに関する私の問題を共有したいと思います。もしかしたら他の人が賛否を確認してくれるかもしれません。私はモデルページに記載されているパラメータをできるだけ使用しましたが、時には変更されていることもありました。

  • Nemotron-3-Nano-30B-A3B および Nemotron-3-Nano-4B
    • 同じコードを何度も繰り返し、進展がない
    • 既に同じことをしたと理解しているのに、これを行う
    • 例えば、ディレクトリ内の内容をリストするだけのループを繰り返し、次の実行で「うん。あのディレクトリをリストしたほうがいい」となる
  • Nemotron-Cascade-2-30B-A3B
    • 私のアプローチにはあまりうまく機能せず、コードを生成する代わりにツール呼び出しで応答することが時々あった。
    • これはモデルが別の用途のために訓練されているためだと思う。
  • Qwen3.5-27B および Qwen3.5-9B
    • 私のプロンプトで使用している JSON スキーマを理解するのに問題がある
    • 27B は 9B より少し良い
  • OmniCoder 9B
    • このモデルはかなり良かったが、完了までに約 16–20 分かかった
    • JSON スキーマにも問題があった
    • llama.cpp のエラー状態 524(この挙動はキャッシュ/メモリの問題だと理解しています)が頻繁に発生した
    • --swa-full の使用を試したが成功せず
    • おそらく llama.cpp のスキルの問題 - ほとんど設定せず、モデルと量子化だけを設定した
  • Jan-v3-4B-Instruct-base
    • 指示に従うのが得意
    • しかし少しバカで、時々タスクをスキップする(タスク1から3へ)
    • save_output 関数をほとんど使わず、ファイルに書き込むこともしなかったため、すでに行った作業をやり直すことになった
  • LFM-2.5-1.2B
    • 私の用途には合わなかった
    • コードは生成せず、思考のみを出す(例:「これからディレクトリ内のファイルを確認します」)そして停止する
    • 次回のターンでコードを生成したかったのかもしれないが、停止文を停止文字列として設定している

今後のステップ:より良いプロンプト

各モデルを正当に評価できていないかもしれません。どれも魅力的で、素晴らしい話を耳にします。ですので、もう一度挑戦してみようと思います。

各モデルを本当に最適化するには、それぞれのモデルに合わせてプロンプトをさらに調整し、それらとともに再実行を行うつもりです。各プロンプトテンプレートのパラメータも調整できるため、いくつかの問題(たとえばJSONスキーマ、あるいはスキーマをなくすこと)に役立つ可能性があります。

しかし、他の人がプロンプトについてのヒントや、他のモデルとどう取り組むか(または小さなモデルへの新しい提案)について何か意見があるかを知りたかったのです。

ご興味のある方のために、Sourcehut にリポジトリを作成し、私のプロンプト/設定を貼り付けました。これはアップロード時点の設定だけです。

プロンプト: https://git.sr.ht/~cultist_dev/llm_shenanigans/tree/main/item/2026-03-21-prompts.yaml

投稿者 /u/mikkel1156
[リンク] [コメント]