渡す件数を1件から5件に増やすと、文脈適合率は0.600から0.320に下がり、文脈再現率は0.300から1.000に上がりました。逆に動きます。
さらに、同じ文脈から作られた答えでも忠実性は1.000と0.667に分かれます。検索の側の数字だけでは、直す場所が決まりません。
渡す件数を変えて測りました。2つの指標は逆に動くので、片方だけを見て決めることができません。
RAGASが分けて測っているものを確かめるため、実際に走らせて測りました。使ったのは社内規程を模した文書13件と、問い5件です。
渡す件数を1件・3件・5件と変えて、渡した文脈がどれだけ当たっているかと、正解をどれだけ取りこぼしていないかを別々に数えました。
for (const k of [1, 3, 5]) {
for (const { q, rel } of QUERIES) {
const ids = bm25(q).slice(0, k).map((x) => x.i);
p += ids.filter((i) => rel.includes(i)).length / k; // 当たりの割合
r += rel.filter((i) => ids.includes(i)).length / rel.length; // 取りこぼしのなさ
}
}
渡す件数 文脈適合率 文脈再現率 渡す文字数
1件 0.600 0.300 62字
3件 0.467 0.900 175字
5件 0.320 1.000 238字
上の表を見てください。件数を増やすと適合率は0.600から0.320に下がり、再現率は0.300から1.000に上がります。
件数を増やせば正解が入る確率は上がります。ところが外れも一緒に入ります。渡したものに占める当たりの割合はその分だけ低くなるわけです。
Ragasの説明も、この指標を関係のある塊を関係のないものより上位に並べる能力を評価するものだとしています。並べ方を見ている指標です。
適合率だけを見れば1件がいちばん良く、再現率だけを見れば5件がいちばん良いです。反対の結論が出ます。
だから複数の数字を並べます。どちらを重くするかは、答えを作る側がどれだけ外れに強いかで決まります。
件数を増やすと、2つの数字は反対に動く。
Context Precision is a metric that evaluates the retriever's ability to rank relevant chunks higher than irrelevant ones原文Ragas ドキュメント「Context Precision」 この内容の有効期限2027-02-18
検索を組み合わせた生成を、検索の側と答えの側に分けて数字にします。1つの総合点にはしません。
RAGASは、検索を組み合わせた生成の出来を、複数の数字に分けて測る枠組みです。
測る対象は大きく2つに分かれます。渡した文脈が適切だったかと、その文脈から出た答えが適切だったかです。
前の節で測ったのは前者です。答えを作る前の段階だけを見ています。
Ragasの説明では、この指標は文脈に含まれる各塊についての順位ごとの適合率の平均として計算されるとされています。
つまり順位が効きます。同じ文書を渡していても、正解が上にあるほど数字は高くなります。
2番目が手間です。正解を決めないと、どの指標も計算できません。まず問い5件から始めるのが現実的です。評価の組み立て方は検索評価の記事で扱っています。
答えの文面は私が手で置きました。生成AIが書きそうな3通りを用意して、そこから主張を取り出しています。実際のRagasは主張の取り出しも判定も生成AIに行わせるので、そこ自体に誤差が入ります。この記事で見せているのは、指標が何を見ているかという中身です。
It is calculated as the mean of the precision@k for each chunk in the context.原文Ragas ドキュメント「Context Precision」 この内容の有効期限2027-02-18
同じ文脈から作られた答えでも、忠実性は1.000と0.667に分かれました。検索の側だけ測っていると見逃します。
RAGASの答えの側の指標が何を捉えるのかを、実際に走らせて測りました。答えを主張に分け、それぞれが渡した文脈に支えられているかを数えています。
答え 主張の数 支えられた数 忠実性 宿泊費の上限は1泊12000円です。超過分は自己負担 2個 2個 1.000 宿泊費の上限は1泊12000円です。超過分は自己負担 3個 2個 0.667 前払は出発の7営業日前までに申請します。上限は概算額 2個 2個 1.000 支えられなかった主張 「部長の承認があれば例外」… 渡した文脈に出てこない
1行目と2行目は同じ問いで、同じ文脈から作られた答えです。検索の側の数字はまったく同じです。
違いは主張が1つ多いことだけです。「部長の承認があれば例外」という一文が、渡した文脈に出てきません。
Ragasの手順も、各主張について、取ってきた文脈から導けるかを確認するとしています。導けない主張が1つ入ると、忠実性は0.667に落ちます。
この2つを分けて測っていると、直す場所が決まります。忠実性だけが低いなら、検索を触っても直りません。
4番目を避けてください。指標を分けた意味がなくなります。文脈の範囲を外れる問題はグラウンディングの記事でも扱っています。
同じ文脈でも、答えの数字は分かれる。
Check each claim to see if it can be inferred from the retrieved context.原文Ragas ドキュメント「Faithfulness」 この内容の有効期限2027-02-18
同じ課題を持つ会社にとって、動いている設定は「作る時間」を買えるということです。ServiceDockは自作のワークフローやテンプレートを出品できるマーケットプレイスです。手数料や出品の流れは出品者向けページにまとまっています。
出品の仕組みを見る