AIエージェントキャッチアップ #69 - 再帰的言語モデル(RLMs)を開催
Generative Agentsは「AIエージェントキャッチアップ #69」勉強会を開催し、入力を分解して自身を再帰的に呼び出す「Recursive Language Models(RLMs)」について議論した。
キーポイント
勉強会の開催
Generative Agentsが「AIエージェントキャッチアップ #69 - Recursive Language Models (RLMs)」という勉強会を開催し、アーカイブ動画も公開されている。
RLMsの技術的特徴
Recursive Language Models(RLMs)は、言語モデルが入力を分解し、自身を再帰的に呼び出す技術アプローチを指している。
コミュニティ活動
この勉強会はAIエージェント技術に関する定期的な情報共有・学習コミュニティ活動の一環として位置づけられる。
影響分析・編集コメントを表示
影響分析
この記事は特定の技術コミュニティ内の勉強会開催を報告するもので、業界全体に直接的な影響を与えるものではない。しかし、RLMsという比較的新しい技術概念についての議論が進んでいることを示しており、AI技術の進化プロセスを追跡する参考情報となる。
編集コメント
技術コミュニティの勉強会報告という位置づけで、RLMsという特定技術に焦点を当てた内容。業界全体の動向というよりは、専門家間の技術深化の過程を示す記事。
ジェネラティブエージェンツの大嶋です。
「AIエージェントキャッチアップ #69 - Recursive Language Models (RLMs)」勉強会を開催しました。
https://generative-agents.connpass.com/event/386420/
アーカイブ動画はこちらです。
www.youtube.com
Recursive Language Models (RLMs)
今回は、言語モデルが入力を分解し、自身を再帰的に呼び出す「Recursive Language Models (RLMs)」をキャ…
原文を表示
ジェネラティブエージェンツの大嶋です。
「AIエージェントキャッチアップ #69 - Recursive Language Models (RLMs)」という勉強会を開催しました。
https://generative-agents.connpass.com/event/386420/generative-agents.connpass.com
アーカイブ動画はこちらです。
www.youtube.com
今回は、言語モデルが入力を分解し自身を再帰的に呼び出す「Recursive Language Models(RLMs)」をキャッチアップしました。
RLMsのGitHubリポジトリはこちらです。
github.com
ブログ記事はこちらです。
alexzhang13.github.io
今回のポイント
Recursive Language Model(RLM)とは
Recursive Language Model(RLM)は、言語モデルが言語モデルを呼び出すことで、実質的に無限の入力・出力を可能にするしくみです。
ルートの言語モデルは入力全体を読み取ることなく、PythonのREPL環境を使ってサブの言語モデルを呼び出すことで処理を進めます。
長い入力・出力に対応するため、ある程度の単位で分割して言語モデルを呼び出すこと自体はよくある手法ですが、その分割のサイズや方法を言語モデルが動的に決めるのが特徴です。
実際に動かしてみた
実際にRLMを動かしてみました。
RLMはuv add rlmsでインストールして、通常のLLM呼び出し(llm.completion(prompt, model))をrlm.completion(prompt, model)に置き換えるだけで使うことができます。
計算タスク
まずは、READMEに記載されている計算タスクを試しました。
ルートの言語モデルがまずコンテキスト(入力)を確認するコードを実行します。
入力が変数に格納されているため、Pythonコードで必要な長さだけ確認するのは面白いですね。
その後Pythonコードで計算を行い、FINAL_ANSWER関数で最終回答を返すという流れで処理が進みました。
ブログ記事の要約タスク
次に、長文を処理する様子を確認するため、ブログ記事の要約を試しました。
ルートの言語モデルはまずコンテキスト(入力)の長さと先頭1500文字を確認しました。
その後、コンテキストを複数のチャンクに分割し、llm_query_batchedで各セクションの要約を並列に実行し、アグリゲート用のプロンプトでサブの言語モデルを呼び出して要約結果を結合しました。
RLMのシステムプロンプト
RLMの実装が気になったので、システムプロンプトがどこにあるか確認したところ、以下にありました。
https://github.com/alexzhang13/rlm/blob/413c3730/rlm/utils/prompts.py#L7-L116
PythonのREPL環境を使えることや、特有の変数・関数が用意されていること、サブの言語モデルを使えることなどが説明されています。
コーディングエージェントとの類似性
RLMの動作を見ていて、コーディングエージェントの動き方と似ていると感じました。
コーディングエージェント(Claude Codeなど)への指示をファイルに書いておくと、エージェントはそのファイルを適宜読み込んで内容を確認し、必要に応じてサブエージェントに処理を委譲します。
RLMにおいて、入力が変数としてREPL環境に格納され、ルートの言語モデルがサブの言語モデルを呼び出して処理を進める様子と似ています。
一方で違いとして、RLMではルートの言語モデルは入力の先頭以外はあまり読まないことは特徴的だと思います。
次回のご案内
以上、今回は「Recursive Language Models(RLMs)」をキャッチアップしました。
次回は「AIエージェントキャッチアップ #70 - tree-sitter」ということで、AIエージェントの実装でよく使われるパーサージェネレーター「tree-sitter」がテーマです!
https://generative-agents.connpass.com/event/387534/generative-agents.connpass.com
ご興味・お時間ある方はぜひご参加ください!
また、その次の回以降のテーマも募集しているので、気になるエージェントのOSSなどあれば教えてください!
関連記事
今日のまとめ
AI日報で今日の重要ニュースをまとめ読み