Databricks Certified Generative AI Engineer Associate 無料問題 4 / 10 ・ 分野2: Data Preparation
表の多い仕様書の PDF を ai_parse_document(出力のスキーマは version "2.0")で解析し、表は行の途中で切らずに1つのチャンクにまとめて Vector Search の索引に入れる設計にした。チャンクを組む処理は、表として認識された部分の content を、どの形式の文字列として受け取る前提で書けばよいか。
- Markdown の表の記法(| で列を区切る形)の文字列
- HTML の表(table・tr・td のタグ)の文字列
- 1行を1つの JSON の配列にして並べた文字列
- 列をタブで区切った TSV(1行が1行)の文字列
正解と解説を見る
正解: B
正解の理由
ai_parse_document の返り値の説明(Returns)に、version 2.0 では表は HTML で表される(tables are represented in HTML)とある。表として認識された部分の content は HTML の形の文字列で返るので、チャンクを組む処理は HTML として扱う前提で書く。そのまま1つのチャンクの本文にするか、タグから行と列を読み取って整える。行と列の関係をタグで保ったまま返るので、見出しの行や複数の行にまたがるセルがあっても、表の構造を失わずに次の段へ渡せる。
違う選択肢
「Markdown の表の記法(| で列を区切る形)の文字列」… 2.0 の出力の表は Markdown の記法ではない。| の数で列を割る処理を書くと、タグを含む文字列を正しく分けられず、表の中身が崩れたチャンクになる。
「1行を1つの JSON の配列にして並べた文字列」… 出力の全体は JSON に近い入れ子の形をしているが、表の中身を行ごとの JSON の配列にする形ではない。表の content は1つの HTML の文字列である。
「列をタブで区切った TSV(1行が1行)の文字列」… 区切り文字で列を分けた形では返らない。タブで割る処理を書くと、タグごと1つの列に入り、表の行と列を取り出せない。
押さえどころ
出力のスキーマには major.minor の版が付く。マイナーの更新は後方互換で項目が増えるだけだが、メジャーの更新では項目の追加・削除・名前の変更が起こりうる。Databricks は既定の版を上げることがあると書いているので、version の引数で "2.0" を指定して版を固定しておくと、既定が変わったときに表の扱いが急に変わるのを防げる。
Databricks Certified Generative AI Engineer Associateの演習アプリ(無料10問・全問は解錠で)へ