スイスのDeepCode、シードラウンドで400万米ドルを調達——GitHubのプロジェクトデータをもとに、AIが開発者にコード改善を提案

by Paul Sawers Paul Sawers on 2019.8.26

DeepCode のダッシュボード
Image credit: DeepCode

Microsoft の CEO の Satya Nadella 氏など、一部のテック企業トップが語るように、すべての企業が事実上のソフトウェア企業になる時代が急速に近づきつつある。その一端を担っているのが、開発者をサポートするツールへの多額の投資だ。例えば昨年、Microsoft は会社の総力を挙げてコードホスティング・コラボレーションプラットフォームの GitHub を75億米ドルで買収した。一方で、GitLab も Alphabet 傘下の GV などのビッグネームから巨額の資金を調達している

しかし、ソフトウェアの量やコードのボリュームが増えれば、それだけチェックやテスト、デバッグにかかる手間も増えることになる。DevOps(開発チームと運用チームの連携)の自動テストツールが投資家の注目を集めているのもそのためだ。FunctionizeTestimMabl といった企業は、この1年で多額の資金を調達している。実際、2018年のソフトウェアテスト自動化の市場規模は85億米ドルと推定されており、今後5年間で約200億米ドルに達する見込みもある。

こうした現状のなか、スイスのスタートアップ DeepCode は8月6日、コードチェック用機械学習システムを拡張するため400万米ドルのシードラウンドを発表した。今回のラウンドは Earlybird がリードし、3VC と Btov Partners が参加した。

コードのチェック

コードの結合前や展開前にバグや脆弱性、スタイル違反などをソフトウェア開発の初期段階で見つけるのが、コードチェックプロセスの大まかな流れで、通常はソフトウェアのテストを実施する前に行われる。DeepCode の共同設立者兼 CEO の Boris Paskalev 氏は VentureBeat に次のように語った。

ソフトウェアのテストではコードを外側から見ますが、コードチェックではコードの DNA を内側から見ることができます。

通常、コードをチェックする際は、元のコードの作成者やその同僚、マネージャーと協力して、次の段階に進む前に明らかなエラーを見つけていく。プロジェクトの規模が大きくなるほど、チェックするコードの量も増え、それだけ時間もかかることになる。Lint のような静的解析ツールでソースコードを解析してエラーを見つけることもできるが、チェックできる範囲が限られている。こうしたツールでは「しつこく繰り返し出現する、スタイルやフォーマットの問題や些細な問題」にチェック対象が限られてしまうと Paskalev 氏は言う

DeepCode には、クロスサイトスクリプティングSQL インジェクションといった脆弱性など、より広範な問題を見つけられるという強みがある。さらに、単純な構文ミスを見つけるのではなく、コードの意図を理解することもできる。これを支えるのが機械学習(ML)システムだ。公開オープンソースプロジェクトのコードを数十億行も使ってトレーニングされたこのシステムは、自身の知識ベースを継続的に学習・更新させている。

Paskalev 氏が VentureBeat に語ったところでは、DeepCode はあらゆるソースコードリポジトリからコードを読み取ることができるが、現在ある公開知識ベースの大半は GitHub リポジトリのものであるという。

オープンソースソフトウェアから得られた知識は、開発者がこれまでよりも短い時間ですっきりとした安全なコードを書けるようにするために役立てられます。(Paskalev 氏)

DeepCode のダッシュボード
Image credit: DeepCode

既存のソフトウェアプロジェクトを使った機械学習では、過去のバージョンのコードや後で加えられた変更などが参照される。DeepCode はここからパターンを学習し、コードの特定の部分から意図を読み取って、バグの場所やバグの修正方法を特定する。

こうしたプロセスによって、既知のバグとそれに対応するための適切な解決策に関する生きた知識ベースができあがります。この知識ベースはバグが実際に発生する前にそれを特定するために使われるのです。DeepCode の AI エンジンは、対象のソフトウェアコードに最適なソリューションを瞬時に特定・提案することができます。(Paskalev 氏)

