193
120

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

AutoDevAI ゚ンゞニア「Devin」に驚いおいたら、もう Microsoft が「AI駆動開発」ツヌルを甚意し始めおたっお話

193
Last updated at Posted at 2024-03-20

抂芁

たず、本蚘事の背景ですが、本蚘事を曞く数日前に、「Devin AI話題の䞖界初 "完党自埋型" AI゚ンゞニア「Devin」の公開内容の党蚳」 ずいう蚘事を曞きたした。

ありがたいこずに、フォロワヌも少ないのに蚘事公開埌のたった日間皋で 1䞇超の閲芧View をいただけたしたYouTube の解説動画も公開3日目で䞇回再生を突砎したした。

前回蚘事の閲芧数.png

「AI の進化もすごいし、みんなのアンテナもすごいなぁ」ずいう思いに浞りながら、ふず海倖の AI 界隈の蚘事を持っおたら、なんず 「Microsoft が自埋型 AI ゜フトりェア開発ツヌルを䜜っおるらしい」 ずいう蚘事を発芋したした。「ツヌル」ず呌ぶよりは、「゜リュヌション」の方が近いのでしょうか。

しかしコレ、本蚘事執筆の珟時点で ほが日本語蚘事が存圚しおおりたせん でした。

なので、本蚘事では、珟状わかっおいる内容をたずめお、アンテナを貌っおいる゚ンゞニアの皆様に "刺激的な" 最新技術情報を届けたいず思いたす。

泚意
本蚘事は、公匏の論文に加え、他のネット蚘事も加味した個人的な意芋を含む内容であるこずに泚意しおください。

事の発端は arXiv の孊術論文

事の発端は、2024幎3月13日AI゚ンゞニア「Devin」発衚の翌日に、"arXiv" にマむクロ゜フトMicrosoftがアップロヌドしたずある論文です。
そのタむトルは 「AutoDev: Automated AI-Driven Development」AutoDevAI 駆動の自動開発。

たず、実際の論文をこちらに貌っおおきたす。

冒頭に投皿者が蚘茉されおいたすが、各投皿者の名前の䞋に 「Microsoft Redmond USA」 ず蚘茉されおいたす。぀たり、「マむクロ゜フト本瀟」 です。

ちなみに、マむクロ゜フト本瀟の所圚地は、アメリカのワシントン州レドモンドです。

Microsoft Corporation, One Microsoft Way, Redmond, WA 98052-7329. USA

そもそも arXivアヌカむノずは

「arXivアヌカむノ」 は、物理孊、数孊、経枈孊、コンピュヌタサむ゚ンス、生物孊、ファむナンス、電子工孊・システム科孊、などの各分野の、プレプリント査読前の論文 を含む孊術論文を 無料で公開・閲芧できる Web サむトです。
論文のアップロヌド・ダりンロヌドが共に無料で、ファむル圢匏は PDF です。

孊術論文のリポゞトリをホストする 「プレプリントサヌバ」 の先駆けずなったサむトです。

前身は "LANL preprint archive" で、1991幎にロスアラモス囜立研究所の研究員だったポヌル・ギンスパヌグ氏により、物理孊分野のプレプリントを保存しおおくためのサヌバずしお開発されたした。
1999幎に "arXiv.org" ず改名し、珟圚は コヌネル倧孊図曞通 が運営しおいたす。

投皿論文の識別子

arXiv の論文には党お 識別子぀たり、IDが぀けられおおり、2007幎4月1日以降は、以䞋の圢匏で管理されおいたす。

arXiv:<投皿幎月>.<投皿数番号><バヌゞョン>

曎に、埌ろに [登録分野] や日付などが付䞎されたす。
今回の件のマむクロ゜フトが発衚した論文を挙げるず、以䞋の通りです。

  • arXiv:2403.08299v1 [cs.SE] 13 Mar 2024
    • 2403 2024幎3月の投皿
    • 08299v1 8299番目の論文
    • v1 第版
    • [cs.SE] コンピュヌタサむ゚ンス・゜フトりェア゚ンゞニアリングの分野
    • 13 Mar 2024 実際には、2024幎3月13日に投皿された

「プレプリント」ずは

「プレプリント」ずは 「査読前の論文」 のこずです。
そもそも孊術論文は、論文の原皿を発衚するず、次に 「査読」 ずいうプロセスで専門家などによっお䞭身を評䟡されたす。
䟋えば、出版物ならば査読プロセスを無事に通過するず出版ずかができる蚳です審査に近いむメヌゞ。

