Amazonの新AI が最も困難なプログラミングの課題を解決

5,137 文字

Amazon's NEW AI Just Solved The HARDEST Programming Problem
Learn more on the AWS News Blog: of the people behind this big launch:Byron:

コンピューターサイエンスの分野には、コードを書くのが非常に困難で、世界最大級の企業しか取り組めないような領域があります。それが自動推論と呼ばれる分野です。これらのシステムで間違いを犯すと、その代償は壊滅的なものとなります。
でも、もしAIを使えたらどうでしょう?AIは既に一晩でコーディングの様相を一変させました。大規模言語モデルは、コード作成の支援や、コード全体の作成など、大量のコードを書くことができます。ただし、一つ大きな問題があります。それは幻覚です。たった一つの幻覚でも、システム全体が機能しなくなる可能性があります。
そういうことは、永遠に手作業で自動推論を書き続けなければならないということなのでしょうか?実は、この問題についにに解決策が見つかったかもしれません。これまでは何年もかけて構築し、最大手企業しかできなかったことが、たった一人で数時間のうちに構築できるようになる可能性が出てきたのです。
それでは、なぜ自動推論がそれほど難しいのか、なぜそれが極めて重要なミッションなのか、そしてなぜ失敗が絶対に許されないのか、詳しく説明していきましょう。具体例や歴史的な背景も交えながら説明していきます。最後には、私たちが自動推論の革命の入り口に立っているということが納得いただけると思います。
まずは基本から始めましょう。自動推論とは何か。でもその前に、この動画のパートナーであるAWSに特別な感謝を申し上げたいと思います。なぜAWSがこの動画でパートナーを組みたいと考えたのか、このトピックについて説明を進めていけば明らかになってくると思います。
自動推論とは、数学的論理を使って文の妥当性を証明する科学です。難しく聞こえるかもしれませんが、実はそれほど複雑ではありません。最も基本的なレベルでこう考えてみてください。雨が降ると地面が濡れます。地面が濡れるとタイヤの接地力が低下します。したがって、雨が降るとタイヤの接地力が低下するのです。これは推移律と呼ばれ、この例は非常に単純で理解しやすいものですが、実は数学を使って証明することができます。
自動推論は完璧でなければなりません。数学で証明する必要があるため、絶対的な精度が求められ、曖昧さは許されません。これは非常に単純な例ですが、信じられないほど複雑なルールセットを想像してみてください。
いくつか例を挙げてみましょう。航空会社の返金ポリシーを考えてみてください。これは単純な方針ではありません。非常に複雑なポリシーで、何ページにもわたるルールや状況、いつどれだけ返金するかなどが定められています。そして、返金を決定する論理にたった一つでも抜け穴があれば、誰かがそれを悪用し、航空会社にとって破滅的な結果となりかねません。
そのようなルールセットをコードに変換することを想像してみてください。これは信じられないほど困難な作業です。もう一つ例を挙げましょう。AWSにはIAMというシステムがあります。これは権限付与システムで、誰がどのアクセス権を持つべきか、どのレベルのアクセス権を持つべきかを決定するシステムです。
彼らには数十の異なるサービスがあり、本質的に無限の種類の権限があります。このような状況で、誤った権限セットを与えてしまうコストは、やはり破滅的なものとなります。
Amazonに話を聞いたところ、IAM推論システムの構築、つまりポリシー解釈を実装するコードの正確性を証明するのに何年もかかったそうです。そしてそれには何百万ドルものコストがかかり、論理学者(魔術師ではなく論理学者です)のチームを雇う必要がありました。これらは論理科学を専門とする専門家で、多くのコンピューターサイエンティストやプログラマーと協力して、本質的に何年もかけて、付与する可能性のある様々な種類の権限をすべてマッピングし、それをすべてコード化したのです。
世界中でこれができる企業は何社あると思いますか?実は、航空会社のような大企業でさえ、自社でこれを行うことはせず、Amazonのような企業にこの問題の解決を依頼しているのです。
自動推論には、文の真偽を証明するための数学的言語と、それに対応するコーディング言語があります。そのコードのマッピングと記述は非常に困難です。
では最初の質問に戻りましょう。なぜ人工知能や大規模言語モデルを使ってそのコードを書くことができないのでしょうか?その理由は幻覚にあります。幻覚は大規模言語モデルのバグではなく特徴です。これこそが大規模言語モデルがそれらの機能を実現できる理由なのです。予測的で非決定論的なものですが、その非決定論をどのように取り入れ、100%の確信を持って正しいと分かる決定論的な方法で実装するにはどうすればよいのでしょうか?
もしこの問題を解決できれば、何年もかけて何百万ドルもの費用をかけて構築していたものを、たった一人で数時間で完成させることができるかもしれません。そして、AWSがそれを解決したのです。彼らはreinventカンファレンスで、Bedrockサービスの一部として自動推論を発表しました。
その仕組みについて説明しましょう。病院の患者の治療方針や、航空会社の返金ポリシー、あるいは今日お見せする休暇制度のポリシーなど、どのようなポリシーでも取り込むことができます。これは明らかに非常に単純な例ですが、実際にはどれほど複雑になり得るか想像してみてください。
例えば、休暇制度のポリシーがあるとします。これは会社のHR部門によって英語で書かれており、会社での勤続年数や役職、その他の特性に基づいて、何日または何週間の休暇を取得できるかなどが記載されています。
AWSが実現したのは、そのような自然言語の文書、つまりポリシー文書を読み込み、AIを使って論理的なルールを作成し、異なる変数を抽出し、それらをすべて論理言語に変換することです。これにより100%の確実性を持って証明することができます。
Amazon Bedrock guardrails automated reasoning checksは、論理的に正確で検証可能な推論を使用して、生成AIの応答が正しい理由を説明する、幻覚による事実誤認を防ぐ初めての、そして唯一の生成AI保護機能です。
この例を見てみましょう。先ほど言及した休暇制度のポリシーがあります。たった2ページしかありませんが、多くの情報が含まれています。休暇制度の対象となるには、シニアレベル以上で10年以上の在籍期間があるか、副社長以上である必要があります。また、連続する12ヶ月の期間中に12週間を超えてはならないなど、多くのルールがあり、数学的に矛盾がないことを証明する必要のある、潜在的に矛盾する可能性のあるルールが多数存在します。
このドキュメントをAmazonの自動推論システムにアップロードしてみましょう。ここで一旦止まって見てみると、上部にポリシーの詳細、中間部分にアップロードされたドキュメント、そして任意で自動推論で達成したい意図が表示されています。最終的な目標は、従業員の休暇制度に関する質問に自動で応答できるようにすることです。
もはや従業員自身がポリシーを読んだり、直接HRに問い合わせたりする必要はありません。AIに質問するだけでよいのです。AIは100%の確実性で回答することはできないかもしれませんが、Amazonは現在のRAGシステムが提供するものよりも、はるかに完璧に近い、100%の確実性に可能な限り近づくためのツールを持っています。
これらをすべてアップロードした後、ポリシーの作成をクリックすると、ここで魔法が起こります。そのドキュメントの自然言語をすべて解釈し、そのポリシーに対して論理を使って証明できるルールのセットを作成します。
ここで見えるのは、その自然言語文書から抽出された実際のポリシーのルールです。それだけでなく、AIがそのドキュメントから見つけたすべての変数も表示されます。上部を見てみましょう。
従業員が有給休暇中の場合、復帰時に給与が変更される。従業員が有給休暇中の場合、サインオンボーナスは停止される、などなど。これらのルールはすべてそのドキュメントから抽出されています。そして下部では、すべての用語または変数を抽出し、それらにタイプと説明を与えています。これは非常に驚くべきことです。
しかし、それだけでは十分ではありません。実際にテストできる必要があります。人間としてこれらのシステムに確信を持つ必要があります。そこで、質問をして、それが真か偽かを検証することができます。例を見てみましょう。
「私は臨時契約社員ですが、LOAPの対象となりますか?」という質問をします。そして、「はい、臨時従業員はLOPを使用できます」という回答をテストします。実は、これは正しくありません。そして下部には、なぜそれが正しくないのかの証明が示されています。
関連する抽出された変数は、正社員であるか、レベル、LOAP状態、そしてドキュメントからの実際のルールです。「従業員は、フルタイムで週20時間以上働いている場合にのみ、有給休暇の対象となる」などとあります。そして、なぜその声明が正しくないのかを明示的に示しています。
この回答が無効である理由の一つとして気付くのは、従業員レベルについて仮定を立てていることです。しかし、仮定を立てる必要は実際にはありません。ここでは、臨時従業員はシニア未満の従業員レベルであると仮定していますが、それは必ずしも真実ではありません。
実際、自然言語を使用して、これらの質問にどのように答えるかをより適切に知らせることができます。お見せしましょう。定義に戻って、従業員レベル変数を探し、編集します。そして「質問で明示的にレベルが言及されることを期待し、仮定を立てないでください」と指定します。
変更を保存すると、新しく更新されたポリシーができました。これをテストできます。二つの異なるバージョンがあります。テストプレイグラウンドに戻って、同様の質問をしてみましょう。「私はパートタイム契約社員ですが、LOAPの対象となりますか?」
答えはやはり偽です。しかし今回は、フルタイムでないことが偽である理由も説明しています。そして、フルタイム従業員の場合の真のケースをお見せしましょう。「私は従業員ですが、対象となりますか?」はい、許可されています。答えは有効です。
これらはすべて設定可能で、最も良い点は、すべて自然言語で行われることです。もはやエンジニアチームや論理学者チームを雇う必要はありません。自分で書くだけで、AIの力とAWSのバックグラウンドで行われる秘密のソースによって、すべての難しい作業を行ってくれます。
自動推論は彼らのガードレール機能の一部となっており、ガードレールはLLMの整合性を図るために使用されます。基本的に、可能な限りジェイルブレイクを防止し、特定の応答を与えないようにするなど、その他の整合性測定を行います。
これで実際に、大規模言語モデルの真実性を確保することができます。これは本質的に、望ましくない幻覚を特定し、排除することです。非常に驚くべきことです。
この問題は文脈的根拠付けでも解決されていますが、文脈的根拠付けは成功しているものの、説明可能ではありません。RAGと同様に、文脈的根拠付けは悪いものではありません。それを使用する文脈と要件によって本当に異なります。
以前の実装では、例えばそのポリシー文書のようなソース資料があり、それを大規模言語モデルにロードして、それについての質問をするという方法でした。しかし、ここで重要なのは、依然として幻覚の影響を受けやすいということです。数学的に何かが真か偽かを証明するものは何もありません。だからこそ、これらの重要なユースケースでは自動推論が非常に重要なのです。
これがAWSがreinventカンファレンスで発表したばかりのもの、Amazon Bedrock guardrailsの自動推論チェックです。これは彼らのガードレイル製品に導入される6番目のタイプのセーフガードであり、私の考えでは恐らく最も重要なものです。
より詳しい情報については、AWSニュースブログをチェックしてください。リンクは説明欄に記載します。このトピックが絶対的に魅力的だと感じたので、この動画で協力してくれたAWSに感謝したいと思います。
この動画を楽しんでいただけたなら、いいねとチャンネル登録をご検討ください。また次回お会いしましょう。

コメント

タイトルとURLをコピーしました