Amazon Bedrock Managed Knowledge Base の日本語 PDF パース問題は英語資料なら起きないのか検証してみた

Amazon Bedrock Managed Knowledge Base の日本語 PDF パース問題は英語資料なら起きないのか検証してみた

Amazon Bedrock Managed Knowledge Baseで、英語版の画像ベースPDFをパースしたときの精度を検証してみました。日本語版PDFとの精度の比較を行いました。
2026.07.10

こんにちは!AI 事業本部のこーすけです。

2026 年 6 月 17 日に、フルマネージドな RAG サービス Amazon Bedrock Managed Knowledge Base が一般提供(GA)されました。前々回の記事では、テキストレイヤーのない画像ベースの PDF(星取り表・システム構成図)を FM パーサーが Markdown やテキスト記述に変換してくれることを確認しました。

https://dev.classmethod.jp/articles/knowledgebase-fm

Managed Knowledge Base では、パーサーの選択自体が Managed parser という自動パース機能に置き換わっています。

また、前回の記事では、Amazon Bedrock Managed Knowledge Base に画像ベースの日本語 PDF(星取り表・システム構成図)を取り込んだところ、表の読み取りが崩れる・図の説明文が英語で生成されるなど、パース品質に課題があることを確認しました。

https://dev.classmethod.jp/articles/managed-knowledgebase/

今回は前回と全く同じ構成の資料を英語版で作り直して同じ検証を行いました。

前提知識

Amazon Bedrock Managed Knowledge Base とは

ベクトルデータベースやデータ取り込みパイプラインの管理を AWS に任せられる、フルマネージドな RAG サービスです。従来の Knowledge Bases(本記事では「Custom KB」と呼びます)との違いを整理するとこうなります。

項目 Custom KB(従来) Managed KB
ベクトルストア ユーザーが構築・管理(OpenSearch Serverless 等) AWS 管理(ユーザーからは見えない)
データソース S3 等 S3 / SharePoint / Confluence / Google Drive / OneDrive / Web Crawler の 6 コネクタ
パース デフォルトパーサー or FM パーサーを選択 Managed parser(既定・自動選択)
埋め込み・リランク ユーザーが選択 サービス管理(カスタム指定も可)

Managed parser とは

Managed KB のデータ取り込みで既定になっているパース戦略です。コンソールの注釈には「The Bedrock service will parse your content with an optimal strategy.(Bedrock サービスが最適な戦略でコンテンツをパースします)」とあり、対応データと出力が次のように示されています。

スクリーンショット 2026-07-07 192325

パース対象のデータ(Data parsed):

  • テキスト文書(Word、Excel、html、markdown、.txt、.csv など)
  • PDF
  • 画像
  • 構造化・整形されたテキスト文書
  • ビジュアル要素の多い文書(Visually rich documents)
  • 音声
  • 動画

パーサーの出力(Parser output):

  • 抽出されたテキスト
  • 画像・ビジュアル・図・チャートの説明文
  • 音声・動画の文字起こし

従来の FM パーサーでやっていた図表のテキスト化を、サービス側が自動で判断してやってくれるイメージかと思います。

なおチャンキングについては、Default / Fixed-size / No chunking の 3 択から選べる設定項目が残っています(階層・セマンティックチャンキングはコンソールからは確認できませんでした)。

また、AWS の発表ブログではこの自動パースの仕組みを「Smart Parsing」と呼んでいます。

参考ドキュメント:

検証内容

前回の検証と条件を揃え、資料の言語だけを変えます。

サンプルデータ

前回の日本語資料とレイアウト・内容・記号(○ / △ / ×)まで同一の英語版を用意しました。どちらもテキストレイヤーのない画像ベースの PDF となります。

  1. 星取り表 PDF(hoshitori_en.pdf) — 製品プランごとの機能対応表(○ / △ / × の表)の英語版
    hoshitori_en

  2. システム構成図 PDF(architecture_en.pdf) — AWS サービスのアイコンと矢印で構成されたアーキテクチャ図の英語版
    architecture_en

評価用の質問セット

質問セットは前回と同じ 6 問(日本語)を使います。

hoshitori_en.pdf についての質問

  1. 「機能『外部共有』はスタンダードプランで使えますか」
  2. 「プロプランでしか使えない機能をすべて挙げてください」
  3. 「○ が一番多いプランはどれですか」

architecture_en.pdf についての質問

  1. 「Web サーバーはどのデータベースに接続していますか」
  2. 「構成図に登場する AWS サービスをすべて挙げてください」
  3. 「シングル AZ 構成になっているコンポーネントはありますか」

手順

ステップ 1: サンプル資料を S3 へ配置

検証用の S3 バケットに英語版の PDF 2 点を格納します。
スクリーンショット 2026-07-09 110519

ステップ 2: Managed Knowledge Base の作成

前回と同じ設定で、英語資料用の Managed Knowledge Base を新規作成します。

  • 埋め込みモデル: Titan Text Embeddings V2(Bedrock embeddings model)
  • パーサー: Managed parser
  • チャンキング: デフォルト

作成手順の詳細は前回記事を参照してください。
https://dev.classmethod.jp/articles/managed-knowledgebase/

データソースの同期が完了したらナレッジベース ID を押さえておきます。

ステップ 3: 検証スクリプトの実行

前回と同じスクリプトで、Retrieve API からチャンクの中身(Managed parser のパース結果)を確認します。クエリを実行し、取得されるスコア上位のチャンクを表示することで間接的に確認します。

import boto3

client = boto3.client("bedrock-agent-runtime", region_name="ap-northeast-1")

