OpenAIの「Q&A」に2003年セ・リーグの優勝チームを聞いてみた – 日本一詳しいOpenAI入門

Microsoft Ignite 2021の基調講演で発表された「Azure OpenAI Service」、公式ページにある通りOpenAI OpenAI APIを発行してもらったので、Expamplesにある49個のアプリから「Q&A」をPythonから実行して試行錯誤します。 

 

OpenAIのExpamplesにあるQ&Aとは 

公式の説明では「Answer questions based on existing knowledge.」とあり、“既存の知識に基づいて質問に答える”となっております。 

 

公式のタグでは「Answers」、「Generation」、「Conversation」の3つが付与されています。 

プログラムを見るとエンジンは「Davinci」を使っています。

 

 

サンプルコードでは1行目に「I am a highly intelligent question answering bot. If you ask me a question that is rooted in truth, I will give you the answer. If you ask me a question that is nonsense, trickery, or has no clear answer, I will respond with “Unknown”.」とあり、知的で質問に答えるBotで、トリッキーな質問や明確な答えがない質問には「Unknown」と答えると決めることで答えられない質問への回答が定義されています。 

 

2015年にイーロン・マスクをはじめとするメンバーが設立したOpenAIに、日本の野球といった狭い分野の質問にも正確に答えることが出来るか試してみました。 

ちなみに、2003年のセ・リーグ優勝チームは阪神タイガースです。星野監督のラブコールにより金本が追加され得点力があがり、井川・藪・下柳といった先発陣、後に阪神のJFKと言われるリリーフの中心となるウィリアムス(J)・久保田(K)といった抑えの活躍により18年ぶりにリーグ優勝しました。 

 

 

早速使ってみた 

公式にあるコードを参考に、好きな文章を入れられるように str という変数に会話を入れて実行できるようにします。 

 

 

 

 

質問に回答してくれる 

実行すると「Where is the Valley of Kings?(王家の谷はどこですか?)」に対して「The Valley of Kings is in Luxor, Egypt.(王家の谷は、エジプトのルクソールにあります。)」と適切な回答をしてくれます。 

 

時間で変化する内容にも回答してくれる 

What’s the weather like in Tokyo tomorrow?(明日の東京の天気は?)」に対して「Tomorrow in Tokyo, the weather will be partly cloudy with a high of .(明日の東京の天気は、一部曇り、最高気温は)」のように返ってきました。正解・不正解が判断しづらいですが、新しい情報も常に取得しているように見えます。 

 

日本語にも答えてくれる 

質問する文章を日本語にしてもきっちり回答してくれます。 

「円周率の小数点以下10桁まで教えて?」と投げると「3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679」のように返ってきました。日本語で質問しても答えてくれるようです。 

ただし、質問によっては英語と日本語で答えが異なりました。 

英語だと「Which team won the Central League championship in 2003?2003年にセ・リーグ優勝を果たしたチームは?)」に対して「The Hanshin Tigers won the Central League championship in 2003.」と正しく阪神タイガースと返ってきます。

しかし日本語では、「2003年にセ・リーグ優勝を果たしたチームは?」に対して「2003年にセ・リーグ優勝を果たしたチームは、日本ハムファイターズです。」とパ・リーグでも優勝していない日ハムと返ってきました。 

 

万能ではない 

Q&Aに関してはブラックボックスに感じる部分が多いように見えます。英語・日本語で回答が変わるケースや、誤った回答が返ってくるケースも複数見られました。OpenAI側の問題だけでなく、質問する文章によっても誤差が発生しやすいようです。 

 

どんなときに使えるのか? 

質問の回答を調べるだけであればGoogleのような検索サイトでも可能ですが、1行で回答し、シンプルな回答を得られることが特徴となっております。Teams等とつなげることで、まずは質問をQ&Aに投げることで回答を得て、正しい回答が得られないときに社内の人に質問を投げる事ができます。 

本検証では行っておりませんが、他のExamplesにあるように前半のQ&Aの例文部分で学習させることで、社内のノウハウに沿った回答をするQ&Aとしての活用、また、Azureのサービス全般に対するQ&Aといったことも可能になると思われます。