guide
日本語AI検索の精度を上げる5つのポイント
2025年2月5日 · PC AI
社内向けにRAGを導入してみたものの、「思ったほど答えの精度が出ない」という声をよく聞きます。
その多くは、日本語特有の事情に起因しています。英語のRAGをそのまま日本語に持ってきたとき、精度が下がるポイントはほぼ決まっています。今回は、実務で効く5つの改善点を紹介します。
1. チャンク分割を文単位ではなく意味単位にする
RAGでは、長い文書を「チャンク」と呼ばれる小さな単位に分割して検索します。ここの分け方が一番効きます。
英語のチュートリアルだと「200トークンごとに分割」のような指示をよく見ます。これを日本語にそのまま使うと、文の途中で切れたり、文脈が分断されたりして精度が落ちます。
日本語の文書では、次の方針が有効です。
- 見出し単位で区切る:H2、H3など、もともとある章立てを尊重する
- 段落単位で再分割する:見出し配下の段落を、意味のまとまりとして扱う
- 重要な用語の前後を残す:用語の定義部分が分割で切れないよう、前後にオーバーラップを持たせる
特にFAQやマニュアル系の文書では、質問と回答がペアで含まれるようにチャンクを切るだけで、検索ヒット率が大きく上がります。
2. 多言語対応の埋め込みモデルを選ぶ
検索の裏側では、文章を「埋め込み(embedding)」と呼ばれる数値ベクトルに変換しています。このモデルが日本語に対応していないと、そもそも意味を捉えきれません。
OpenAIのtext-embedding-3-large、Cohereのembed-multilingual-v3、ローカル運用ならmultilingual-e5-largeあたりが、日本語でも実用的な精度を出します。
英語専用の埋め込みモデル(text-embedding-ada-002の旧版など)を使い続けていると、ここで大きく損をしている可能性があります。
3. キーワード検索を併用する(ハイブリッド検索)
埋め込みベースの検索(ベクトル検索)は、意味の近い文章を探すのは得意ですが、固有名詞や型番の完全一致は苦手です。
たとえば「ABC-123型のマニュアルを見せて」という質問に対して、ベクトル検索だけだと「ABC-122型」のマニュアルが上位に来てしまうことがあります。
これを補うのが、従来のキーワード検索(BM25など)との併用です。両方の結果をスコア合成することで、意味も型番も両立した検索ができます。
4. リランキングを入れる
検索で上位に出たものを、もう一段階「リランカー」と呼ばれるモデルで並べ替えると、精度が一気に上がります。
最初の検索(ベクトル+キーワード)は速度重視で広く取り、上位20件くらいをリランカーが質問への答えやすさで並べ直す。これで、回答に使うコンテキストの質が大きく改善します。
CohereのRerank、BAAI/bge-reranker-v2-m3など、日本語に対応したリランカーも増えています。
5. 評価セットで継続的に測る
ここまでの工夫は、何が効いたか測れないと意味がありません。
おすすめは、業務でよく聞かれる質問を30〜100問ほど選んで「想定回答」とセットにした評価セットを作ることです。
設定を変えるたびに、この評価セットを通して、ヒット率や正答率がどう変化したかを見る。これだけで、感覚に頼らない改善ができます。
評価セットは社内の実際の質問から作ると、精度向上が業務の改善に直結します。
まとめ
日本語のRAGで精度を上げるには、英語のテンプレートを日本語に翻訳しただけでは足りません。チャンクの切り方、埋め込みモデル、キーワード検索の併用、リランキング、評価。この5つを順に検討するだけで、現場で使えるレベルまで持っていけることがほとんどです。
PC AIの Saachi は、これらの工夫を標準で組み込んだ日本語RAGです。利用者は精度のためのチューニングを意識する必要がありません。
導入のご相談はお問い合わせからどうぞ。