KB_ID = "XXXXXXXXXX"  # 作成した Managed KB の ID
QUESTIONS = [
    "機能『外部共有』はスタンダードプランで使えますか",
    "プロプランでしか使えない機能をすべて挙げてください",
    "○ が一番多いプランはどれですか",
    "Web サーバーはどのデータベースに接続していますか",
    "構成図に登場する AWS サービスをすべて挙げてください",
    "シングル AZ 構成になっているコンポーネントはありますか"
]

# Retrieve でパース結果(チャンク)を確認
for q in QUESTIONS:
    print(f"########## クエリ: {q} ##########")
    res = client.retrieve(
        knowledgeBaseId=KB_ID,
        retrievalQuery={"text": q},
        retrievalConfiguration={"managedSearchConfiguration": {"numberOfResults": 10}},
    )
    for i, result in enumerate(res["retrievalResults"], 1):
        print(f"=== チャンク {i}(score: {result.get('score')})===")
        print(result["content"]["text"])

検証結果

星取り表(hoshitori_en.pdf)のパース結果

「機能『外部共有』はスタンダードプランで使えますか」というクエリに対する上位チャンクがこちらになります。チャンク 2 が表本体をパースしたもの、チャンク 3 は凡例や注釈をパースした結果だと思われます。

=== チャンク 2(score: 0.98)===
Example Notes Plan Feature Comparison
Example Notes Plan Feature Comparison (July 2026 / dummy document for internal testing)
Feature Free    Standard        Pro
Note creation & editing [ ]     [ ]     [ ]
Full-text search        [ ]     [ ]     [ ]
Real-time collaboration [X]     [ ]     [ ]
Offline editing         [X]     [ ]     [ ]
External sharing links  [X]     [ ] *1  [ ]
Version history         [X]     [ ] *2  [ ]
API access              [X]     [X]     [ ]
Audit logs              [X]     [X]     [ ]
SSO (Single Sign-On)    [X]     [X]     [ ]
Unlimited storage       [X]     [X]     [ ]

=== チャンク 3(score: 0.97)===
Legend: o = Available Д = Available with limitations = Not available
*1 External sharing links are view-only (granting edit permission requires the Pro plan)
*2 Version history is retained for 7 days (unlimited on the Pro plan) [X] []

前回の日本語版では表そのものが崩壊して機能名すら読み取れませんでしたが、今回は行構造を保ったまま抽出されていることが確認できました。機能名・プラン名・脚注の英語テキストも正確に抽出できています。英語テキストの OCR は問題なく機能していると言えそうです。

一方で、記号(○ / △ / ×)の認識は英語資料でも失敗していました。元の PDF と突き合わせると、次のように変換されていました。

元の記号 表中での出力 凡例での出力
○(利用可) [ ] o
△(制限あり) [ ](○ と区別がつかない) Д(キリル文字に文字化け)
×(利用不可) [X] 消失(対応する記号なし)

日本語資料ほど読み取り精度は悪くありませんでしたが、Custom KB の FM パーサーによるパーシング処理のほうが精度が高い印象を受けます。Custom KBではパースモデルを選択できる一方で、Managed KBでは選択することができません。パースに使用するモデルの性能差といえると思います。

参考
https://dev.classmethod.jp/articles/knowledgebase-fm/
https://docs.aws.amazon.com/bedrock/latest/userguide/kb-managed-customize-ingestion.html

構成図(architecture_en.pdf)のパース結果

「構成図に登場する AWS サービスをすべて挙げてください」というクエリに対するチャンクがこちらになります。
構成図の方は、詳細な説明文チャンクが生成されていました。

=== チャンク 1(score: 1.0)===
<analysis> <image_type> Technical Diagram / System Architecture Diagram This is a data flow and
process flow diagram specifically depicting cloud infrastructure architecture using AWS services.
</image_type> <title> Example Notes System Architecture (AWS Cloud Infrastructure) </title>
(中略)
**Components:** 1. User (Browser) - External client initiating requests 2. ALB (Application Load
Balancer) - Entry point for web traffic 3. Web App (Amazon ECS, Fargate / Multi-AZ) - Application
server running on containerized infrastructure 4. Cache (Amazon ElastiCache, Redis) - Session data
storage 5. DB (Amazon RDS, PostgreSQL / Single-AZ) - Primary database 6.

構成要素(ALB / ECS Fargate / ElastiCache / RDS / S3)、接続関係、注釈まで読み取り、適切な解釈の上キャプションを生成できており、精度はよい印象です。

ナレッジベースのテストを実行する

前回と同様に「ナレッジベースのテスト」から、6 つの質問を順に投げていきます。

スクリーンショット 2026-07-09 121915
スクリーンショット 2026-07-09 121940
スクリーンショット 2026-07-09 122010

1, 2 問目は正解できています。3 問目は記号の取り違えの影響で回答できない……と思いきや、回答生成モデルの方の力で何とかカバーされていました。

スクリーンショット 2026-07-09 144455
スクリーンショット 2026-07-09 144520
スクリーンショット 2026-07-09 144713

アーキテクチャ図に関する質問は問題なく回答できました。

おわりに

前回の日本語画像を含む PDF で発生した、パース品質の問題の原因を切り分けるための検証を行いました。
英語 PDF のパース品質は、日本語のものよりも格段に良い一方で、従来のFMパーサーで選択できる他モデルとの性能差を感じる結果となりました。

Managed KB はまだ登場したばかりのサービスなので、パーサーの日本語対応が改善されればこの評価は変わってくるはずです。今後のアップデートに期待しつつ、引き続き検証していきたいと思います。

最後まで読んでいただきありがとうございました!

参考リンク

この記事をシェアする

AWSのお困り事はクラスメソッドへ

関連記事