Upgrade to Pro — share decks privately, control downloads, hide ads and more …

The AI Scientist 解説ウェビナー

Shiro Takagi
October 24, 2024
650

The AI Scientist 解説ウェビナー

Shiro Takagi

October 24, 2024
Tweet

Transcript

  1. Paper Copilot: A Self-Evolving and Efficient LLM System for Personalized

    Academic Assistance The emergence of Large Language Models (LLM) as a tool in literature reviews: an LLM automated systematic review Towards Automated Machine Learning Research Can Large Language Models Unlock Novel Scientific Research Ideas? Automating the Practice of Science -- Opportunities, Challenges, and Implications Can LLMs Generate Novel Research Ideas? A Large-Scale Human Study with 100+ NLP Researchers Towards Fully Autonomous Research Powered by LLMs: Case Study on Simulations Automated Design of Agentic Systems CodeRefine: A Pipeline for Enhancing LLM-Generated Code Implementations of Research Papers MLR-Copilot: Autonomous Machine Learning Research based on Large Language Models Agents SciAgents: Automating scientific discovery through multi-agent intelligent graph reasoning ....!!! 2024年8月以降 arXiv に投稿された研究 AI Scientist の登場以降、潮目が変わっている!
  2. 1. 初期設定: 既存のアイデアがある場合は、それらを読み込む。 そうでない場合、新しいアイデアを生成。 2. アイデアの準備: `seed_ideas.json` から初期アイデアを読み込む。 `experiment.py` からコードを読み込む。

    `prompt.json` からプロンプト情報を読み込む。 3. アイデア生成ループ: `max_num_generations` 回繰り返す。 各イテレーションで: a. これまでのアイデアをまとめる。 b. LLMに最初のプロンプトを送信し、新しいアイデアを生成。 c. 生成されたアイデアをJSONとして抽出。 4. アイデアの改善: `num_reflections` 回、アイデアを改善するループを実行。 各リフレクションで: a. LLMに改善のためのプロンプトを送信。 b. 改善されたアイデアをJSONとして抽出。 c. "I am done" が含まれていれば、改善を終了。 5. アイデアの保存: 生成されたすべてのアイデアをJSONファイルに保存。 6. 結果の返却: 生成されたアイデアのリストを返す。 アイデア生成時に実験コードを参照してる num_reflections × max_num_generations 個のアイデア これまでの全てのアイデアを見せて新しいものを出させる
  3. {task_description} <experiment.py> {コード} </experiment.py> これまでに生成されたアイデア: ''' {以前のアイデアの文字列} ''' 提供されたコードを使用して実行可能な、影響力のある創造的な研究実験とその 方向性に関する次のアイデアを考え出してください。

    追加のリソースやデータセットにアクセスできないことに注意してください。 どのアイデアも特定のトレーニングデータセットやモデルに過度に適合せず、よ り広い重要性を持つようにしてください。 以下の形式で回答してください: THOUGHT: <THOUGHT> NEW IDEA JSON: ```json <JSON> ``` <THOUGHT>では、まずアイデアに関する直感と動機を簡単に説明 してください。高レベルの計画、必要な設計の選択肢、実験の理想 的な結果について詳しく説明してください。このアイデアが既存の ものとどのように異なるかを正当化してください。 <JSON>では、以下のフィールドを持つJSON形式で新しいアイデ アを提供してください: - "Name": アイデアの短い説明。小文字、スペースなし、アンダー スコア可。 - "Title": アイデアのタイトル。レポート作成に使用されます。 - "Experiment": 実装の概要。例えば、どの関数を追加または変更 する必要があるか、結果をどのように得るか、など。 - "Interestingness": 1から10までの評価(最低から最高) 。 - "Feasibility": 1から10までの評価(最低から最高) 。 - "Novelty": 1から10までの評価(最低から最高) 。 評価には慎重かつ現実的であってください。 このJSONは自動的に解析されるため、フォーマットが正確である ことを確認してください。 アイデアを改良するために{num_reflections}ラウンドがあります が、すべてを使用する必要はありません。
  4. 1. 初期設定と定数: 最大イテレーション数、最大実行回数、最大エラー出力長などの定数を設定。 Coder に与えるプロンプトのテンプレートを定義。 2. `run_experiment` 関数: 指定されたフォルダで実験を実行。 実験コードをコピーし、指定されたコマンドで実行。

    実行結果を解析し、次のプロンプトを生成。 タイムアウトや実行エラーを処理。 3. `run_plotting` 関数: 実験結果のプロットを生成するスクリプトを実行。 プロット生成の成功/失敗を処理。 4. `perform_experiments` 関数: 実験のメインループを制御。 以下のステップを最大5回(MAX_RUNS)繰り返し: a. Coder にプロンプトを送信し、次の実験の指示を得る。 b. `run_experiment` を呼び出して実験を実行。 c. 実験結果に基づいて次のプロンプトを生成。 d. "ALL_COMPLETED" が返された場合、実験を終了。 5. プロット生成: 実験完了後、Coder に `plot.py` の修正を指示。 `run_plotting` を呼び出してプロットを生成。 6. 最終ノート作成: Coder に `notes.txt` の作成を指示し、実験結果とプロットの説明を記述。 コード編集 → コード実行 → コード修正 → ... コード編集 → コード実行. 論文執筆のために実験情報を全て保存 実験 & 可視化
  5. 1. 初期設定: 必要なライブラリとモジュールをインポート。 論文の各セクションに関するヒントや指示を定義。 2. LaTeX生成関数 (`generate_latex`): LaTeXファイルの整合性チェック(参考文献、図の存在確認など)を実行。 LaTeXのコンパイルを実行し、PDFを生成。 3.

    引用補助関数: 論文に必要な引用を追加するためのプロンプトと処理を定義。 Semantic Scholar APIを使用して関連論文を検索。 4. メイン関数 (`perform_writeup`): a. 論文の各セクションを順番に生成: タイトルと要約、序論、背景、方法、実験セットアップ、結果、結論 b. 関連研究セクションの概要を作成 c. 引用の追加: 定義された回数(デフォルト20回) 、引用を追加するループを実行 各ループで新しい引用を検索し、適切な場所に挿入 d. 各セクションの改善: 全体の文脈を考慮して各セクションを再度改善 e. 最終的なLaTeX生成: 完成した草稿をLaTeXでコンパイルし、PDFを生成 5. メイン実行部分: コマンドライン引数の解析 必要なファイルの読み込み Coder の設定 `perform_writeup` 関数の実行 人間が作成した論文の書き方を参考 一度大まかな構造を作ってから引用の挿入 繰り返すの改善 Aider の Coder で直接編集
  6. 1. 初期設定: 必要なライブラリとモジュールをインポート。 査読者のシステムプロンプトや査読フォームのテンプレートを定義。 2. `perform_review` 関数: a. 査読の準備: フューショット学習用の例を準備(指定された数だけ)

    。 査読対象の論文テキストを準備。 b. 査読の実行: 単一の査読か、アンサンブル査読(複数の査読を集約)かを決定。 LLMを使用して査読を生成。 c. 査読の改善(リフレクション): 指定された回数だけ、査読の改善を試みる。 各リフレクションで、前回の査読を基に改善。 d. 結果の返却: 最終的な査読結果を返す(オプションでメッセージ履歴も) 。 3. 補助関数: `load_paper`: PDFから論文テキストを抽出。 `load_review`: 既存の査読をJSONファイルから読み込み。 `get_review_fewshot_examples`: フューショット学習用の例を準備。 `get_meta_review`: アンサンブル査読の結果を集約。 4. アンサンブル査読のプロセス: 複数の独立した査読を生成。 それぞれの査読からJSONデータを抽出。 メタレビューアー(エリアチェア)として、これらの査読を集約。 数値スコアは平均を取り、テキスト部分は統合。 5. 査読の改善プロセス: 各リフレクションで、前回の査読を批判的に検討。 必要に応じて査読を修正し、改善し、改善の必要がなくなれば、プロセスを終了。 ICLR のレビューの結果を例に使用 メタレビュアーを置くことも可能 査読も繰り返し改善
  7. Respond in the following format: THOUGHT: <THOUGHT> REVIEW JSON: ```json

    <JSON> ``` In <THOUGHT>, first briefly discuss your intuitions and reasoning for the evaluation. Detail your high-level arguments, necessary choices and desired outcomes of the review. Do not make generic comments here, but be specific to your current paper. Treat this as the note-taking phase of your review. In <JSON>, provide the review in JSON format with the following fields in the order: - "Summary": A summary of the paper content and its contributions. - "Strengths": A list of strengths of the paper. - "Weaknesses": A list of weaknesses of the paper. - "Originality": A rating from 1 to 4 (low, medium, high, very high). - "Quality": A rating from 1 to 4 (low, medium, high, very high). - "Clarity": A rating from 1 to 4 (low, medium, high, very high). - "Significance": A rating from 1 to 4 (low, medium, high, very high). - "Questions": A set of clarifying questions to be answered by the paper authors. - "Limitations": A set of limitations and potential negative societal impacts of the work. - "Ethical Concerns": A boolean value indicating whether there are ethical concerns. - "Soundness": A rating from 1 to 4 (poor, fair, good, excellent). - "Presentation": A rating from 1 to 4 (poor, fair, good, excellent). - "Contribution": A rating from 1 to 4 (poor, fair, good, excellent). - "Overall": A rating from 1 to 10 (very strong reject to award quality). - "Confidence": A rating from 1 to 5 (low, medium, high, very high, absolute). - "Decision": A decision that has to be one of the following: Accept, Reject. For the "Decision" field, don't use Weak Accept, Borderline Accept, Borderline Reject, or Strong Reject. Instead, only use Accept or Reject. This JSON will be automatically parsed, so ensure the format is precise. + NeurIPS の査読の指示