アーカイブ / LLM
科学研究用コードをどう探すか――5,264件のリポジトリで検索を評価
Scientific Code Search at Scale
概要
- 著者らは、NASAの5分野に分類した5,264件の科学ソフトウェアリポジトリを収集・整理した。
- 専門家が作成した219件の質問によるリポジトリ検索と、7言語のコード片検索課題を設けた。
- 著者らの表9では、3分野をまとめた結合文書の条件でMRR@10がBM25の0.367、科学分野向け埋め込みモデルの0.530だった。
補足:編集した模式図で仕組みを確認する
VISUAL EXPLAINER
図でつかむ、Scientific Code Search at Scaleの仕組み
- 01科学コードの収集
- 02文書整理と分野分類
- 03研究者の質問で検索
- 04関連候補の順位
原論文の説明をもとにした模式図です。処理の細部は省略しています。
研究の背景
研究者が公開ソフトウェアを探すとき、作業を表す言葉と開発者の説明文の言葉が一致しないことがある。論文が挙げる例では、Keplerの時系列観測を分析したい人が、系外惑星の測光処理という説明で登録された道具を見落とし得る。
従来のコード検索評価は一般的なソフトウェア開発を主な対象とする。観測装置、データ形式、分析手法を含む研究上の質問で検索を測るには、その分野の道具と、専門家が関連性を判断した質問が必要になる。
手法
著者らは論文、研究機関のGitHub組織、専門分野の登録簿などからリポジトリを集め、重複、公開状態、READMEの有無を確認した。READMEはプロジェクトの説明文書である。短い文書などを除き、言語モデルでNASAの科学分野に分類し、研究に関係する話題を抽出した。READMEのリンク先から得た内容も関連性を判定して検索用文書に加えた。
リポジトリ検索では、「衛星観測で氷河の移動速度を調べるには」という実際の評価質問に対し、説明文書を照合して候補を順位付けする。別の課題では関数やクラスの実装を取り出し、説明文であるdocstring、またはコード中の名前である識別子を質問として、対応するコード片を探す。
新規性
著者らは、NASAの5分野に分類した5,264件の科学ソフトウェアと、研究者が作成した219件の質問を結ぶ検索評価基盤を提示した。1つの質問に複数の関連リポジトリを認め、道具の選択肢を探せるか測る。
さらに、同じ収集対象から関数・クラスの実装を抽出し、コード片を探す課題も設けた。プロジェクト単位と実装単位の検索を、科学分野の語彙で評価できる点が特徴である。
従来手法との違い
リポジトリ検索では、共通する語を手掛かりに順位を付けるBM25と、文章を数値列に変換して近さを測る埋め込み検索を比較した。埋め込みには一般向けモデルと科学文献で学習したモデルを用い、README原文や整理済み文書など検索対象の表現も変えた。
別の比較では、BM25と埋め込み検索の順位を統合し、候補を再順位付けする方法も評価した。対象は3分野の質問であり、方式間の差を5分野すべてに当てはめることはできない。
実験結果
著者らは地球科学、天体物理学、惑星科学の専門家が作成した219件の質問でリポジトリ検索を評価した。表9の全3分野をまとめた、説明・整理済みREADME・話題・追加文脈を結合した条件では、最初の関連候補が上位10件のどこに現れるかを示すMRR@10はBM25が0.367、科学分野向け埋め込みモデルが0.530だった。
コード片検索のデータは7言語の実装117,950件と質問119,720件で構成される。分野分類器の検証集合でのF1は地球科学0.85、天体物理学0.93と著者らは報告する。確認できた本文の範囲ではコード片検索の結果表がなく、その検索成績は判断できない。
応用の可能性
編集上の応用案 · 論文が実証した用途とは区別しています。
編集上の応用案:研究組織で、衛星観測から氷河の移動速度を調べる道具を探す窓口に使う。入力は担当者の探索質問、出力は関連候補の名前、説明、READMEへの参照とし、採用前に担当者が用途を確認する。
必要な元データは検索対象のリポジトリと説明文書である。評価用には担当者が質問と関連候補の組をラベル付けし、使う分野に合わせて収集対象と検索文書を調整する。センサー入力は不要で、日本語で質問する場合は英語文書との対応も検証する。
応用先の候補からNauhに相談できます。
導入時の検証
導入時の検証案 · 対象データでの再評価が必要です。
導入時の検証案:対象分野のリポジトリを少数集め、READMEと説明文を検索用の元データにする。担当者が実際の探索質問を作り、質問ごとに関連する道具を複数件ラベル付けする。センサー入力は不要で、既存モデルを比較する段階では追加の学習データも必須ではない。
まずBM25を基準に順位を作り、文書の整理や分野語の追加後と比べる。上位10件に関連候補が入る割合と担当者の確認時間を測り、ラベルにない候補も人が確認する。日本語の質問を使う場合は英語の説明文との対応を調整し、結果は用意した対象群と質問群に限って判断する。
限界と課題
著者らは、専門家が既知の道具を起点に質問と正解候補を作ったため、未知の関連リポジトリが正解集合から漏れ得ると述べる。また、収集元の構成により天体物理学と地球科学が多く、ほかの分野の登録簿を十分取り込めていない。
編集上の検証事項として、文脈の追加が常に有効か確かめたい。本文は広い改善を述べるが、表9には追加後に数値が下がる条件もある。正解ラベルの漏れ、短い説明文、収集対象外の道具が運用時の検索結果に与える影響も調べる必要がある。
出典
元のタイトル・要旨を確認する(英語)
Scientific Code Search at Scale: A Multi-Domain Dataset and Benchmark
Scientists increasingly rely on open-source tools to support their research workflows, yet discovering relevant software among over 600 million GitHub repositories remains challenging. Existing code search benchmarks focus on general software engineering tasks and fail to capture the domain-specific vocabulary and needs of scientific computing. We present a curated corpus of 5,264 high-quality, domain-classified scientific repositories spanning five NASA Science Mission Directorate divisions -- Earth Science, Astrophysics, Planetary Science, Heliophysics, and Biological & Physical Sciences -- enriched with cleaned READMEs, extracted topics, and additional context from crawled links. Building on this corpus, we introduce two novel information retrieval benchmarks: (1) a repository search benchmark with 219 expert-curated queries designed by domain scientists, and (2) a large-scale code snippet retrieval benchmark containing 117,950 code snippets and 119,720 queries across seven programming languages. Baseline evaluations on repository search reveal significant performance variation across scientific domains. Code snippet retrieval proves equally challenging, with substantial variation driven by differing documentation practices, coding standards, and programming language conventions across scientific communities. All datasets and benchmarks are publicly released on HuggingFace to support research on scientific tool discovery.
論文本体の取得範囲に基づく解説。AIが作成した未校閲の記事です。性能の数値は著者の評価条件に依存します。応用例と検証計画は編集上の提案です。解説更新:2026-10-01




