Databricks Certified Generative AI Engineer Associate 無料問題 2 / 10 ・ 分野1: Design Applications
商品レビューから「要約」と「評価(1〜5)」を JSON で返させる。画面の都合で要約は100字までにしたいので、JSON スキーマの summary に maxLength: 100 を書き、response_format(type は json_schema、strict は true)で Foundation Model APIs のチャットモデルに渡した。返ってくる JSON について、文書の説明に合うものはどれか。
- 長さの制約を含むスキーマは受け付けられず、要求そのものがエラーで返される
- maxLength は強制されないので、100字を超える summary が返ることがある
- 100字を超えたときは、スキーマに合うまで生成がやり直されてから返される
- 生成が100字に達した時点で、summary の値が100字のところで打ち切られた形で返される
正解と解説を見る
正解: B
正解の理由
structured outputs の制限の節に、Foundation Model APIs はオブジェクトと配列の長さ・大きさの制約を強制しないとあり、maxProperties・minProperties・maxLength のようなキーもこれに含まれると書かれている。スキーマに maxLength: 100 を書いても、モデルの出力はその長さに縛られない。100字を超える summary が返ることがある、と考えて組む必要がある。スキーマの検証は形(キーと型)を合わせる方向に働くもので、文字数のような量の決まりは、プロンプトの指示や受け取った後の処理で受け持つ。
違う選択肢
「生成が100字に達した時点で、summary の値が100字のところで打ち切られた形で返される」… Foundation Model APIs は、オブジェクトや配列の長さ・大きさの制約を強制しないとされている。生成を100字で止める動きは書かれていないので、100字を超える要約がそのまま返りうる。
「長さの制約を含むスキーマは受け付けられず、要求そのものがエラーで返される」… 長さの制約のキーは、対応しないキー(pattern や anyOf など)の一覧には入っていない。制限の節に「強制しない」と書かれているので、要求は通り、制約が効かないまま応答が返る。
「100字を超えたときは、スキーマに合うまで生成がやり直されてから返される」… 長さの制約は強制されないので、超えた応答を検出して作り直す動きも起きない。アプリの側で長さを確かめずに表示すると、画面からあふれる要約がそのまま出る。
押さえどころ
量の決まりは、2か所で受け持つと崩れにくい。1つはプロンプトに「100字以内」と書くこと、もう1つはアプリで長さを確かめて切るか、もう一度問い合わせることである。項目の個数(配列の件数)の上限・下限も、同じ理由でスキーマに書くだけでは保証されない。
Databricks Certified Generative AI Engineer Associateの演習アプリ(無料10問・全問は解錠で)へ