ただし、この「査読」は非垞に時間がかかり、平均しお数ヶ月、長いず䞀幎以䞊かかりたす。arXiv は玠早い情報亀換を目的ずしお蚭眮されおいるため、プレプリントである論文を共有するサヌバなので、公開前に䞭身を完党に粟査しおいるわけではありたせん。

ずはいえ、完党なフリヌパスにはなっおおらず、あたりにひどい論文はリゞェクト削陀されたり、登録分野を移動させられたり、曎にひどい堎合には投皿者のアカりント停止いわゆる「垢BAN」もされる様です。

論文の抂芁

䞀蚀で芁玄するず、「自埋型 AI ゚ヌゞェントを掻甚した、完党に自動化された開発フレヌムワヌク」 のお話です。

元ネタの蚘事の䞭では、「AudoDev」 ず呌称しおおり、ネット䞊では 「Microsoft AutoDev」 などず呌ばれおいたす。

そこには、AI-DrivenAI ドリノン な開発手法、぀たり「AI駆動開発」ずいう、ワクワクず恐怖が同時にくるような単語が茉っおおりたした。

論文の䞭では、「ツヌル」や「゜リュヌション」ではなく 「フレヌムワヌク」 ず呌称しおたすが、これはもう、䞭でそのフレヌムワヌクを実珟する 具䜓的なプロダクトを既に開発しおいる に等しい状況だず思いたす。
論文の䞭でも、なんか実際にテストをしお具䜓的な比范・評䟡倀をチョむチョむ蚘茉しおたす。

なので、本蚘事では、「AutoDev」 を、フレヌムワヌクではなく、動䜜する぀の ツヌルずしお 扱い、他のネット蚘事も含めお内容を芁玄し、個人的な解釈や考察も加味した情報ずしお玹介したす。
玔粋な情報だけが知りたい堎合は、ぜひ論文をご芧くださいたせ🙏

「AI駆動開発」ずは

「AI-Driven DevelopmentAI 駆動開発」 なる新単語が生たれおいたした。
暙準化された明確な定矩はもちろんただありたせんが、「AI の利掻甚を基軞にプロダクトや゜リュヌションの開発」みたいな理解で良いず思いたす。

「AI工藀開発」 「AI駆動開発」 、なんか未来が未来じゃなくなっおきたしたね。。。

せやかお駆動

あくたで駆動トリガヌが AI ずいうこずなので、AI で完結させおも良いし、それをベヌスに人間が埮調敎をしたりするこずも含むず思いたす。

Microsoft AutoDev ずは

「Microsoft AutoDev以降、AutoDev」は、AI 技術を掻甚した自埋型゜フトりェア開発ツヌルです。

埓来の開発ツヌルずは異なり、「コヌド生成」や「テスト自動化」などの単䞀タスクを自動化するのではなく、開発プロセス党䜓を自動化 する包括的な開発プラットフォヌムです。
AutoDev は、゜フトりェア開発の効率化、コスト削枛、開発者の負担軜枛を実珟する可胜性を秘めおいたす。

AutoDev の仕組み

AutoDevは、以䞋の4぀の䞻芁なコンポヌネントで構成されおいる様です。

  • Multi-Agent耇数の AI ゚ヌゞェント
    • 開発プロセスを自動化する AIモデル矀
    • ゚ヌゞェント・スケゞュヌラ を備えおおり、ここで耇数の AI ゚ヌゞェントを管理・配眮する
    • ここで圹割毎の専門家を耇数甚意するようなむメヌゞ
  • Conversation Manager䌚話マネヌゞャ
    • 「AI ゚ヌゞェント」の掻動を管理し、開発プロセス党䜓 を統括・管理するコンポヌネント
    • 目的や定矩の蚭定、アクションに関するルヌルや暩限の制埡を行うたぶん
  • Tools Libraryツヌル・ラむブラリ
    • AI がアクセス可胜な、ファむル操䜜、怜玢、ビルド・実行、テスト、Git 操䜜を提䟛するツヌル矀実際には、AI に察しおコマンドを提䟛する
  • Eval Environment評䟡環境
    • Docker コンテナを利甚したセキュアな実行環境
    • 実際に、ビルド・実行・テストなどを行う堎所

AutoDevの特城

AutoDevは、以䞋の特城を備えおいたす。

  • 自埋性人間による介入なしに、開発プロセス党䜓を自動化できる
  • 汎甚性様々な皮類の゜フトりェア開発プロゞェクトに適甚できる
  • 拡匵性新しい AI゚ヌゞェントやドメむン知識を远加するこずで、機胜を埮調敎・拡匵できる

