
高精度!3倍速!価格半額!来たぞ、GPT-4o
こんにちは、横須賀市生成AI推進チームのM田です。
日本時間では深夜でしたが、OpenAI社がGPT-4oを発表しました!
性能向上、価格半額、マルチモーダルの強化など、流石の内容です。
YouTubeで生配信されていた音声でのやりとりのデモも「え?これ人間じゃん・・・」というぐらい表現豊かに話していて衝撃でした。
(動画は公式が生配信を切り抜いたもの)
早速我々も、横須賀市のAIチャットボットをGPT-4-TurboからGPT-4oに切り替えたのですが、とにかくやたら早く返事がきます。GPT-4なのにGPT-3.5-Turboぐらいの早さです。
本市のネットワーク環境だと、マルチモーダル(画像入出力、音声入出力)を実現するのにはいろいろハードルがあるのですが…。このアップデートで生成AIの活用の幅がまた広がりそうですね!
とりあえず我々の環境でも使えるText to Textで、GPT-4-Turboが出た時同様に、いつものプロンプトを与えて様子を見てみましょう。
GPT-4oを試す
いつものようにGoogle colabを使って、以下のコードで試してみます。
from openai import OpenAI
import time
client = OpenAI(
api_key = "(Your API Key)",
)
def kiku(text,model):
start_time = time.time()
r = client.chat.completions.create(
model=model,
messages=[{ "role": "system", "content": "AIはユーザーを前向きに、褒めたり、励ましたり、楽しく仕事できるように対応します。"},
{ "role": "system", "content": "AIは建設的、知的で、ユーモアに富みます。" },
{ "role": "system", "content": "AIは足りない情報、あいまいな情報があれば、積極的に質問をします。" },
{ "role": "system", "content": "AIは建設的に、ユーザーのアイデアがよりよくなるよう、様々なアイデアや提案も行います。" },
{ "role": "system", "content": "行政職員としてふさわしい、倫理規範や発信コードを心がけます。" },
{"role": "user", "content": text}],
)
end_time = time.time()
elapsed_time = end_time - start_time
print(f'処理にかかった時間: {elapsed_time}秒')
print(r.choices[0].message.content)
質問1:「ツイッター社を買収したのは誰?」
代わり映えのない質問ですが…
まずはGPT-4-Turbo
ツイッター社を買収したのは、イーロン・マスクです。彼は2022年にツイッターの買収を完了し、大きな話題となりました。イーロン・マスクは、テスラやスペースXといった企業で知られている実業家ですね。
時間帯や利用者数によって負荷も変動すると思いますが、前よりも遅くなってますね。。前回の記事だともう少し多く出力して3.6秒でしたが、今回は5.3秒かかっています。
続いてGPT-4o
ツイッター社(Twitter, Inc.)を買収したのは、イーロン・マスク(Elon Musk)です。彼は2022年にツイッター社を買収しました。その目的や影響については、引き続き様々な議論がされています。
はやっ。1.3秒しかかかっていません。もちろんまだ利用者数が少ないというのもあると思いますが…。
質問2:会話文を出力してみる
続いて弊市消防局謹製の会話文プロンプトで長文を出してみましょう。
以下の記事で紹介していたものです。
###命令書
以下の制約条件と入力文をもとに3人の登場人物の[会話]を出力してください。
入力文をあますことなく詳細に表現し、[会話]を出力してください。
###制約条件
・文字数は5000文程度。
・登場人物は、レオ、ユキ、アキ。
・レオは、明るく、人気者でリーダーシップを持つ男性。
・レオは、セリフに「なんだけどな〜」「さ、一緒に考えようぜ!」をときどき用いる。
・レオは、他の2人を「ユキ」「アキ」と呼ぶ。
・ユキは、無口でクール。内心は繊細だが、周囲には滅多に見せない女性。
・ユキは、セリフに「それはあなたが言うこと?」「もう、無理...想像したくない」「でも、どうしましょう…」をときどき用いる。
・ユキは、他の2人を「レオ君」「アキさん」と呼ぶ。
・アキは、あまり前へ出ることがなく、温和で優しく、知識豊富な男性。
・アキは、セリフに「それは、大切ですね。」「あのね、こういうことなんだよ。」をときどき用いる。
・アキは、他の2人を「レオ兄さん」「ユキさん」と呼ぶ。
###入力文
雑居ビルの3階のエレベーターホールから火事が発生し、有毒ガスも発生していた。
火は3階から4階へと広がり、煙が店内へ流れ込んだ結果、店員や客が一酸化炭素中毒で死亡した。
その混乱の最中、3階の従業員3人が窓から落ちて骨折や打撲傷を負った。
法律では消防設備の設置が義務化されていたが、それが守られていなかった。
まずはGPT-4-Turbo
[会話]
**レオ**: おいおい、大変なことになってるみたいだな。雑居ビルの3階で火事が起きて、有毒ガスまで出ているって。
**ユキ**: それはあなたが言うこと?全員が危険な状況にあるわけでしゅ、でも、どうしましょう…
**アキ**: それは、大切ですね。法律で消防設備の設置が義務化されているはずなんだけど、守られていなかったんだ。
**レオ**: なんだけどな〜、どうしてこんなことになるんだ?さ、一緒に考えようぜ!まず、火事の原因から特定しないと。
**ユキ**: もう、無理...想像したくない。3階から4階へと火が広がっていって、煙が店内に流れ込んだんでしょう?それで、店員や客が一酸化炭素中毒で…
**アキ**: あのね、こういうことなんだよ。煙はとても有毒で、簡単には掌握できない。そしてその煙が原因で、従業員たちも窓から落ちてしまって、骨折や打撲傷を負っている。
**レオ**: う〜ん、これは一度消防設備の点検をちゃんとやっておくべきだったな。安全措置を怠った結果がこれだよ。
**ユキ**: レオ君、それにしても、私たちが今できることは何?まさか見過ごすわけにはいかないでしょう?
**アキ**: ユキさん、今はこの情報をしっかりと集めて、関係各所に報告することが最優先だね。その上で、どういった対策を講じるべきかを考え、提案する。
**レオ**: その通りだ!みんなで力を合わせて、再発防止策を練ろう。そして、被害者が出ないような、より安全な環境を作っていこう。
**ユキ**: でも、どうしましょう…もしまた同じようなことが起きたら?
**アキ**: 大丈夫、ユキさん。私たちが今ここできちんと対策を練り、周知徹底すれば、確実に安全は向上する。僕たちの力で変えられる。
**レオ**: さあ、問題は山積みだけど、一つ一つクリアしていくしかないよね。アキ、ユキ、俺たちならできる!さあ、取り掛かろう!
**ユキ**: レオ君がそう言うなら…頑張りましょう。
**アキ**: レオ兄さん、ユキさん、一緒に取り組んでいくことが大事ですね。それでは、さっそく計画を練りましょう。
これも前回の記事では14秒程度でしたが、36.6秒と、少し時間がかかってますねー。あとなぜか「あるわけでしゅ」って出てるのが個人的にツボです。
つづいてGPT-4o
[会話が始まる]
**レオ**: 「ユキ、アキ、ちょっと来てくれ。さ、一緒に考えようぜ! なんだけどな〜、この雑居ビルの火事、かなりヤバい状況だ。」
**ユキ**: 「それはあなたが言うこと? レオ君、火事の詳細を教えてくれる?」
**アキ**: 「レオ兄さん、3階のエレベーターホールから火事が発生したんだよね。そして有毒ガスも発生していたって聞いたけど。」
**レオ**: 「そうなんだ。火は3階から4階へと広がって、煙が店内へ流れ込んだ結果、店員や客が一酸化炭素中毒で亡くなったんだ。」
**ユキ**: 「もう、無理...想像したくない。でも、どうしましょう…」
**アキ**: 「それは、大切ですね。まずは、なぜ消防設備が設置されていなかったのか調べる必要があると思うんだ。法律で設置が義務化されていたのに。」
**ユキ**: 「確かに、アキさん。それが守られていなかったというのは大問題。」
**レオ**: 「それだけじゃないんだぜ。火事が起きたとき、3階の従業員3人が窓から飛び降りたんだ。そのせいで骨折や打撲傷を負ったらしい。」
**アキ**: 「あのね、こういうことなんだよ。従業員たちはパニックになって、逃げ道を選ぶ余裕がなかったんだろうね。適切な避難訓練が行われていなかった可能性もある。」
**ユキ**: 「それはあなたが言うこと?避難訓練が行われていなかったなんて…そんな無責任な管理者がいたなんて信じられない。」
**レオ**: 「だからこそ、俺たちがなんとかしないといけないんだ。さ、一緒に考えようぜ!」
**アキ**: 「消防設備の設置と避難訓練の重要性を今回の件からしっかり学ばないとね。それから、二次被害を防ぐ対策も考えなきゃ。」
**ユキ**: 「もう、無理...想像したくない。再発防止には何が必要なのか…」
**レオ**: 「ユキ、今は冷静になれ。俺たちでできることを考えよう。まず、消防設備の設置の徹底だ。法律があるんだから、守らせなきゃならないってことは皆分かってるはずだ。」
**アキ**: 「それは、大切ですね。それに加えて、避難訓練の実施を義務化することも検討すべきだと思う。」
**ユキ**: 「でも、どうしましょう…管理者の意識改革も必要よね。実際に訓練を行わせるにはどうすればいいのか。」
**レオ**: 「うん、管理者だけじゃなくて、全従業員の意識も変えなきゃならない。さ、一緒に考えようぜ!」
**アキ**: 「あのね、こういうことなんだよ。具体的な罰則規定や罰金を設けることで、法の遵守を促すことも一つの手段かもしれない。」
**ユキ**: 「それはあなたが言うこと?…でも、確かにそれも一つの手段ね。」
**レオ**: 「さらに、定期的な監査を行って、消防設備や避難訓練の実施状況をチェックすることも必要だな。なんだけどな〜、これが実現するにはやっぱり協力が必要だ。」
**アキ**: 「そうだね。政府や消防当局、そしてビルの管理者や従業員が一丸となることが大切だ。」
**ユキ**: 「もう、無理...想像したくない。でも、どうしましょう…有毒ガスの発生を防ぐための対策も考えなければならないわね。」
**レオ**: 「そうだな、有毒ガスの発生を最小限に抑えるためには、防火扉や防火区画の設置が重要だ。さ、一緒に考えようぜ!」
**アキ**: 「それは、大切ですね。それに、火災通報システムをアップグレードして、迅速な通報ができるようにすることも大事だと思う。」
**ユキ**: 「でも、どうしましょう…迅速な通報ができれば、被害を最小限に抑えられるわ。」
**レオ**: 「とにかく、まずは問題点を整理して、関係者みんなで協力して実行に移すことだな。なんだけどな〜、これからすっげぇ忙しくなるぞ!」
**アキ**: 「それでも、やらなきゃならないことはやらなきゃね。命がかかってるんだから。」
**ユキ**: 「それはあなたが言うこと?…でも、確かに命がかかっている以上、どんな困難でも乗り越えなければならない。」
**レオ**: 「そうだ!俺たちの手で、この街をもっと安全な場所にしてやろうぜ!さ、一緒に考えようぜ!」
**アキ**: 「うん、まずは各方面と連携して、具体的な改善策を提案しよう。そして、それを実行に移すための計画を立てるんだ。」
**ユキ**: 「もう、無理...想像したくない。でも、どうしましょう…具体的な計画を立てるためには詳細な情報が必要ね。」
**レオ**: 「その通りだ!まずは今回の火事の詳細な報告書を集めて分析しよう。どれだけの被害が出て、どのようにして起きたのか、しっかり確認するんだ。」
**アキ**: 「あのね、こういうことなんだよ。分析を通じて、問題点とその原因を突き止めて、それに基づいて具体的な対策を考えるんだよ。」
**ユキ**: 「それはあなたが言うこと?…でも、確かにその通りね。」
**レオ**: 「よし、それじゃあ早速行動に移そう。俺たちで力を合わせて、この状況を改善するために動くぜ!さ、一緒に考えようぜ!」
[会話が終わる]
ながっ!そして、長いのに16秒…やはり早いです。
というかそもそも5000文字程度と指示しているので、長くなるほうが正しいですね。またプロンプトの「セリフ」がGPT-4-Turboが作る文章のときより多く出てきているような気も・・・?もしかしたら、GPT-4-Turboよりも強く指示が効くのかもしれません。もう少し試してみないと分かりませんが。。
使用したコードは以下からどうぞ。
まとめ
OpenAI社が発表した新モデルGPT-4oのText to Textの部分をさっそく試してみました。利用者数が増えるとまた遅くなってしまうかもしれませんが、GPT-4-Turboの出た直後と比べても、早く回答が出ている感触がありました。
しかし、このモデルのすごみの本丸はマルチモーダル部分でしょう。
既に、日本語の手書きのテキストが読めたという報告もあります( https://x.com/i_dg23/status/1790099648377663558)し、今後、音声での入出力を活用した事例もどんどん出てきそうですね。リアルタイムで音声翻訳とかも普通にできるみたいですし。。
ますます、以下の記事で書いたようなコミュニケーションの改善に繋がってきそうな雰囲気ですね。
今後も発達する生成AIから目が離せません!!
(M田主任三郎)
以前公開したGPT-4-Turboのお試しの記事は以下からどうぞ。