開発者として、自己改善するコードという考えにずっと魅了されてきました。最近、Large Language Models(LLM)を使って自分のPythonスクリプトが自分自身を改善するようにする旅に出ました。この記事では、自分の経験を共有し、その実現方法を段階的に解説します。 ## LLM入門 LLMは、人間のような言語を処理し生成するように設計された人工知能の一種です。これは、テキスト分類、言語翻訳、コード生成など、さまざまな用途に使えます。始めるにあたって、私はLLMとやり取りするためのシンプルなインターフェースを提供する llm_groq モジュールを選びました。 ## 環境のセットアップ コードに入る前に、次のものがインストールされていることを確認してください: * Python 3.8以上 * llm_groq モジュール * transformers ライブラリ 必要なライブラリはpipでインストールできます: pip install llm_groq transformers。 ## 自己改善スクリプトの作成 自己改善するコードの考え方は、LLMからのフィードバックに基づいて、自身の振る舞いを変更できるスクリプトを作ることです。以下は、シンプルな自己改善スクリプトを作る例です:
python import llm_groq from transformers import AutoModelForSeq2SeqLM, AutoTokenizer # LLMモデルを初期化 = AutoModelForSeq2SeqLM.from_pretrained('t5-base') tokenizer = AutoTokenizer.from_pretrained('t5-base') # コードを生成する関数を定義 def generate_code(prompt): inputs = tokenizer.encode_plus(prompt, return_tensors='pt') output = model.generate(inputs['input_ids'], num_beams=4, no_repeat_ngram_size=2, min_length=10, max_length=100) return tokenizer.decode(output[0], skip_special_tokens=True) # 生成されたコードを評価する関数を定義 def evaluate_code(code): try: exec(code) return True except Exception as e: print(f'Error: {e}') return False # メインループを定義 def main(): prompt = 'ある数の階乗を計算するPython関数を書いてください' code = generate_code(prompt) if evaluate_code(code): print('コードは有効です') else: print('コードは無効です') # LLMを使ってコードを改善する prompt = '次のコードを改善して: ' + code improved_code = generate_code(prompt) if evaluate_code(improved_code): print('改善後のコードは有効です') else: print('改善後のコードは無効です') main()
この例では、与えられたプロンプトに基づいてLLMを使ってコードを生成する関数 generate_code を定義します。次に、生成されたコードを実行して有効かどうかを確認する関数 evaluate_code を定義します。main 関数は、LLMを使って生成されたコードを改善する方法を示しています。 ## 課題と制限 このプロジェクトに取り組む中で、いくつかの課題に直面しました。主な制限の1つは、LLMが常に正しい、または効率的なコードを生成できるとは限らないことです。これを克服するために、エラーや無効なコードを検出できる堅牢な評価関数を実装する必要がありました。もう一つの課題は、LLMに望ましいコードを生成させるための明確なプロンプトを定義することです。これは、多くの試行錯誤と微調整を要しました。 ## 結論 結論として、LLMを使って自己改善するPythonスクリプトを作るのは、魅力的でありながら難しい作業です。克服すべき制限や課題はありますが、自己改善コードのもたらしうる利点は非常に大きいです。この記事で示した手順に従えば、自分自身の自己改善スクリプトを作り、AIによるコード生成の可能性を探ることができます。このプロジェクトをさらに進めていく中で、この技術が私たちをどこへ導き、ソフトウェア開発のやり方をどう変えていくのかを見るのが楽しみです。
LLMで自分で改善するPythonスクリプトを作る:私の挑戦
Dev.to / 2026/4/24
💬 オピニオンDeveloper Stack & InfrastructureTools & Practical UsageModels & Research
要点
- 著者は、LLMを使ってプロンプトに基づきコードを生成・修正し、Pythonスクリプトを“自己改善”させる個人プロジェクトを紹介しています。
- Python 3.8以降、llm_groqモジュール、transformersライブラリの導入を前提に、pipでのインストール手順も含めて段階的に説明しています。
- 生成されたコードはexecで実行して検証し、エラーなく動作する場合にのみ採用するというワークフローを示しています。
- 最初のコード生成の後で「次のコードを改善して」と指示して再生成し、同じ評価ロジックで再度判定する流れが説明されています。
- LLMが生成するコードには誤りや非効率が混ざり得るという制約が挙げられ、それらを検出するための堅牢な検証・エラーハンドリングの重要性が強調されています。




