中華IT最新事情

中国を中心にしたアジアのテック最新事情

ChatGPTが働く仮想のゲーム開発企業「ChatDev」。ハルシネーション(幻覚)問題をクリアした仕組み

清華大学の研究チームは、対話型AI「ChatGPT」を使って、ゲームを自動生成する仕組みを開発した。それは、複数のChatGPTに社長やエンジニアを演じさせ、バーチャルなゲーム開発会社を設立し、そこに発注をするという手法だったと量子位が報じた。

 

約7分でゲームを開発、コストは45円

このChatGPTによる仮想のゲーム開発会社「ChatDev」を開発したのは、清華大学、北京郵電大学、大連理工大学、米ブラウン大学などの研究者による共同チーム。「Communicative Agents for Software Development」(Chen Qian他、https://arxiv.org/abs/2307.07924)として発表されている。

このChatGPTが働く仮想のゲーム会社「ChatDev」にゲームを発注すると、約7分でゲームを開発し、さらにマニュアルなどもつくってくれる。使われているのはChatGPTのAPI(3.5-turbo)で、平均して48.5Kのトークンを消費する。つまり、平均の開発コストは0.2967ドル(約45円)になる。

▲ChatDevでは、複数のChatGPTエージェントが働いている。このエージェントが議論をすることで、仕様や作業を決定していく。

 

ChatGPTにCEOやプログラマーを演じさせる

この仮想のゲーム会社「ChatDev」は、ChatGPTによるチャットチェーンで構成されている。各ChatGPTによるボットは、CEO、CTO、プログラマー、デザイナー

などの役割を果たし、必要に応じて話し合いながら、ゲームの仕様を決めていき、コードやマニュアル、UIを生成してゲームを開発していく。

開発の仕方は、古典的なウォーターフォール方式で、設計→プログラミング→テスト→ドキュメント作成という4つのフェーズを経ていく。それぞれのフェーズで、各ボットがディスカッションをしながら開発をしていく。

▲ChatDevでは、設計・コーディング・テスト・ドキュメント作成という手順で開発が進んでいく。その過程で、必要なエージェントが議論をしながら作業を進めていく。

 

エージェントが議論をしながら仕様と作業を決定

例えば、次のような会話をしていく。

 

CEO:ユーザーの要求を満足させるために、具体的なプログラミング言語を提案してください。

CTO:PythonPygameライブラリが五目並べを開発するには最も適した選択だと思います。

CEO:素晴らしい!Pythonは多機能で広く使われているプログラミング言語です。五目並べを開発するのにも適しています。そのわかりやすさと読みやすさが、初心者や経験のある開発者にとっても一般的な選択肢になっています。

CTO:五目並べゲームをPythonとPygmameライブラリを使って開発することにしましょう!

 

CEO:ユーザーの要求を満足させるには、Pythonでプログラミングすべきですが、プロダクトをどのようなものにするか、私と議論しましょう。

CPO:この五目並べのゲームはデスクトップアプリとして設計することを提案します。コンピューター上で遊べる視覚的なゲームをつくることができるからです。ユーザーフレンドリーなインタフェースとインタラクティブなゲーム体験を提供することになるでしょう。さらに、デスクトップアプリとして開発することは、私たちのノウハウをプログラミングに活かすことができ、Pythonを使ってプロダクトを完成させることを保証してくれます。

CEO:あなたの提案に感謝をし、五目並べをデスクトップアプリとして開発する提案に同意をします。この手法は、私たちのノウハウと合致をし、私たちの顧客に視覚的なアピールとインタラクティブなゲームを開発することができます。オブジェクト指向プロブラミング言語を活用することで、プロダクトを実現可能で、長期のメンテナンスが可能になることが保証されます。五目並べをデスクトップアプリとして開発することにしましょう。

CPO:素晴らしい!五目並べをデスクトップアプリとして開発することを嬉しく思います。

 

CTO:Pythonを使って実装された複数のファイルからなる実行可能なソフトウェアをつくることで、私たちのタスクが完了することに決めました。複数のファイルを作成し、アーキテクチャのすべてがコードとして実装されていることを確認する必要があります。ソフトウェアにはGUIも必要であるため、適切なGUIフレームワークを選んでください。ひとつずつ考え、正しいことを行うために正しい決断をする必要があります。まずは、コアクラス、関数、メソッドの名前が必要であり、目的に応じて簡単なコメントも必要になります。

プログラマーGUIを使ってPython五目並べを設計にするには、次のようなコアクラス、関数、メソッドが必要になります。

・ボード:このクラスはゲームボードを表し、動きを配置してチェックするためのロジックを処理します。

・ゲーム:このクラスは、ゲームフローとユーザーインタラクションを管理します。

GUI: このクラスは、GUIフレームワーク(tkinterなど)を使用してグラフィカルユーザーインターフェイスを処理します。

では、各ファイルの実装を進めましょう。

▲エージェントたちは役割を持ち、議論をすることで仕様や作業を決定していく。

プログラマーやデザイナーは決定された仕様に従って、具体的なコードを生成していく。

 

議論をすることでハルシネーションを排除する

最初に、どのようなゲームを求めているのかを伝えるのは、人間がクライアントとして伝えなければならないが、それ以降はすべてボットが議論をしながら、仕様を決定し、開発を進めていく。

この仕組みで、最大の問題となるのはハルシネーションだ。ChatGPTに限らず、大規模言語モデル(LLM)は、確率に基づいて単語を並べて回答を生成することが基本になっているため、幻覚(ハルシネーション)を見ているかのような回答を出力することがある。そのため、単独のChatGPTボットに作業を依頼すると、でたらめに等しい結果しか得られないことがある。

このハルシネーションの問題を解決する手法が、複数のボットによる議論というプロセスを導入することだった。複数のボットが相手の話を確認しあい、議論をすることで、ハルシネーションが打ち消され、正しい解に収束をしていくことになる。ここがChatDevの大きなポイントになっている。

▲インタフェースも素朴なテキストベースのものから、議論を経て改良が進んでいく。

 

エージェントの動きを可視化するツールも

このChatDevはGitHubで公開されると、瞬く間に評判となり、さまざまな人がChatDevを使いゲームを開発し、公開をしている。

また、ChatDevでどのような議論が行われ、どのように作業が進んでいるのかを可視化するアプリも公開され、これを使うと、ChatDevの中で、ボットたちが働いている様子を観察することができる。

現在は、高度なゲーム開発をすることはもちろんできない。しかし、複数のChatGPTボットに議論をさせることでハルシネーションを打ち消して、一定の結果を出すという手法は、LLM活用の大きなブレイクスルーとなる。ChatDevはゲーム開発に特化したバーチャル会社だが、記事を制作する、広告映像を制作するなどさまざまなバーチャル会社をつくり、作業を自動化させることが可能になる道が開けてきている。

GitHubにはChatDevを利用して開発されたゲームが共有されている。https://github.com/OpenBMB/ChatDev