ソフトウェアをあまりにもうまく修正できるボットは、人間のエンジニアでまで欺くことが出来る

2018.10.30

投稿者 :Justin Brunnette

カテゴリ: IT News

お久しぶりです、ブルーネットです。

今回はボットのニューズを見つかりました。
元の記事は:

https://www.technologyreview.com/s/612336/a-bot-disguised-as-a-human-software-developer-fixes-bugs/

[日本語]


AIが普及するまでは、ボットの開発がIT産業における次なる大きいものでした。 AIがメディアの注目を集めていますが、ボットの開発はコミュニティを驚かせ続けています。 最新の開発は、人間の開発者を誤魔化せるほど上手にバグを修正できるボットです。 実際にバグを非常にうまく修正して、ベテランの開発者に対しても、人間が行ったものと欺くことができています。

スウェーデンのKTHロイヤル・インスティテュート・オブ・テクノロジー大学の研究者は、コーディングとソフトウェア開発を人間と一緒に競争できるボットを開発しています。 コンピュータ科学の分野では、コードの自動修正プロセスが可能であることは長い間分かっていましたがされていましたが、「リペアネイタ」と呼ばれるボットは、自動化されたプロセスが人間と同じクオリティや速さで バグ修正できます。
 
研究チームは、Githubでボットをテストすることにしました。 Githubの司会者は、人間の開発者とロボットが提出したコードの評価が違うので傾向があるため、ボットを人間として偽装する必要がありました。 彼らはチームのジュニア開発者のように見えるようにプロフィール画像を付けて、 "Luc Escape"という名前のボットの完全なプロフィールを作成し、パッチが必要となるコードをGithubで検索しました。
 
ボットプロジェクトの目的は、Githubにあるコードがビルドを失敗したら対処するパッチを自動的に合成し、Githubの人間のモデレータに評価されるため提出し、受け入れるようにすることです。 ボットは、Travisの継続統合サービスの開発に着手し、開発者がGithubにコミットしたビルドのリストを分析しました。 失敗したビルドのリストを見つけたら、失敗の原因となったバグを再現しようとします。 それからパッチを合成するために設定する必要のあるバグのリストを作成します。 一度パッチが作成されると、研究チームはレビューしてから元の開発者に提出します。
 
プロジェクト中、ボットは11,500件以上のビルドを分析し、3,000件以上問題のバグを再現できました。その件の中に15件のパッチを正常に作成することができました。しかしこの15件は時間かかり過ぎたか、コードのクオリティが低かったせいで、Githubのモデレータ は拒否しました。研究チームはボットのソースコードを調整の後、ボットは5件のパッチを正常に提出することができましたし、モデレータに受け取られるようにできました。つまり、人間と競争できるほどのコードを生成することが出来ました。
 
ボットの成功は、様々な議論を巻き起こすことになっております。たとえば、ボットがライセンスに署名することができないので、ボットが提供したコードの知的財産権は誰が保有するのかといった問題です。ボットのオペレータか、ボット開発者、または元のボットコードを改善した開発者になるかの問題があります。 コード開発において、人間とボットが並行して作業を始める事になると、この問題は必ず解消されると思います。 役割分担が明確になることで、人間と自動開発ソフトが、仕事を競合するのではなく、ソフトウェア開発で一緒に働くことができることになると思います。

[English]

 

Bot development used to be the next big thing in the IT industry before the proliferation of AI. Even with all the spotlight hogged by AI, bot development continues to astonish the community. One of the latest developments is a bot that impersonates human developers and patches bugs. In fact, it fixes bugs so well that it is able to fool even veteran developers that it was done as a human.

 

Researchers at the KTH Royal Institute of Technology in Stockholm, Sweden have been working on a bot that can compete along side humans in coding and software development. Though it has been long understood in the field of computer science that an automated process of fixing code is possible, the bot dubbed the “Repairnator’ was a proof of concept that the automated process could work as fast and with the same quality as human developers.

 

The team set out to test the bot on the open source platform Github. Because moderators on Github tend to evaluate human developers and bot submitted code differently, the team needed to disguise it as a human. They created a full profile for the bot with the named “Luc Escape”, with a profile picture to make it look like a junior developer from their team and had it set out to search out code to evaluate and patch.

 

The objective of the project is to automatically synthesize patches that address build failures, and submit them to human moderators for evaluation and try to get them accepted. The bot set out to work on the Travis continuous integrated service and analyzed the list of builds that were committed to Github by developers. After finding a list of failed builds, it would try to reproduce the bugs that caused the failure. This creates a list of bugs that needs to be addressed in which it would set out to synthesize patches for. Once it has created a set of patches, the research team would review and confirms them before submitting them to the original developers.

 

During the project, the “Repairnator" analyzed over 11,500 builds with failure and was able to reproduce bugs in question in over 3,000 cases. It was able to successfully create patches in 15 of these cases. Though it this first set of cases, the bot was either too slow or the quality was too low to be accepted by the human moderators. After a set of adjustments to the bots source code, the bot was able to successfully submit patches for 5 cases, meaning that it was able to produce code in a sufficient amount of time with quality of other human developers.

 

The success of the bot does raise some legal questions as bots are unable to sign licenses, who would take the intellectual property rights of the code contributed by the bot? These could include the bot operator, the bot developer or the developer who improved the original bot code. As humans and bot begin to work side by side in code development, these issues would sure to be ironed out. This is just another case in which humans and automation could work together in software development rather than competing for the same set of jobs.