実験

Experiments

1. 自動改善ループ実験

概要

LLM(大規模言語モデル)を用いた改善ループ、モデルサイズによる実行時間、RAG(Retrieval-Augmented Generation)の限界についての実験記録。

プログラムを自動生成し、それを実行 → エラーや改善提案をプロンプトとして再入力 → 再生成 …という改善ループを試みた。

結果

  • 同じ出力が繰り返され、改善が収束する現象が確認された。
  • 同じプロンプトに対して、同じ出力が返るようになり、ループの効果が頭打ちに。
  • 使用したモデルが小さく、モデルサイズが影響している可能性がある。

より大規模なモデルを使用することで、ループ改善能力が向上する可能性あり。


2. モデルサイズと応答時間

実験目的

モデルのサイズと応答時間の関係を観察。

実行環境

  • CPU: Intel(R) Core(TM) i5-8250U @ 1.60GHz(CPUのみ)
  • メモリ: 7.7GB(Swap: 40GB)

使用プロンプト

hello

モデル別応答時間(gemma3

モデル サイズ 実行時間
gemma3:1b 約 3 秒 (0:03.31)
gemma3:4b 約 14 秒 (0:14.02)
gemma3:12b 約 5 分半 (5:37.88)
gemma3:27b 非常に大 約 1時間半 (1:33:13)

大きなモデルは推論に大幅な時間がかかる。実験には時間リソースと十分な計算資源が必要。


3. RAGを用いたスクリプト理解の限界

試行内容

RAGを用いて、Rubyのドキュメントをベースに、スクリプトの内容を理解・説明させる実験。

問題点と観察

  • サンプルスクリプトが断片的で、ベクトル検索(FAISS)で十分な類似度が得られなかった。
    • 検索対象が少ない場合は、ヒットしたが、800ファイルにしたときに、ヒットしてほしい特定のテキスト断片(チャンク?)にヒットしなくなった。
  • そのため、意図したドキュメントが検索フェーズでヒットせず、誤った説明が生成される場合があった。

最終的に

irbで実行させた結果をgemma3:27bに食わせて、説明させた。CPU onlyモードであるため、3、4日かかった。


4. MCPクライアント、MCPサーバーの導入

1ショットのプログラムの生成を目指す。

qwen2.5, qwen3を中心に1ショットのプログラム生成を目指してプロンプトの流し込み実施。モデルの大きさは14b以下。 MCP ServerのToolを使うようにプロンプトを書いても、Toolを使う頻度が少ない。そのためファイル出力や、外部からの情報取得の頻度が少なく、MCPの導入の効果が薄い状態。

改善する箇所としては、

  • モデルについて
    • モデルが小さいか、ハードウェアのリソースが必要
    • プロトコルを作っているClaude系でないとうまくいかないのか。
  • プロンプトが悪いか
    • 1ショット目指すよりは、小刻みに生成するのか

などが考えられる。ハードウェアリソースが無いため、試行回数限られてくる。


5. gemma3:27b x MCPサーバー

以下のプロンプトで、実行。

- implement python programs and output to files
  - directory is in /home/user/myproject.
  - supply the changes to files by using mcp server tools: write_file, edit_file, create_directory.
  - you can access internet by using mcp server tool: fetch, if you need.
- program behavior
  * Using `https://api.openbd.jp/v1/get?isbn=`, create a function that takes an ISBN, accesses the URL, and retrieves the JSON.
  * Create a function that formats and outputs the retrieved JSON nicely.
  * Using the ISBNs of three books as examples, display the information.
  • ほとんど指示通りに作成された。3つのサンプルのISBNはハルシーネーションで出鱈目。
  • MCPサーバーでの、ファイルは自動で、出力はされなかった。
  • これを出力するまで、24時間〜30時間掛かる。

ハードウェアリソースの限界。

|