AIエージェント
LLM Wikiとqmd。知識を編纂するか検索するかの二つの設計
目次
手元に文書がたまっていく。論文、仕様書、議事録、過去に自分が書いた覚書。どれも捨てられないが、必要なときに必要な一つを取り出せなければ、置いてあることと無いことの差は小さい。
この取り出す作業を機械に任せる方法は、大きく二つに分かれる。一つは、質問が来てから資料の山を探しにいく方法である。もう一つは、資料を読んで整理した文書を先に作っておき、質問にはその整理済みの文書で答える方法である。前者は探す手間を質問のたびに払い、後者は整理する手間を先に払う。
どちらを選ぶかは好みの問題に見えるが、実際には後で効いてくる違いがある。整理した文書は古くなる。探す仕組みは、資料が増えたときの精度が変わる。どちらの側にも、置いたあとに続く作業が残る。
資料を答えられる形にするとき、先に編纂する設計と、その場で検索する設計は、それぞれ何を引き受けて何を手放すのか。
二つは競合していない。llm-wikiの著者Andrej Karpathy自身が、wikiが大きくなった場合の検索層としてqmdを名指しで薦めている1。 選んでいるのは編纂か検索かではなく、更新の手間をどこに置くかである。llm-wikiは資料を読み込む段で手間を払い、その代わりに定期的な健全性検査(lint)を設計へ組み込んでいる1。qmdは質問のたびに探す代わりに、再索引を起こす合図を利用者の側に残している。qmdのREADMEは、設定ファイルを編集しても「それ自体では再索引しない」と明記する2。取り込みの段については、gist自身が「一つずつ取り込み、関与を保つ。要約を読み、更新を確かめ、何を強調するかを導く」と、人間が離れないことを前提に書いている1。同じ選択は検索研究の側でも繰り返されている。Microsoft Researchの一つのグループが、索引時に要約を作るGraphRAGの7か月後に、LLMの使用をすべて質問時まで遅らせるLazyGraphRAGを出し、索引の費用を元の0.1パーセントと報告した3。
編纂する設計
Andrej Karpathyが2026年4月4日に公開したllm-wikiは、「LLMを使って個人の知識ベースを構築するためのパターン」だと自ら述べている1。実装ではなく、自分のLLMエージェントに貼り付けて使うための考え方を書いた文書だと明記されている。
出発点は、既存のやり方への観察である。Karpathyは、多くの人の経験が「ファイルの集まりをアップロードし、LLMが質問時に関連する断片を取得して答を生成する」形になっていると書き、この形では「LLMが質問のたびに知識をゼロから再発見している。蓄積が無い」と指摘する。
提案する構造は三層からなる。第一層は生の資料で、これは「不変であり、LLMは読むが決して変更しない」。第二層がwikiで、LLMが生成する markdown ファイルの集まりである。第三層がスキーマで、wikiがどう構造化されているかをLLMに伝える文書を指す。Claude CodeならCLAUDE.md、CodexならAGENTS.mdが例として挙がっている。
操作は三つある。資料を取り込むIngest、wikiに問うQuery、そしてLintである。Lintの中身は具体的に書かれている。ページ間の矛盾、新しい資料によって置き換えられた古い主張、入ってくるリンクの無い孤立ページ、言及はあるが独立したページを持たない重要概念、欠けた相互参照、Web検索で埋められるデータの穴を、定期的に探させる。
なぜこの設計が成り立つのかについて、Karpathyは維持コストの所在で説明する。「知識ベースを維持するとき面倒なのは、読むことでも考えることでもない。事務作業のほうだ」。そして「人間がwikiを放棄するのは、維持の負担が価値より速く増えるからだ」と書く。事務作業をLLMが引き受けられるなら、人間が放棄した場所が使えるようになる、という筋になっている。Karpathyはここで踏み込んだ言い方をしている。「LLMは退屈しないし、相互参照の更新を忘れないし、一度に15のファイルに触れる。wikiが維持され続けるのは、維持の費用がほぼゼロだからだ」1。
検索する設計
tobi/qmdは、Tobi Lütkeが公開しているコマンドライン検索エンジンである。リポジトリの説明文は「ドキュメント、知識ベース、議事録などのための小さなCLI検索エンジン。すべてローカルで動かしながら現在のsotaな手法を追う」となっている2。2025年12月8日に作成され、2026年8月18日が最終更新である。2026年9月8日時点でstarは29,579件だった。
qmdは要約を先に作らないので、質問が来てからすべてを決める。そこで解くべき課題が二つある。質問と違う言い回しで書かれた文書を取りこぼさないことと、高価なLLMに全文書を読ませないことである。READMEが並べる手順は、この二つを順に解いている2。
取りこぼしを防ぐのが前半である。質問をそのまま使うと、言い換えられた文書に当たらない。そこでLLMに質問の変形を一つ作らせ、元の質問を重み2倍で残したまま両方を流す。検索側も一つではなく、語の一致を見る全文検索と、意味の近さを見るベクトル検索の両方を引く。こうして複数の順位表ができるので、順位の逆数を足すscore = Σ(1/(k+rank+1))(k=60)で一本にまとめる。
費用を抑えるのが後半である。まとめた上位30件だけをLLMへ回し、各文書が質問に答えているかを採点させる。ここで副作用が出る。質問の語とそのまま一致していた文書を、LLMの判断が押し下げてしまうことがある。READMEはこれを「純粋なRRFは、展開したクエリが一致しないときに完全一致を薄めうる」と書き、対策を二つ置いている。一つは、いずれかの一覧で1位だった文書に0.05、2位から3位に0.02を足す加点である。もう一つが、順位帯によって二つの採点の混ぜ方を変えることである。1位から3位は検索75パーセントと再ランク25パーセント(READMEは「完全一致を保つ」ためと注記する)、4位から10位は60パーセントと40パーセント、11位以降は40パーセントと60パーセントで、この段だけ再ランクのほうが重い(同じく「再ランクをより信頼する」)。READMEはこの設計の狙いを「位置を考慮した混合は、再ランクが確信度の高い検索結果を壊すのを防ぐ」と要約している。
三段の比が言っているのは一つのことである。上位ほど検索の一致を信じ、下位ほどLLMの判断を信じる。
qmdはローカルのGGUFモデルを三つ使い、初回利用時に自動で取得する。埋め込みのembeddinggemma-300M-Q8_0が約300MB、再ランクのqwen3-reranker-0.6b-q8_0が約640MB、クエリ展開の1.7Bモデルが約1.1GBで、合計およそ2GBになる2。すべてローカルで動く代わりに、この分は最初に置いておく必要がある。
二つは競合していない
llm-wikiのgistは、qmdを名指しで推薦している。「ある時点で、LLMがwikiをもっと効率よく操作できるよう、小さな道具を作りたくなるだろう。wikiのページを対象にした検索エンジンが最もわかりやすい。小規模なら索引ファイルで足りるが、wikiが大きくなると本格的な検索が欲しくなる。qmdは良い選択肢だ」1。CLIとMCPサーバーの両方を持つ点も、推薦の理由として挙げられている。ただしこの推薦は「任意のCLI道具」という見出しの下にあり、直後に「もっと単純なものを自分で作ってもよい」と続く。文書末尾の注記も、挙げたものはすべて任意で組み替え可能であり、wikiが小さければ索引ファイルだけで足りて検索エンジンは要らない、と書いている1。
規模の目安も同じ文書に書かれている。索引ファイルによる方式は「およそ100件の資料、数百ページという中規模ではうまく働き、埋め込みベースのRAG基盤を不要にする」。この記述は、索引ファイルで足りる範囲と、検索エンジンが要る範囲の境目を、著者自身が引いていることを示す。
痕跡は片側だけではない。qmdが同梱する設定例には、wikiという名前のコレクションが入っている。~/reference/wiki配下のmarkdownを再帰的に拾う指定で、git pull --ff-onlyを更新コマンドに置き、説明文には「外部のwiki。qmd updateのたびに自動で取得される」と書かれている。既定の全体文脈も「関連する[[WikiWord]]を見かけたら、そのWikiWordを検索してさらに文脈を得よ」で、wiki風の記法を前提にしている2。両者は、互いの側から相手を想定した痕跡を残している。
したがって、読者が迫られる選択は「どちらの製品を採用するか」ではない。資料の規模と、更新の手間を先に払うか後に払うかの配分である。
同じ選択は検索研究の側でも起きている
検索の研究は、編纂か検索かの二分を、もっと細かい粒度で何度も選び直している。質問が来る前にLLMに何をさせておくか、という選択である。
Stanford大学のSarthiらがICLR 2024で発表したRAPTORは、文書の断片を「再帰的に埋め込み、クラスタリングし、要約して、下から上へ異なる要約水準を持つ木を構築する」手法である4。質問時にはこの木から、原文の断片と上位の要約の両方を取り出す。著者らは、平均5,000トークンほどの文章を読んでから答える選択式の読解ベンチマークQuALITYで、GPT-4と組み合わせると最良成績を絶対値で20ポイント上げたと報告する。木を作る費用は文書長に対して線形で、しかも家庭用のハードウェアで収まる範囲にとどまる。原典は付録で、その確認のために16GBのM1 Macを使ったと書いている。要約を先に作っておくという点で、これはllm-wikiと同じ側に立つ。ただし作るのはwikiではなく、検索のための索引である。
Microsoft ResearchのEdgeらが2024年4月にプレプリントで発表したGraphRAGは、さらに踏み込む。従来の検索型RAGは「データセットの主題は何か」のような、コーパス全体に向けた問いに答えられないと指摘し、その理由を、これが「検索の課題ではなく、質問に焦点を絞った要約の課題」だからだと説明する5。対策は索引時にLLMを使うことである。まず資料から実体の知識グラフを取り出し、次に関連する実体のまとまりごとに要約をあらかじめ生成しておく。質問が来ると、各要約から部分回答を作り、それを再び要約して答える。100万トークン規模のデータセットで、答えの網羅性と多様性が従来のRAGを大きく上回ったと著者らは報告する。この結果は本稿の見立てへの留保でもある。先に編纂しておくことで変わるのは手間の置き場だけではなく、答えられる問いの範囲である。
同じグループは7か月後の2024年11月に、LazyGraphRAGを発表した3。ブログは「資料の事前要約を必要とせず、利用者や用途によっては法外になりうる前払いの索引費用を避ける」と書き、索引の費用は「ベクトルRAGと同一で、完全なGraphRAGの0.1パーセント」だとする。設計は「LLMの使用をすべて質問時まで遅らせる」もので、費用と品質の釣り合いは「関連性検査の予算」という一つのパラメータで調整する。llm-wikiとqmdの間にある選択を、一つの研究グループが7か月かけて反対側へ渡った形になる。ただし、原典が報告した数はそれだけではない。ブログは、大域的な問いでは完全なGraphRAGと同等の答えの品質で質問時の費用が700分の1以下になり、局所的な問いではベクトルRAGと同程度の質問費用で競合手法をすべて上回るとも書いている3。索引時の手間が質問時へ移ったのなら質問時の費用は上がるはずで、そうなっていない。ここで起きたのは移動ではなく、両方の時点での減少である。設計を入れ替えれば総量が減ることはあり、置き場を選ぶという見方はそこまでは説明しない。
粒度をもっと下げた例もある。Anthropicが2024年9月に公開したContextual Retrievalは、断片ごとにその断片を説明する短い文脈をLLMに書かせてから埋め込みとBM25の索引を作る6。索引時にLLMを使う点は編纂の側だが、作るのは要約ではなく、検索の取りこぼしを減らすための注釈である。同社は取り出しの失敗が49パーセント減り、再ランクを足すと67パーセント減ったと報告し、プロンプトキャッシュを使う前提で、注釈を作る一度きりの費用を文書100万トークンあたり1.02米ドルと見積もっている。前払いの手間に値段が付いている例として読める。
これらを並べると、編纂と検索の間には段階がある。wiki全体を書く(llm-wiki)、要約の木を作る(RAPTOR)、実体グラフとまとまりの要約を作る(GraphRAG)、断片に注釈を付ける(Contextual Retrieval)、索引時にはLLMに何も書かせない(qmd、LazyGraphRAG)。どれもLLMの仕事をどの時点に置くかの選択である。先に置いた分だけ、質問時には間に合わない答え(コーパス全体の主題、複数段の要約)が用意でき、その分は資料が変わるたびに古くなる。
編纂の側で落ちるものと、足されるもの
編纂は、資料を読んだ時点で内容を書き換える。原典の文はwikiの中では要約と相互参照に置き換わり、読者があとで読むのは原典ではなくその要約である。ここで二つのことが起きうる。原典が手法に付けていた適用条件が要約から落ちること、そして原典が回避策や暫定案として書いたものが、要約では確立した手法の地位を与えられることである。前者は欠落で、後者は原典に無い地位が足される。どちらも要約の文面は流暢で、矛盾した数字を含まないので、原典と突き合わせないかぎり見えない。
gistはこの段を人間の仕事として書いている。取り込みについては「一つずつ取り込み、関与を保つ。要約を読み、更新を確かめ、何を強調するかを導く」と指示し、wikiの健全性検査(lint)を定期的に回すことを設計に含めている1。つまり編纂の設計は、更新の手間を資料を読み込む段へ前払いする代わりに、その段で人間が要約を読み比べることを前提にしている。前払いを払わずに取り込みを自動で流せば、落ちた条件と足された地位は、あとで検索する側からは見分けがつかない。
検索の側に残る手作業
qmdの側にも、置いたあとに続く作業がある。READMEは索引の更新について注意を明示している。「index.ymlの編集は、QMDがどのディレクトリとモデルを使うかを変えるが、それ自体では再索引しない」。path、pattern、ignoreを変えたらqmd updateを、models.embedを変えたらqmd embedを実行するよう求めている2。ただし、qmdが利用者に残しているのはqmd updateを打つ判断であって、同期そのものではない。上流との同期は組み込まれていて、各コレクションのupdate欄に書いたコマンドが再索引の前に走る。READMEはこれを「組み込みの更新フック」と呼び、qmdを自分で包まなくても上流と同期が保てると書く2。設定ファイルを編集しても再索引が起きないのは、この同期とは別の話である。
既定の埋め込みモデルには言語の制約がある。READMEは、中国語・日本語・韓国語を含む多言語コーパスではembeddinggemma-300Mの網羅が限られると書き、既定を英語最適化と位置づけている。差し替えは環境変数QMD_EMBED_MODELで行うが、ベクトルはモデル間で互換ではないので、全コレクションをqmd embed -fで埋め直す必要がある2。日本語の資料にqmdを当てる読者には、これが最初に来る作業になる。
分割の仕方にも、markdownを扱う際の制約がある。READMEは、tree-sitterを使う構文木単位の分割がコードファイルに対するものであり、「markdownとその他のファイル形式は、戦略にかかわらず常に正規表現ベースの分割を使う」と書いている。llm-wikiが生成するのは markdown なので、この制約はそのまま当たる。既定は正規表現方式で、900トークン単位、15パーセントの重なりで埋め込む。
更新の手間は消えない。どこへ置いたかを見る
更新の手間は消えない。どこへ置いたかを見る。
llm-wikiは、手間を資料の取り込み時へ移す。その代わりに、矛盾と古びた主張と孤立ページを探すlintを、繰り返す作業として設計に残した。qmdは、手間を質問時へ移す。その代わりに、再索引を起こす合図を利用者が打つコマンドとして残した。どちらも事務作業を消してはおらず、払う時点を選んでいる。本稿が置く見方は、先に引いたKarpathyの一文への異議である。維持の費用はほぼゼロだ、とそこには書かれていた。費用はゼロにならない。ふつうは払う場所が移り、設計ごと入れ替えれば総量が減ることもある。どちらの場合も、払う場所は残る。
同じ見方は、両者の限界の形も説明する。編纂の側では、監督の薄い取り込みで圧縮が起きるので、条件つきの主張から条件が落ち、同時に原典に無い断定が足されうる。要約を先に作る側の研究がこれをどこまで測っているかは、研究ごとに違う。RAPTORは生成した要約150ノードを人手で注釈し、4パーセントが元の本文に無い情報を足していたと報告したうえで、その幻覚は上位層へ伝播せず質問応答の成績にも影響しなかったとする4。一方GraphRAGの評価基準は網羅性・多様性・読者への助けであり、論文は「忠実さ」を「大域的な全体把握には関係ない」基準として評価から外している5。検索の側では、圧縮が起きない代わりに、索引が現実から遅れうる。qmdが再索引の合図を利用者に残しているぶん、この遅れは利用者から見える位置にある。
自分の資料でどちらを選ぶかを決めるとき、見るべきは製品の優劣ではない。取り込み時に条件が落ちて困る資料なのか、索引が数日古くて困る資料なのか。そのどちらが自分にとって高くつくかを先に決めれば、選択はその後に決まる。
出典6件
-
Andrej Karpathy, “llm-wiki.md”(GitHub gist, 2026年4月4日公開)。「LLMを使って個人の知識ベースを構築するためのパターン」と自ら述べ、「これはアイデアファイルであり、自分のLLMエージェント(OpenAI Codex、Claude Code、OpenCode / Piなど)にコピー&ペーストして使うよう設計されている」と明記する。既存のRAGについて「ファイルの集まりをアップロードし、LLMが質問時に関連する断片を取得して答を生成する。これは働くが、LLMは質問のたびに知識をゼロから再発見している。蓄積が無い」と書き、代わりに「LLMが永続的なwikiを漸進的に構築し維持する」形を提案する。「知識は一度編纂され、そして現行に保たれる。問い合わせのたびに再導出されるのではない」「これが鍵となる違いだ。wikiは永続的で複利的に積み上がる成果物である」。三層は生の資料(「これらは不変であり、LLMは読むが決して変更しない」)、wiki、スキーマ(CLAUDE.mdやAGENTS.md)。操作はIngest / Query / Lintの三つで、Lintでは「ページ間の矛盾、より新しい資料に置き換えられた古びた主張、入リンクの無い孤立ページ、言及されているが独自のページを欠く重要概念、欠けた相互参照、Web検索で埋めうるデータの穴」を定期的に探させる。規模については索引ファイル方式が「およそ100件の資料、数百ページという中規模で驚くほどうまく働き、埋め込みベースのRAG基盤を不要にする」と書く。qmdを名指しで推薦し「wikiのページに対する検索エンジンが最もわかりやすい。小規模では索引ファイルで足りるが、wikiが育つと本格的な検索が欲しくなる。qmdは良い選択肢だ。markdownファイルのためのローカル検索エンジンで、BM25とベクトルのハイブリッド検索とLLMによる再ランクを、すべて端末上で行う」と述べる。維持コストについて「知識ベースを維持するとき面倒なのは読むことでも考えることでもない。事務作業のほうだ」「人間がwikiを放棄するのは、維持の負担が価値より速く増えるからだ」と書き、続けて「LLMは退屈しないし、相互参照の更新を忘れないし、一度に15のファイルに触れる。wikiが維持され続けるのは、維持の費用がほぼゼロだからだ」と結ぶ。取り込みの節では「一つの資料が10〜15のwikiページに触れうる」としたうえで、「個人的には資料を一つずつ取り込み、関与を保つほうを好む。要約を読み、更新を確かめ、何を強調するかをLLMに導く」と書き、監督の薄い一括取り込みも選べるとしている。推薦が置かれた節の見出しは「任意のCLI道具」で、推薦文の直後に「もっと単純なものを自分で作ってもよい。必要が生じたときに、素朴な検索スクリプトをLLMと一緒に書けばよい」と続く。文書自身が「この文書は意図的に抽象的である。実装ではなくアイデアを記述している」と断り、末尾の注記で「上に挙げたものはすべて任意で組み替え可能である。役に立つものを選び、そうでないものは無視せよ」「wikiが十分に小さければ索引ファイルだけで足り、検索エンジンは要らない」と書いている。https://gist.github.com/karpathy/442a6bf555914893e9891c11519de94f ↩ ↩2 ↩3 ↩4 ↩5 ↩6 ↩7 ↩8
-
tobi/qmd, リポジトリとREADME(作成2025年12月8日、最終push 2026年8月18日、star 29,579件。いずれも2026年9月8日にGitHub APIで取得)。作者はTobi Lütke。説明文は「ドキュメント、知識ベース、議事録などのための小さなCLI検索エンジン。すべてローカルで動かしながら現在のsotaな手法を追う」。検索経路について「型付き展開は排他的に振り分けられる。
lexはBM25/FTSへ、vecとhydeはベクトル検索へ。元のクエリは両方のバックエンドへ送られ、RRFで融合されて再ランクされる」。融合手順は、クエリ展開(原クエリを重み2倍、LLMによる変形を1つ)、並列取得(各クエリがFTSとベクトル索引の両方を引く)、RRF融合(score = Σ(1/(k+rank+1))、k=60)、上位順位ボーナス(いずれかの一覧で1位なら+0.05、2〜3位なら+0.02)、上位30件の選択、LLMによる再ランク(yes/noとlogprobsによる確信度)、位置を考慮した混合(RRF1〜3位は検索75%と再ランク25%=「完全一致を保つ」、4〜10位は60%と40%、11位以降は40%と60%で「再ランクをより信頼する」)の7段。この設計の理由は README 自身が手順の直後に書いている——「なぜこの方法か: 純粋なRRFは、展開したクエリが一致しないときに完全一致を薄めうる。上位順位ボーナスは、元のクエリに対して1位を取った文書を保つ。位置を考慮した混合は、再ランクが確信度の高い検索結果を壊すのを防ぐ」。ローカルのGGUFモデルは「GGUF Models (via node-llama-cpp)」節の表に三つ挙がっており(埋め込み・再ランク・クエリ展開)、初回利用時にHuggingFaceから自動取得され~/.cache/qmd/models/にキャッシュされる。既定の埋め込みモデルについては別に「多言語コーパス(中国語・日本語・韓国語など)ではembeddinggemma-300Mの網羅が限られる」と書き、対応モデル族は二つで、既定のembeddinggemmaは英語最適化で設置面積が小さく、Qwen3-Embeddingは多言語(CJKを含む119言語)に対応すると並べる。差し替えはQMD_EMBED_MODEL環境変数で行い、「ベクトルはモデル間で互換ではないのでqmd embed -fで再索引しなければならない」と注記する。索引の更新について「index.ymlの編集はQMDが使うディレクトリとモデルを変えるが、それ自体では再索引しない。path、pattern、ignoreを変えたらqmd updateを、models.embedを変えたらqmd embedを実行せよ」と注記する。再ランクへ回す上位30件という数は融合手順の散文とASCII図に一致するが、同じREADMEのMCPツールのパラメータ表とCLIの--candidate-limitは上限を既定40と書いており、原典の中でこの数は揃っていない。コレクションのupdate欄は「QMDに組み込まれた更新フック」であり、qmd updateを実行すると各コレクションのupdateコマンドが先に走ってから再索引される(設定例はpath: ~/reference/wikiとupdate: "git pull --ff-only")。分割については「構文木を意識した分割(--chunk-strategy auto)はtree-sitterを使い、コードファイルを関数、クラス、インポートの境界で分割する」一方で「markdownとその他のファイル形式は、戦略にかかわらず常に正規表現ベースの分割を使う」と明記し、既定はregexである。埋め込みは900トークン/チャンク、15%の重なり。READMEが設定例として指すexample-index.yml(raw.githubusercontent.com/tobi/qmd/main/example-index.yml、HTTP 200 / 5,028バイト、2026年9月8日取得)には、path: ~/reference/wikiとupdate: "git pull --ff-only"を持ち、patternが配下のmarkdownを再帰的に拾うglobであるwikiコレクションがあり、そのcontextは「外部のwiki。qmd updateのたびに自動で取得される」。同ファイルのglobal_contextは「関連する[[WikiWord]]を見かけたら、そのWikiWordを検索してさらに文脈を得られる」である。https://github.com/tobi/qmd ↩ ↩2 ↩3 ↩4 ↩5 ↩6 ↩7 ↩8 -
Darren Edge, Ha Trinh & Jonathan Larson, “LazyGraphRAG: Setting a new standard for quality and cost”, Microsoft Research Blog(2024年11月25日公開。2025年6月6日付の編集注は、この技術がMicrosoft DiscoveryとAzure Localに統合されたと記す)。冒頭で「本稿では、資料の事前要約を必要とせず、利用者や用途によっては法外になりうる前払いの索引費用を避ける、根本的に異なるグラフ利用RAGの手法を紹介する」と書く。「LazyGraphRAGのデータ索引費用はベクトルRAGと同一で、完全なGraphRAGの費用の0.1%である」。⚠ その直後の2文が、質問時の費用も下がったと報告している——「ベクトルRAGと同等の質問費用で、LazyGraphRAGは局所的な問いにおいて、長文脈ベクトルRAGやGraphRAGのDRIFT検索、GraphRAGの局所検索を含む競合手法のすべてを上回る」「同じLazyGraphRAG構成は、大域的な問いについてGraphRAGの大域検索と同等の答えの品質を示すが、質問費用は700倍以上低い」。比較表は要約索引の段を「無し——『lazy』な手法はLLMの使用をすべて質問時まで遅らせる」と記す。「全体の性能は一つの主パラメータ、関連性検査の予算(relevance test budget)で調整でき、費用と品質のトレードオフを一貫した形で制御する」。⚠ 数値は同グループ自身の測定で、第三者の再現ではない。留保として引く理由: 索引時のLLMの手間を質問時へ遅らせた設計だが、原典は質問時の費用も同時に下がったと報告している。∴ この出典が示すのは手間の移動ではなく両方の時点での減少であり、本稿の「手間は消えず、置き場が移る」という見立てを、そのままは支えない。https://www.microsoft.com/en-us/research/blog/lazygraphrag-setting-a-new-standard-for-quality-and-cost/ ↩ ↩2 ↩3
-
P. Sarthi, S. Abdullah, A. Tuli, S. Khanna, A. Goldie & C. D. Manning, “RAPTOR: Recursive Abstractive Processing for Tree-Organized Retrieval”, ICLR 2024(poster。OpenReview id GN921JHCRw で採択を確認)。arXiv:2401.18059(2024年1月31日投稿、v1のみ)。所属はStanford University。要旨は「文書の断片を再帰的に埋め込み、クラスタリングし、要約して、下から上へ異なる要約水準を持つ木を構築する」手法を提案し、「推論時に、RAPTORモデルはこの木から取り出し、長い文書の情報を異なる抽象度で統合する」と書く。「複雑な多段推論を要する質問応答課題で最先端の結果を示す。たとえばRAPTORの検索をGPT-4と組み合わせると、QuALITYベンチマークの最良成績を絶対精度で20%改善できる」。QuALITYについて本文は「平均およそ5,000トークンの文脈を伴う選択式の問題からなる」データセットと説明する。費用について本文は「システムは構築時間とトークン消費の両方で線形にスケールする」と書き、付録Aは「家庭用のラップトップ、具体的には16GB RAMのApple M1 Mac」で「文脈長を12,500から78,000トークンまで変え」て木の構築のトークン消費と所要時間を測ったと記録し、図5の説明は「RAPTORの木の構築費用は各データセットで文書長に対して線形にスケールする」。付録Eは要約の幻覚を測っている。「RAPTORモデルの要約の質と正確さを評価するため、生成された要約における幻覚に焦点を当てた分析を行った」とし、要約は
gpt-3.5-turboが生成したもので、「40作品にわたる150ノードを無作為に抽出し、幻覚について評価した。各ノードは人手で注釈し、幻覚を含むかどうかを判定した」。結果は「抽出した150ノードのうち4%(6ノード)が何らかの形の幻覚を含んでいた。最も多かったのは、要約対象の本文に無い情報を、おそらく訓練データから、モデルが少量付け足すもの、あるいは要約を作る際に情報を誤って外挿するものだった」。続けて「すべての親ノードを見直したところ、幻覚は上位層へ伝播していないことが分かった」「我々の知見では、幻覚は質問応答課題の成績に識別できる影響を与えなかった」。本文6.1節も「約4%の要約が軽微な幻覚を含んでいたが、これらは親ノードへ伝播せず、質問応答課題に識別できる影響を与えなかった」と要約する。留保として引く理由: 要約を先に作る側の利得が手間の置き場ではなく精度の差として報告されており、編纂と検索を「どちらに手間を置くか」だけで並べる本稿の枠を狭める。あわせて、編纂で原典に無い断定が足されるという本稿の懸念を、この論文は測ったうえで軽微だと報告している。https://arxiv.org/abs/2401.18059 ↩ ↩2 -
D. Edge, H. Trinh, N. Cheng, J. Bradley, A. Chao, A. Mody, S. Truitt, D. Metropolitansky, R. O. Ness & J. Larson, “From Local to Global: A Graph RAG Approach to Query-Focused Summarization”, arXiv:2404.16130(2024年4月24日投稿、v2は2025年2月19日。査読誌・会議への掲載は確認できていない=プレプリントとして引く。著者はMicrosoft所属)。要旨は「RAGは『データセットの主題は何か』のようなコーパス全体に向けた大域的な問いには失敗する。これは本質的に、明示的な検索の課題ではなく、質問に焦点を絞った要約(QFS)の課題だからである」と書き、「我々の手法はLLMを使って二段階でグラフ索引を構築する。まず資料から実体の知識グラフを導出し、次に密接に関連する実体のすべてのグループについてコミュニティ要約をあらかじめ生成する」「100万トークン規模のデータセットに対する大域的な全体把握の問いのクラスについて、GraphRAGが従来のRAGベースラインに対し、生成された答えの網羅性と多様性の両方で大幅な改善をもたらすことを示す」。評価基準は網羅性・多様性・エンパワーメント(読者が理解し判断するのをどれだけ助けるか)と、統制用の直接性の4つ。同じ節で「文脈の関連性」「忠実さ」「答えの関連性」は「ベクトルRAGシステムに一般的な基準で、大域的な全体把握には関係ない」として評価から外している。⚠ 網羅性・多様性の比較は、著者らが自ら設計した基準にLLM審判(LLM-as-a-judge)を当てた同グループ自身の測定である。原典は「評価の金標準が無いので、ある基準についての相対的な性能は、競合する二つのモデルの生成をLLMに比較させることで定量できる」と書き、そのうえで「本研究では大域的な全体把握の問いへのRAG回答を評価する基準を設計し、比較の手法で結果を評価する」と述べる(別途「LLMが抽出した検証可能な事実の記述、すなわち『主張』から導いた統計でも結果を検証する」とも書く)。留保として引く理由: 先に編纂することの利得が、手間の置き場ではなく答えられる問いの範囲の差として報告されている。https://arxiv.org/abs/2404.16130 ↩ ↩2
-
Anthropic, “Introducing Contextual Retrieval”(2024年9月19日公開)。「Contextual Retrievalは、埋め込みの前(Contextual Embeddings)とBM25索引の作成前(Contextual BM25)に、断片固有の説明的な文脈を各断片の前に付けることでこの問題を解く」。「この手法は検索の失敗の数を49%減らし、再ランクと組み合わせると67%減らせる」。内訳は「上位20断片の検索失敗率」で、Contextual EmbeddingsとContextual BM25の組み合わせで5.7%から2.9%(49%減)、再ランクを加えると1.9%(67%減)。文脈の生成にはClaude 3 Haikuを使う。費用の見積もりはプロンプトキャッシュを前提に置いたもので、原典は「プロンプトキャッシュがあれば、断片ごとに参照文書を渡す必要はない。文書を一度キャッシュへ読み込み、以後はキャッシュ済みの内容を参照するだけでよい」と述べたうえで、「800トークンの断片、8kトークンの文書、50トークンの文脈指示、断片あたり100トークンの文脈を仮定すると、文脈付き断片を生成する一度きりの費用は文書100万トークンあたり1.02ドル」と見積もる。⚠ 数値は同社自身の測定で、第三者の再現ではない。支持として引く理由: 索引時にLLMの仕事を置く設計に、前払いの費用が値段として付いている。https://www.anthropic.com/news/contextual-retrieval ↩
この記事はAIが執筆しています。内容には誤りが含まれる可能性があります。ご注意ください。