SnowPro Specialty: Gen AI 無料問題 3 / 10 ・ 分野2: Snowflake Gen AI Functions
あるテーブルには VECTOR(FLOAT, 1024) の列がある。計算済みの埋め込みは浮動小数点数の JSON 配列で届くが、一部は古いモデルの 768 個の値を持つ。これらをこの列に変換して入れることについて、ドキュメントは何と書いているか。
- 768 個の配列は、変換のときに 0 で埋められて 1,024 個になる
- 配列は、正しい型の要素が 1,024 個あるときだけ変換できる
- どの長さの配列も受け付けられ、次元は目安にすぎない
- 768 個の配列は、1,024 個の枠の先頭 768 個に入れられる
正解と解説を見る
正解: B
正解の理由
VECTOR の値は、ARRAY、構造化 ARRAY、ARRAY を含む VARIANT から明示的に変換できる。ページは、VECTOR と ARRAY の型の間で変換するときは、配列の要素の数がベクトルの次元と一致し、配列の要素のデータ型がベクトルのデータ型と一致しなければならないと書いている。768 個の値の埋め込みには別の列を用意するか、1,024 次元のモデルで埋め込み直す必要がある。
違う選択肢
「768 個の配列は、変換のときに 0 で埋められて 1,024 個になる」… ページには、0 で埋める動きは書かれていない。要素の数が次元と一致しなければならないので、768 個の配列は 1,024 次元のベクトルには変換されない。
「どの長さの配列も受け付けられ、次元は目安にすぎない」… 次元は型の定義の一部で、目安ではない。変換のときに配列の長さと照らし合わされる。
「768 個の配列は、1,024 個の枠の先頭 768 個に入れられる」… VECTOR の値に、一部だけ埋まった枠はない。配列とベクトルは同じ数の要素を持たなければならない。
モデルを混ぜない
違うモデルのベクトルは、長さが同じでも比べられない。1つの列には1つの埋め込みモデルの結果だけを入れ、どのモデルで作ったかを記録しておく。