Cognition Labsは先日、人工知能(AI)プラットフォーム「Devin」の正式リリースを発表しました。この発表は、3月にDevinが初公開されてからのものです。このAIツールは、様々な複雑なコーディングタスクを実行することを目的としており、個人開発者やエンジニアリングチームにとって貴重な資産となります。
Devinの機能には、複数のプログラミング言語でコードを作成、ウェブサイトやアプリケーションの構築と展開、コードのデバッグなどがあり、ソフトウェア開発プロセスを簡素化することを目指しています。同社は、Devinが実際の人工知能企業のエンジニア面接に合格し、Upworkなどのフリーランスプラットフォームで実際に仕事をしたと主張しています。現在、Devinは個人とチーム向けのサブスクリプションサービスを提供しています。
Devinの概要
Devinは主にAIプログラミングアシスタントとして位置付けられており、ソフトウェアエンジニアリング分野で重要な役割を果たし、複雑なプログラミングタスクを数多く処理できます。その技術的背景はNubankの大規模なコード移行プロジェクトに由来しており、このプロジェクトでDevinは、8年間にわたる数百万行のコードを持つ単一ETLをサブモジュールに移行することに成功し、Nubankに顕著な効率向上とコスト削減をもたらしました。
現在、Devinは月額500ドルのサブスクリプション料金でエンジニアリングチームと開発者にサービスを提供しており、サブスクリプションユーザーは座席数無制限の使用権、Slack統合、IDE拡張機能、APIなどを利用でき、Cognitionエンジニアリングチームによる導入ガイダンスとサポートも受けられます。
The Informationが最初に報じたところによると、Cognition Labsは1億7500万ドルを調達し、設立からわずか半年で20億ドルの評価額を発表しました。1ヶ月後、Founders Fundが新たな資金調達ラウンドをリード投資しましたが、同ファンドは以前、GitHub Copilotやその他の生成AIコーディングアシスタントの最新の競争において、わずか3億5000万ドルの評価額で2100万ドルのシリーズA投資をリード投資していました。
Devinの機能ハイライト
- コード移行とリファクタリングの自動化:コード移行作業を自動化し、エンジニアのこのような反復的な作業量を大幅に削減できます。例えば、Nubankのプロジェクトでは、単一アーキテクチャからサブモジュールへの移行を効率的に行いました。
- 自然言語処理:自然言語の要求を理解し、応答できます。これにより、開発者とDevinの協調がより直感的で便利になり、開発者は同僚と会話するようにDevinにタスク指示を出すことができます。
- コードテストと修正:独自のシェルを備えており、コードを自己テストしてエラーを修正し、コードが正常に実行されるまで確認することで、コードの品質と安定性を保証します。
- 複数ファイル操作:新しいコードベースを独立して探索し、複数のファイルにコードを投入することで、複雑なプロジェクトにおける複数ファイルの処理ニーズに容易に対応できます。
- ウェブ検索機能:独自のブラウザを持っており、ウェブドキュメントの検索に使用でき、構築されたWebアプリケーションもテストできます。開発者に豊富な参考資料とテスト環境を提供します。
- 継続的インテグレーション/継続的デリバリー(CI/CD)サポート:CI/CD関連タスクを処理し、ソフトウェア開発プロセスを最適化し、ソフトウェアデリバリーの効率と品質を向上させます。
- プロジェクト管理能力:PRの作成、PRコメントへの対応など、プロジェクトの作成と管理を行うことができ、チームワークとプロジェクトの推進を容易にします。
- クロスプラットフォーム連携:GitHub、Slackなどの複数のツールと統合し、クロスプラットフォーム連携を実現することで、開発者は慣れた作業環境でDevinを使用でき、作業効率を向上させます。
適用事例
- 大規模コード移行プロジェクト:NubankがコアETLを単一アーキテクチャからサブモジュールに移行した例では、Devinによってエンジニアリング時間が12倍向上し、数ヶ月または数年かかる可能性のある移行タスクが数週間で完了し、移行コストも20倍以上削減されました。
- 日常的なコードメンテナンスと最適化:小さなフロントエンドのバグやエッジケースに対処する場合、開発者はSlackスレッドでDevinをタグ付けして、迅速に問題を解決できます。コードリファクタリングタスクについては、Devin IDE拡張機能を使用して編集またはアップグレードする必要があるコード部分を指定し、Devinがリファクタリング作業を行います。
- データエンジニアリングタスク:データウェアハウスの移行、ETL開発、データクレンジング、前処理などの作業において、Devinは重要な役割を果たします。例えば、データ分析スクリプトを実行し、データの視覚化と統計サマリーを生成します。
- プロジェクトにおけるPRの作成と管理:バックログタスクの最初のPRを作成する場合、開発者は毎日作業を開始する際に、ToDoリストからDevinにタスクを割り当て、Devinが完了後にPRを作成し、開発者がレビューと調整を行います。
- テストと問題の調査:無効な自動分類リンクなどの問題に対処する場合など、コードの問題が発生した場合、Devinは関連関数の調査を支援し、問題の原因を特定して解決を試みます。
Devinの使い方
- 登録とログイン:Devinプラットフォームにアクセスして、登録しアカウントを作成し、使用画面に入ります。
- コードベース情報の提供:移行またはリファクタリングする必要があるコードベースに関する情報をDevinに提供し、プロジェクトの背景をDevinに理解させます。
- タスク指示の発行:「音楽生成ライブラリをJava 8からPython 3.11に移行し、新しいPythonファイルごとに小さなテストを追加してコードが実行可能であることを確認する」など、自然言語を使用してDevinに具体的なタスク要件を明確に記述します。
- タスク処理と進捗監視:Devinはタスクの自動処理を開始し、処理中にリアルタイムで進捗状況をフィードバックします。ユーザーはいつでもタスクの進捗状況を確認できます。
- レビューと調整:Devinが完了した作業を注意深くレビューし、問題が見つかったり、最適化が必要な場合は、必要な調整を行います。
- 変更のマージ:問題がないことを確認したら、Devinの変更をメインブランチにマージして変更を有効にします。
- テストと検証:Devinのシェルとブラウザ機能を使用してコードのテストと検証を行い、コードの品質と機能が正常であることを確認します。
- 繰り返し操作:プロジェクトのニーズに応じて、上記のステップを繰り返して、より多くのコード移行またはリファクタリングタスクを継続的に処理します。
結論
Devinは強力なAIプログラミングアシスタントとして、コード移行、リファクタリング、自然言語処理などにおける優れた機能により、エンジニアリングチームと開発者に顕著な効率向上をもたらします。大規模なコードアーキテクチャの調整から、日常的なコードのメンテナンスと最適化まで、Devinは重要な役割を果たします。
プログラミング作業で面倒なタスクや課題に直面している場合、Devinを試してみて、あなたのプログラミングパートナーにしてみてください。AIプログラミングアシスタントに対するあなたの意見をいいね、コメント、共有して、Devinの発展に注目し、プログラミング作業の新しい方法を一緒に探求しましょう。将来、Devinが私たちにもっと多くの驚きと価値をもたらしてくれると信じています。