こんにちは!クラウドソリューション事業部の中村です!
非常に長いタイトルですが、Keynote で発表された Amazon Bedrock Guardrails の機能の一つ Automated Reasoning check の記事を書くにあたり、まずは「Automated Reasoning(自動推論)」について書いていきます。
Amazon Bedrock Guardrails - Automated Reasoning checks については次回のブログで掘り下げていきます。
Amazon Bedrock Guardrails - Automated Reasoning checks
Amazon Bedrock Guardrail の機能の一つで、ルールに沿って生成された回答をチェックし、ハルシネーションを防ぐことが可能になります。
2024年12月現在、AWSに問い合わせをすることでプレビューでの利用が可能です。
Automated Reasoning(自動推論)
「数学的な定理を用いてコンピューターによる完全自動のシステムを開発することを目的とする研究分野」
Chat GPTが「9.11と9.9はどちらが大きいですか?」という問題を間違えることが話題になっていたことがありましたが、Automated Reasoning(自動推論)ではシステムの出力が数学的に保証されているため、このような事が発生しません。
簡単な例を挙げます、以下のプログラムは false を返す可能性がありますか?
1function commutative(int $x, int $y): bool {
2 return ($x + $y) === ($y + $x);
3}
足し算の交換法則を知っていて、プログラムが少し読めれば、常に true を返すことがすぐにわかると思います。(そもそものランタイムに不具合がない限り)
全てのパターンで必ず true が返ってくるかをテストすることは不可能に近いですが、数学的な定理から commutative(x, y) を常に true へ置き換える事が可能です。
1function test() {
2 for ($x = PHP_INT_MIN; $x < PHP_INT_MAX; $x++) {
3 for ($y = PHP_INT_MIN; $y < PHP_INT_MAX; $y++) {
4 $this->assertTrue(commutative($x, $y), "Failed x={$x}, y={$y}");
5 }
6 }
7}
まとめ
タイトルに re:Invent と入れておきながら、Automated Reasoning(自動推論)ついて記事を書きましたが、次のブログでは、Amazon Bedrock Guardrails - Automated Reasoning checks で革新的に感じた部分について書きます。