DeepCode は様々な予測・推測アルゴリズムも使って、既知の問題に関する知識を拡張し、オリジナルのサンプルプロジェクトでは修正されなかったであろうコードの問題にまで切り込むことができる。

開発者は DeepCode をクラウドの GitHub アカウントや Bitbucket アカウントと連携させることができる(オンプレミス版 GitLab もサポート)。アカウントを連携させると、DeepCode が作成済みのコードをチェックして、疑わしいと思われる問題を提示する。DeepCode には、開発者が好きな方法で DeepCode を内部に統合できる API も用意されている。ただし、この API の本来の目的は、必要な情報を必要とする大規模企業が使うためのものだ。

ここで1つ疑問が浮かんでくる。DeepCode の自動コードレビューの性能はどれだけ信頼に値するのかということだ。精度が100%でない限り、開発者は目視でコードをチェックし続けなければならない。この場合、DeepCode によってどれだけの時間が節約できるのだろうか。Paskalev 氏によると、DeepCode を使えばバグのチェックに使っている時間を現状から50%程度削減できるという。

平均すると、開発者はバグの特定と修正に全体の30%の時間を使っています。DeepCode を使えばそれにかかっている時間を今より半分にでき、将来的にはもっと短い時間にすることができます。DeepCode は世界中の開発コミュニティから学習し、個人やチェッカーのグループではこれまで見つけることのできなかった問題をより多く見つけられるのです。

これまでの経緯

2016年に設立された DeepCode は ETH Zurich(スイス連邦工科大学チューリッヒ校)のスピンオフ企業だ。ETH Zurichはヨーロッパ版マサチューセッツ工科大学(MIT)とたとえられることもある。同社は3人の人物によって共同設立された。そのうちの1人は、ETH で博士号課程に入る前に Google でソフトウェアエンジニアをしていた Veselin Raychev 氏で、DeepCode では CTO を務めている。もう1人が ETH の教授で、DeepCode のアドバイザーを務める Martin Vechev 氏だ。

8月6日の資金調達に関するニュースとは別に、DeepCode は新たな価格設定についても発表している。これまで DeepCode のボットはオープンソースのソフトウェア開発プロジェクトに限って無料で使うことができた。今後は教育目的や、30人以下の開発者からなる企業チームも無料で使うことができるようになる。つまり、小さなチームでも効率的に開発を進められるようにする狙いがあるということだ。こうした条件に当てはまらない場合、クラウドで1人の開発者が DeepCode を使う場合の月額料金は20米ドル、オンプレミスサポートの場合は1人の開発者につき50米ドルがかかる。

Paskalev 氏は企業クライアントの名前を公表していないが、DeepCode を使っているオープンソースリポジトリとして、Embark Framework欧州環境機関(EEA)、PyMedusa の名前を挙げている。

これまで DeepCode が調達した資金はシードラウンドでの100万米ドルにすぎない。現在サポートしている言語は Java、JavaScript、Python だけだが、今回獲得した400万米ドルで C#、PHP、C/C++などもサポートできるようにするという。また、同社にとって初となる統合開発環境(IDE)の開発にも取り組んでいる。

Earlybird の共同設立者兼パートナーの Christian Nagel 氏は次のように語った。

すべての業界とほぼすべてのビジネスモデルで、コードのパフォーマンスと品質が重要になってきています。DeepCode はプログラマーの開発効率を高めてくれるプラットフォームなのです。同社のチームには、コードの最適化に関する科学的な深い理解があり、人工知能を使ってソフトウェア開発の次のブレークスルーを成し遂げようとしています。

【via VentureBeat】 @VentureBeat

【原文】

ニュースレターの購読について

毎日掲載される記事の更新情報やイベントに関する情報をお届けします!

----------[AD]----------