以䞋、提唱しおいるコンセプトずおそらく、そのように実装される機胜です。
尚、暩利的な心配䞊、論文の画像はここでは匕甚したせんのでご了承ください🙏

AI 同士が䌚話するコンセプト

  • AutoDev の栞心は、協調型AI゚ヌゞェント であるこず
  • 耇数の自埋型 AI が、耇雑な゜フトりェア開発の目的を達成するために協力し合う蚭蚈
  • 環境内で、ファむル線集、怜玢、ビルド・コンパむル、コヌドの実行、テスト、Git操䜜など、様々なリ゜ヌスに盎接アクセスし操䜜できるように䜜られる
  • 開発ラむフサむクル党䜓を通しお、ナヌザのプロゞェクトをサポヌトしおくれる「AI 開発チヌム」が完成する

「䌚話」ず衚珟するず近未来に聞こえるが、芁するに AI ゚ヌゞェントが互いにステヌタスを共有し、それらによっお凊理をトリガヌするずいう事だず思いたす。

だけど、AI が人間に意芋を求めおくる

  • AutoDev は、AI ゚ヌゞェントに talk コマンドず ask コマンドを提䟛する
  • AI ゚ヌゞェントは、talk コマンドず ask コマンドを䜿っお、タスクの進捗状況を䌝えたり、人間の管理者にフィヌドバックを求めたりする
  • ぀たり、質問に回答できる知芋を有した人間が必芁になる
  • 「ask コマンドの远加」 は、AutoDev 開発䞭に、「AI ゚ヌゞェントが次のアクションに぀いお確信が持おないような堎合に、フィヌドバックを提䟛する機胜が欲しい」ずいう 開発者の芁望に盎接応えた結果、搭茉された もの、ずのこず

共有可胜なプロンプト

  • たず、人間のナヌザヌが特定の芁件やトリガヌずなるプロンプトを䞎える
    • ルヌル・アクション・目暙蚭定などを Yaml ファむルで定矩し、そこからプロンプト化する
    • このプロンプトは「テンプレヌト」たたは「ボむラヌプレヌト」から䜜成できる様になっおいる
  • するず、ツヌル環境内で AI ゚ヌゞェントが䌚話を始める暡様
  • チヌム内でこのプロンプトを共有・配垃できるため、プロゞェクトの䞀貫性が保たれる
  • 最初のデフォルトのプロンプトは線集・䞊曞きが可胜で、AutoDev の動䜜を埮調敎できる

自動テスト

  • AutoDev は、テストケヌスの生成を自動化する機胜を持っおいる
  • コヌドを分析し、コンテキスト背景を理解するこずで、適切なテストシナリオを提案する
  • これにより、テスト・プロセスが合理化され、コヌド品質が向䞊する

倚蚀語サポヌトプログラミングに関する蚀語

  • JavaScript/TypeScript はもちろん、Java, Kotlin, Python, Rust, Go, C/C++ など幅広い蚀語をサポヌトする
  • AutoDev ナヌザは、プロゞェクトで蚀語切り替えを掻甚するこずで、シヌムレスに蚀語を切り替えるこずができる

セキュリティずプラむバシヌ

  • AutoDev は、セキュリティずプラむバシヌを保蚌するように蚭蚈される
  • 党おの操䜜は Docker などのコンテナ内で行われ、ホストシステムから隔離されお実行される
  • 䞍正アクセスを防ぐガヌドシステムを持ち、機密ファむルを保護する
  • ナヌザは、環境内で実行できるコマンドや暩限を定矩・制限するこずで、開発環境内の制埡秩序を維持するこずができる

AutoDev のパフォヌマンス

それでは、肝心のパフォヌマンスです。
正盎、AI が出おくる床に聞きなれない詊隓や指暙が出おきお毎回倧倉ですが、今回は 「HumanEval」 のデヌタセットで評䟡された結果です。

HumanEval ずは

「HumanEvalヒュヌマン・むヌノァル」 ずは、HumanEval は OpenAI 瀟が2021幎に公開した、プログラミング胜力を評䟡するためのベンチマヌクで、耇雑で倚様な問題を含んだ Python のプログラミング問題集です。

こちらも、arXiv に論文がありたす。

HumanEval デヌタセットは、「コヌド生成」「テスト生成」に関する、164個の Python プログラミング問題ず、各問題に察する耇数の解答䟋を持ったデヌタセットです。

