2024.12.19
システムの穴を運用でカバーしようとしてミス多発… バグが大量発生、決算が合わない状態から業務効率化を実現するまで
リンクをコピー
記事をブックマーク
蒲生弘郷氏(以下、蒲生):時間的にはあと5分しかないんですが、すみません、延びるのを前提でやらせてもらいます。
外部情報を取得して文脈として与える考え方に「Grounding」というものがあります。いきなり出てきて何なのかという話になってくるんですが、いわゆるBing Chatに近いものです。
Bingは基本的にサーチをかけていって、そのサーチした結果をGPTに返してくるんですが、次のステップに進む前にこの動きを(まず)理解してもらおうかなと思います。
これって実際にはGPTが勝手に解釈して勝手につなぎにいっているわけではなくて、例えば「2023年のWBC優勝国はどこ?」と聞かれた場合には、バックエンドプログラムが処理を1回受け取っています。バックエンドプログラムの処理を受け取って、チャット内容をGPTに1回渡して、「クエリ化をしなさい」という指示を出します。
これをクエリ化して、「WBC、2023年、どこ?」とそのまま打ってもいけないので、「WBC 2023 優勝国」みたいなかたちにクエリに直してあげて、その検索結果を返させて、バックエンドプログラムで再び質問する。
「ユーザーが書いている質問と、(その)検索結果はこういうものが得られています」というところを加味した上で回答させるといった動きをしているんですね。
こういう外部ツールに接続をさせていくような考え方をGroundingと呼んでいるんですが、Groundingという言葉はけっこう曖昧性が残っています。あくまでこの発表内ではGroundingという言い方をしていますが。これを使った新しいプロンプティングが出てきています。
それが「ReAct」という考え方です。ReAct自体は名前がけっこうひとり歩きしていて広義な意味で扱われるケースも多いんですが、厳密に言うと「必要なGroundingをGPTに考えさせて、動的にタスク実行するようなプロンプティング」です。
具体的にどうなるのか、まずイメージからつかんでもらいます。「今から野球を始めるんだけど、おすすめの野球用具一式を教えて」と聞くと、先ほどGroundingが走っていったようなかたちでバックエンドプログラムが受け取りつつ、まずはWeb検索を走らせます。クエリ化をして、「初心者 野球用具 一覧」(の結果)を持ってきます。
この初心者の野球用具リスト。例えばバットとボールとかですね。この返ってきたリストに基づいて、今度はGPTが考えて次に何をするのかを決めて、商品DBや検索エンジンに初心者向けの情報を取りにいきます。ここは社内DBとかの位置付けですね。社内で持っている商品データベースみたいな位置付けだと思います。
単純に聞かれたものを検索して答えるんじゃなくて、「商品情報を受け取った上で、回答させるクエリに応じて、何をすべきなのかを判断して、GPTが回答を変えた」という振る舞いができるようなプロンプティングがあるんですが、それがReActというものです。
例えば「これを3つずつ買うと、いくらぐらいになります?」と聞かれた場合には、検索とか商品DBとかを見るんじゃなくて、計算機を呼び出してあげて、合計金額を返させた上で「53,000円です」と回答できます。
さっきPhase 3で紹介しましたが、動的にGPTが振る舞えるようになるというのは、こういったかたちが将来像として見えてきているということになります。
(スライドを示して)具体的にこれは何が動いているのかというと、発表向けに抽象化してけっこう省略はしているんですが、裏ではこんな感じに動かしているという例を出しました。
「あなたはスポーツ用品メーカーの購入アシスタントです」と役割を普通に渡してあげて、使えるツールは「Search」と「Lookup」と「Calculate」と、「こういうことができるツールですよ」とGPTにあらかじめ教えておきます。
「回答形式としてあなたがやることは、目的を達成するために必要なことを考えて記載しなさい。そして、必要なActionとActionのために必要なinputを入れた上で、もしActionの内容がなくなれば結論を書いてください」という渡し方をしてあげる。
例えばユーザーからの「Question」。ここはあえて回答をしっかりさせるために、Questionを「野球を始めようと思っています。グローブが欲しいのですが、どんなものを買ったらいいのでしょうか。最も安価なものだとうれしいです」と書きました。
とりあえずこの「Question」に対して、チャットボットはまず考えます。「野球のグローブの種類や価格帯を調べる必要があるな」「『Action』は『Search』が必要だ。そして『Action input』はこれでやろう」というかたちでチャットボットが決めてくれます。
決めた内容をバックエンドプログラムが受け取って、「Action」と「Action input」の内容を受け取り、「あっ、GPTはこう言っているから、私はその言うとおりに『Search』を動かします」というかたちで、Web検索に「野球用グローブ 種類 価格 初心者向け」といった検索を走らせて、Web検索結果を得る。
Web検索結果を得たら今度はその内容を「Observation」というところに、「初心者であっても、グローブは1万円以上のものを選んだほうがいいでしょう。本革のグローブを使うべきです」といったかたちで、今までの「Question」とか「Thought」とかも全部含めた上で、もう1回GPTに投げるという動きをします。
これらを含めてあげると、GPTは今までの思考過程と検索の結果、得られた内容を考えた上で、「じゃあ次にしていくものは何だろうな? Thought、本革のグローブで1万円前後の商品情報を取得する必要があるな」というかたちから、「Lookup」というアクションが必要だと考える。
「Lookupに必要なインプットはこれだな」というかたちで出してあげて、また商品DBの検索にかかって結果を返してということを繰り返し繰り返しやっていく。以降、結論が出るまでやり続けるんですが、このReActのプロンプトの流れは、設計しようとすると非常に大変です。
ここ(スライドの内容)もだいぶはしょっている部分はあります。実際には「Action」の入れ方みたいなところも指示をしているし、例示にもいわゆるFew-shotも入れていたりします。
こういうReActをやって、最終的には動的なタスク認識も含めてできるようなかたちになるんですが、今のを全部組んでいると大変だということで、そこのバックエンドの処理をある程度自動化してくれるというか、よろしくやってくれるツールとしていくつかライブラリが出てきています。
1つはけっこう有名ですが、「LangChain」と呼ばれるライブラリです。LangChainのライブラリはReActみたいに動的な実行だけじゃなくて、例えばプロンプトのテンプレート機能であったり、プロンプトを覚えていくメモリ機能みたいなところも含めて全般的に提供してくれる、非常に便利なツールになっています。
このLangChainを使ってあげると、ReActを自動化する「Agent」と呼ばれる機能みたいなところに、さまざまな先端機能が実装されるかたちになります。
それからあとは、「Semantic Kernel」。これはマイクロソフトがOSSとして最近発表したものです。やれることはLangChainと似たようなかたちにはなってくるんですが、Planner機能でAgent機能と同じようなパイプライン生成も可能になっています。
「ReActのような」と書いたのは、中身の生成ロジックとかがちょっと違うかなと私は思っているからです。いずれにしても、AIが何をすべきなのかを自分で考えてアクションを決めてくれるといったところがやり取りの中でできるようなライブラリになっています。同じくメモリーとか、プロンプトのテンプレートみたいな機能も提供されています。言語系のツールはこれからどんどん出てくるかなとは思うんですけれども、やはりいずれも開発速度が非常に速いです。
次々に論文が出てきてそれを次々に実装しているようなかたちになるので、確かに未来感がるし「すげぇ!」と思うんですが、やはり適切なバージョン管理をしておかないと、もう次のバージョンでは使えなくなっている機能がある。
あるいは、本番利用をしていく上では、本当に自分のさせたい振る舞いができているのかどうかを、やはり検証していく必要が出てくるので、注意しながら使っていくことが必要かなと思います。
こういったGPTを何回も呼び出していってパイプラインを組んでいくことは、今後けっこう重要になってきています。
ちょうど、ReActの中でもちゃんと順を追って考えていかないと何をしているのか中身がぜんぜんわからない。「GPTを何回呼んでんねん」みたいな話が出てきたと思いますが、「どこにどういう指示を与えた上で、与えるべきプロンプトは設定時点で(何が必要か」という)想定が必要になってきます。
(スライドを示して)先日、BabyAGIさんと呼んだほうがいいのか、アレかもしれないですが……。Twitter上で公開をされていたものになります。GPT-4を呼び出していくような流れとかパイプラインは非常によく設計されています。
例として非常に参考になる情報になっているので、これから新しいサービスを作っていきたい場合には、GPTのパイプラインをどう組んでいくのがいいのか、実際にはどう組まれているのかみたいなところをちょっと意識しながら考えてみるといいかなと思います。
ここまで長くしゃべってきましたが、Fine tuningとPrompt Engineeringの位置付けがだんだん見えてきたのかなと思います。Fine tuningというのは、何度か言っているように主観がだいぶ含まれる部分もあるんですが、あくまで内部の長期記憶や基礎の言語能力のようなものを獲得するようなイメージになります。
プロンプトを与えてあげることによって、いわゆる情報参照的、教科書持ち込みの試験的みたいなかたちで、細かい内容にもある程度対応できるようになってくるかたちになっています。学習側の工夫がすべてだった今までのML開発とは違って、プロンプト側の工夫がだいぶ重要になってきているというところがハイライトです。
Fine tuningもまだまだリソースが確保されていないし、1回やろうと思うと数百のデータとかを使っていかなければならないので、そのコストも必要になってくるという話になってきます。
まずはプロンプトでどうにかできないのかを考えていきながら、「まったく新しいタスクとか、タスクそのものの精度を絶対に向上させていかなければならない」みたいな話になってきたら、Fine tuningを含めた改良を検討していくようなかたちになります。それぞれの特徴みたいなものを捉えて、全体的にAIの学習を考えていければいいのかなと思います。
(次回に続く)
関連タグ:
「Azure OpenAI Service」の一般提供から始まった“ビジーな”進化 マイクロソフト製品におけるGPT機能組み込みの流れ
「GPTが動的な“タスク計画と実行”をする方向に進歩していく」 日本マイクロソフトの蒲生氏が語る、GPTで描かれる未来
「OpenAI APIの安定稼働版のようなイメージを持ってもらえればいい」 Azure OpenAI Serviceの特徴と、プレイグラウンドのデモ
例示で精度を高める「Few-shot Learning」、思考の連鎖「Chain of Thought」… 新しいパラダイム「プロンプトエンジニアリング」に対するアイデア
GPTが単純に回答するだけでなく、動的に振る舞えるようになる Groundingを使ったプロンプティング「ReAct」の流れ
日本マイクロソフトの社員が教える、GPT×ReAct活用のコツ トークン制限がある場合は分割格納、自然言語の履歴管理にはNoSQLデータベースを
AzureでGPT活用するためのシステムの参考アーキテクチャ “金太郎飴的に複製できる”管理構成のすすめ
Azure OpenAI ServiceやGPTなどに関するQ&A 「マイクロソフトから“監視していない証明”は出してもらえる?」「プロンプトエンジニアリングは重要視されるスキルとなる?」
2024.12.20
日本の約10倍がん患者が殺到し、病院はキャパオーバー ジャパンハートが描く医療の未来と、カンボジアに新病院を作る理由
2024.12.19
12万通りの「資格の組み合わせ」の中で厳選された60の項目 532の資格を持つ林雄次氏の新刊『資格のかけ算』の見所
2024.12.16
32歳で成績最下位から1年でトップ営業になれた理由 売るテクニックよりも大事な「あり方」
2023.03.21
民間宇宙開発で高まる「飛行機とロケットの衝突」の危機...どうやって回避する?
PR | 2024.12.20
モンスター化したExcelが、ある日突然崩壊 昭和のガス工事会社を生まれ変わらせた、起死回生のノーコード活用術
2024.12.12
会議で発言しやすくなる「心理的安全性」を高めるには ファシリテーションがうまい人の3つの条件
2024.12.18
「社長以外みんな儲かる給与設計」にした理由 経営者たちが語る、優秀な人材集め・会社を発展させるためのヒント
2024.12.17
面接で「後輩を指導できなさそう」と思われる人の伝え方 歳を重ねるほど重視される経験の「ノウハウ化」
2024.12.13
ファシリテーターは「しゃべらないほうがいい」理由 入山章栄氏が語る、心理的安全性の高い場を作るポイント
2024.12.10
メールのラリー回数でわかる「評価されない人」の特徴 職場での評価を下げる行動5選
Climbers Startup JAPAN EXPO 2024 - 秋 -
2024.11.20 - 2024.11.21
『主体的なキャリア形成』を考える~資格のかけ算について〜
2024.12.07 - 2024.12.07
Startup CTO of the year 2024
2024.11.19 - 2024.11.19
社員の力を引き出す経営戦略〜ひとり一人が自ら成長する組織づくり〜
2024.11.20 - 2024.11.20
「確率思考」で未来を見通す 事業を成功に導く意思決定 ~エビデンス・ベースド・マーケティング思考の調査分析で事業に有効な予測手法とは~
2024.11.05 - 2024.11.05