Kotoba — 日本語RAG評価ハーネス
Kotoba — Japanese RAG Evaluation Harness
日本語ドキュメント特有のトークナイズ揺らぎ、漢字/かな混在、複合名詞を考慮した再現性のあるRAG評価基盤。Sudachi/MeCabによる形態素解析を前処理に組み込み、nDCG@10・MRR・Recall@Kをpgvector上でバッチ計測し、ruri-largeなど日本語特化埋め込みとの比較スコアを自動集計する社内R&Dハーネス。
ライブデモ
実際のアプリケーション画面のプレビュー
Retriever 比較
Embedding Leaderboard
internal benchmark| # | Model | Params | R@10 | nDCG |
|---|---|---|---|---|
| 1 | ruri-large-v2 | 337M | 0.847 | 0.792 |
| 2 | multilingual-e5-large | 560M | 0.821 | 0.774 |
| 3 | cl-nagoya/sup-simcse-ja | 110M | 0.789 | 0.751 |
| 4 | sudachi-bm25 (baseline) | — | 0.724 | 0.683 |
| 5 | mE5-small | 118M | 0.712 | 0.669 |
Query trace — sample #842
index: kotoba-legal-ja-v3Query
医療機器の添付文書における使用期限の記載要件を教えて
医療機器の添付文書には、使用の期限を記載しなければならない…
使用期限の表示は、製造販売業者が設定する有効期間に基づき…
リスクマネジメントの観点から、使用期限の妥当性を検証する…
ラベル表示における日付フォーマットは YYYY.MM 形式とし…
課題
既存のRAG評価ツールは英語前提のトークン化と類似度計算に最適化されており、日本語の文節境界や表記ゆれを正しく扱えないため、検索精度の差分が過小評価される。さらに評価データセット自体がJA領域では極端に少なく、社内知見を再現可能な形でベンチマーク化する手段がなかった。
ソリューション
Sudachi(A/B/Cモード)とMeCab+IPAdicの両トークナイザをプラガブルに切替、pgvector(HNSW/IVFFlat)上でruri-large・multilingual-e5・OpenAI text-embedding-3の3系統を並列評価。JSQuADとMIRACL-jaに加え、合成QAペアをLLM-as-Judgeで自動生成し、Ragas互換メトリクスをDuckDBに永続化する。
成果
- 社内合成QA 1,200件でnDCG@10をベースライン比+18ポイント改善(内部ベンチマーク)
- Sudachiモード切替の影響を定量化し、Cモードが長文では-6%の精度劣化を示すことを確認
- 評価1ラン当たりの実行時間を並列化で42分→9分に短縮
- 再現可能なYAML設定でGitHub Actions上の夜間回帰テストを社内運用開始
Measured Impact
評価データセット件数
1,200 QA
+1,200 (内部合成)
nDCG@10改善幅
+18pt
社内ベースライン比
1ラン実行時間
9分
-33分
並列ワーカー数
8
+6
What it does
評価機能
nDCG/MRR/Recall@K
主要IRメトリクスをDuckDBに永続化し差分可視化。
LLM-as-Judge
合成QAとRagas faithfulness/answer relevancy。
日本語対応
トークナイザ抽象
Sudachi A/B/CモードとMeCabをプラガブル切替。
表記ゆれ正規化
NFKC・全半角・カタカナ揺れの事前統一。
System Layers
Layered architecture showing components, responsibilities, and data flow.
Layer
前処理層
表記ゆれと分かち書き境界を揃える日本語前処理。モード別に分岐し結果をキャッシュ。
Layer
検索層
密ベクトルとBM25のハイブリッドで候補抽出、cross-encoderで再ランキング。
Layer
評価層
実行ごとのメトリクスとプロンプトをDuckDBに蓄積し差分レポートを生成。
How we built it
データセット整備
JSQuAD・MIRACL-jaと社内合成QAを統一スキーマに変換。
Deliverables
- データローダ
- スキーマ定義
- 品質レポート
トークナイザ比較
Sudachi各モードとMeCabの精度・速度をマトリクス評価。
Deliverables
- ベンチマーク表
- ユニットテスト
- 設定テンプレート
埋め込みモデル評価
ruri-large等の日本語特化モデルを並列評価。
Deliverables
- モデル比較レポート
- 埋め込みキャッシュ
CI統合
夜間回帰と差分アラートをGitHub Actionsに組み込み。
Deliverables
- ワークフローYAML
- 通知Bot
- ダッシュボード
Delivery Timeline
- Phase 1Done2026-04
トークナイザ抽象層
Sudachi/MeCabをPluginインターフェースで統一し単体テストを整備。
- Phase 2In Progress2026-05
評価メトリクス実装
nDCG/MRR/Recallを再計算可能な形でDuckDBに永続化。
- Phase 3Planned2026-06
LLM-as-Judge合成QA
社内文書からQAペアを自動生成し人手レビュー導線を追加。
- Phase 4Planned2026-08
OSS公開検討
MITライセンスでの部分公開と社外ベンチマーク受け入れ。
Who built it
Roles
- MLエンジニア (リード)
- データエンジニア (パートタイム)
Tools & Platforms
Backend
Data
Infrastructure
Other