問題の難易床は初玚から䞊玚たでを網矅しおおり、「HumanEval」は LLM のコヌド生成胜力を枬定する暙準的なベンチマヌク の぀ずしお扱われおいる様です。

評䟡指暙 Pass@k

「HumanEval」においお、生成された正確さの評䟡には評䟡指暙 Pass@k が甚いられたす。

たず、流れずしおは、生成 AI が問題に察しおコヌドプログラムを生成したす。
次に、生成したコヌドが正しいかをテストケヌスを通すこずで評䟡したす。その結果によっお、評䟡指暙 「Pass@k」 で正答率を算出したす。

生成 AI が k 個のコヌドを生成し、その䞭のいずれかが正しい堎合に「正解」ず評䟡したす。その割合を「Pass@k = x%」ずいう感じでパヌセンテヌゞの数倀で瀺したす。

䟋えば、「Pass@1」 は、生成されたコヌドが䞀発合栌する確率です。「Pass@5」 は、5個の生成コヌドのうち、どれかで正解した堎合ずなりたす。

぀たり、「Pass@1 = 50%」 は、䞀回の生成コヌドで正しい回答をする確率が50%ずいうこずです。たた、「Pass@5 = 50%」 は、生成コヌドのテストを回詊行するず、50% の確率で正解を曞けるずいうこずです。

実際の評䟡

論文の蚘茉によるず 

In our evaluation, we tested AutoDev on the HumanEval dataset, obtaining promising results with 91.5% and 87.8% of Pass@1 for code generation and test generation respectively, demonstrating its effectiveness in automating software engineering tasks while maintaining a secure and user-controlled development environment.

『HumanEval デヌタセットで AutoDev をテストし、「コヌド生成」ず「テスト生成」でそれぞれ 91.5%コヌド生成 ず 87.8%テスト生成 の Pass@1 ずいう有望な結果を埗たので、セキュアで安党にナヌザ制埡の開発環境を維持しながら、゜フトりェア゚ンゞニアリング䜜業を自動化する AutoDev の有効性を実蚌するこずができたした。』

぀たり、生成したコヌドがほずんど問題なかった䞀発合栌だったずいう結果だった様です。

AutoDev の掻甚䟋

蚘事等を参考に、珟時点で考えられる AutoDev の掻甚事䟋をたずめおみたした

  • コヌド生成
    • 新しいアプリケヌションをプロンプトから新芏開発する
  • リファクタリング
    • 既存のアプリケヌションの゜ヌスコヌドを改善する
    • AutoDev は、゜ヌスコヌドからコンテキストを理解し、適切な改善点を提案できる
  • ドキュメンテヌションの自動化
    • コヌドのコメントず゜ヌス構造を理解し、ドキュメントを自動生成する
    • いわゆる「ドキュメントがない珟堎」などで、最新のドキュメントを生成・提案する
  • テスト自動化ず品質向䞊
    • 既存のプロゞェクトのテストケヌスを䜜らせる
    • 䞍具合の原因を調査させお、芁玄資料を䜜らせたり、理由を説明させる
    • ゜ヌスコヌドをレビュヌさせる品質向䞊
    • 顕圚化しおいない朜圚的なバグを探し、特定させる
  • バヌゞョン管理を任せる
    • Git 操䜜が可胜なので、バヌゞョン管理に関する䜜業を定矩しオヌトメヌション化できる
    • Git Actions やワヌクフロヌを AI を掻甚したものに眮き換え、デプロむメントや CI/CD の領域をより簡略化する
    • GitHub の Issue を察凊させる、Issue の情報をファむル等にたずめさせる
    • バヌゞョン履歎の情報を芖芚的な資料に萜ずし蟌むタスクを䟝頌する

曞いおお、段々恐ろしくなっおきたした☺

AutoDev の開発状況

本蚘事の執筆時珟圚、AutoDev はマむクロ゜フト瀟内で研究開発が進められおいる段階で、ただ商甚化されおいたせん。将来的には、AutoDev のような「AI 駆動開発」゜フトりェア開発の䞻流になる可胜性を秘めおいるず思いたす。
いずれにせよ、今埌の開発状況や実甚化に向けた取り組み等を泚芖しおいく必芁がありそうです。

Devin のようなサヌビス、もしくはそれ以䞊のツヌル・サヌビスが発衚されるかもしれたせん。

そしたら、曎に Google ずかが远埓しおくるかもしれたせん。そこたでがセット

所感たずめ

ワクワクず恐怖が同居しおいたす。😇

参考

今回の解説をしおいる動画

AutoDev に関する他の参考蚘事

193
120
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
193
120

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?