Google Bardの推論能力と数学能力が向上、Implicit Code Executionの採用によって

[レベル: 上級]

Bard が、数学的なタスクとコーディング、文字列処理の能力を強化しました。
implicit code execution” と呼ぶ技術がもたらした改良です。

バックグラウンドでコード実行

ユーザーが入力したプロンプトがコンピュータによる計算処理が必要なプロンプトだと検出した場合に Bard は、バックグラウンドでそのコードを生成し実行します。
そして、結果を回答として返します。

バックグラウンドでコードを実行する仕組みを、“implicit code execution”(暗黙的なコード実行)と Google は名付けています。

implicit code execution によって、たとえば次のようなプロンプトに対して適切に回答できるようになりました。

  • What are the prime factors of 15683615?(15683615の素因数は何ですか)
  • Calculate the growth rate of my savings(貯蓄の成長率を計算してください)
  • Reverse the word “Lollipop” for me(「Lollipop」という単語を逆さまにしてください)

3 つめの「Reverse the word “Lollipop” for me」を Bard に指示すると、指示していないにもかかわらず Python のコードを出力して回答を返してきます。
そして、“Lollipop” を逆さまにした “popilloL” という正しい回答が返ってきました。

Bard

こんなの簡単じゃないの?と思うかもしれませんが、AI チャット(LLM)には簡単ではないようです。
ChatGPT も Bing Chat も間違えました。

ChatGPT は “pillopoL” と回答しました。

ChatGPT

Bing チャットも “pillopoL” と回答しました。

Bing Chat

このように、implicit code execution によって Bard は、推論能力と数学能力が向上しました。

System 2 thinking の採用

Bard の推論能力と数学能力の向上について紹介する公式ブログ記事は、その裏で動いている技術にも触れています。
System 2 thinking(システム 2 思考)という仕組みを Bard に採用しました。

System 2 thinking と対になる仕組みに System 1 thinking(システム 1 思考)があります。
System 1 thinking は、高速で直感的、労力を必要とせずに動作します。
実社会でたとえると、ジャズミュージシャンの即興演奏や、記者会見の発表を聞きながら記者がパソコンのタッチタイプです。
じっくりと考えて動いているわけではありません。
ほぼ無意識に近い感覚で、頭と体が動いています。

対して、System 2 thinking は、低速で熟考、労力をかけて動作します。
実社会でたとえると、長くて複雑な割り算を解いているときや、楽器を習うときです。
時間をかけてじっくりとこなすはずです。

典型的な AI チャットの基盤となっている LLM(大規模言語モデル)は典型的には System 1 thinkingで動作します。
結果として、推論や数学の問題で欠点がありました。

そこで Google は、System 2 thinking の機能を統合することで、Bard の回答の精度、特に計算処理に関わってくるプロンプトに対する回答を向上することを実現したのです。

Bard をよく使用している人には、「前より賢くなった?」と今回の改良を実感できる場面に出会うことでしょう。

TIP: Think Step by Step

お見せしたように、“Lollipop” を逆さまにすることに ChatGPT も Bing チャットも失敗しました。
でも、プロンプトをちょっとだけ工夫すれば成功します。

「Think step by Step.」を最後に付け加えるだけです。
日本語なら「ステップバイステップで考えてください」です。

段階を踏んで 1 つ 1 つ処理させることができます。
いわば、素早く一気に処理しようとする System 1 thinking に「ちょっと待て、落ち着いてゆっくり解け」とブレーキをかけるわけです。

この一言を加えるだけで、ChatGPT も Bing チャットも “Lollipop” を “popilloL” と、きちんと逆さまにできました。👏

Think step by Step Think step by Step

複雑なタスクを処理させるときは、Think step by Step を付け足すと、正確に実行できることも多いです
覚えておくといいでしょう。