「JetBrains」の各種IDE、AIコード補完機能をローカルで使用可能に:クラウドベースのAI支援機能の懸念点をカバー
クラウドベースのAIアシスタントを利用して著作権やデータプライバシーの問題を回避するというトレンドがますます広がっている。そうした中、「JetBrains」が「GitHub Copilot」に先んじてローカルでのAIコード支援機能を実装した。本記事ではそのメリットを解説する。
JetBrainsが開発する各種IDE(統合開発環境)の大半に、ローカルAI(人工知能)コードオプションが組み込まれた。これは、コードの全行を提案することを目的にトレーニングされた小さな言語モデルを、ローカルで動かすものだ。コードの正確性をチェックする組み込み機能が、同社IDEの有償サブスクリプションを利用するユーザーに提供されるようになる。
こうした機能は、2024年4月上旬にリリースされたバージョン2024.1のJetBrainsの各種IDEに同梱される。対象となるIDEには、「IntelliJ IDEA」(Java、Kotlinをサポート)、「PyCharm」(Pythonをサポート)、「WebStorm」(JavaScript、TypeScript、CSSをサポート)、「PhpStorm」(PHPをサポート)、「GoLand」(Goをサポート)、「RubyMine」(Rubyをサポート)などがある。今後のリリースでは、「Rider」(C#をサポート)、「RustRover」(Rustをサポート)、「CLion Nova」(C++をサポート)にも、全行コード補完サポートの追加が予定されている。JetBrainsのローカルAIコード補完モデルでは、コード行補完の提案に実際の変数とメソッドが含まれること、そして構文が正しいことも検証される。
JetBrainsの全行コード補完チームでシニア機械学習エンジニアを務めるダニエル・サヴェンコフ氏は語る。「AIコード補完ツールの主な問題点の一つは、実際には存在しないメソッドや変数が生成される場合があり、提案を受け入れる前に利用者が修正しなければならなかったことだ。当社の全行コード補完では、提案を提示する前にその提案の正確性が全てチェックされる」
JetBrainsは、コードブロック全体を生成できるクラウドベースのプラグイン「AI Assistant」を既に提供している。だが、同社関係者によると、このプラグインには変数の検証や正確性チェックの機能は含まれていないという。プラグインには、今後のリリースでこうした機能が追加される予定だ。
JetBrainsのIDEにAIコード補完が組み込まれていることは、開発者が作業する特定のプロジェクトをモデルが認識することも意味すると語るのは、オンライントレーニング「Talk Python Training」の創設者で、Pythonソフトウェア財団(PSF:Python Software Foundation)のフェローでもあるマイケル・ケネディ氏だ。同氏は、JetBrainsのPyCharm IDEのユーザーでもある。
「JetBrainsのツールは開発者のコード全てとプロジェクト全てを理解する。OpenAIの『ChatGPT』ならば、『これを助けて』と頼めばChatGPTがその内容を生成し、開発者は生成された10数行のコードを貼り付けることになる。だが、JetBrainsの提案では、『ここにはそれを行うファイルがあり、このファイルでそのことが行われる』といった情報が提供され、開発者が自身のコンテキスト内で作業するのに役立つように全ての情報を組み合わせる」(ケネディ氏)
JetBrainsのローカルコード補完とAI Assistantの違い
コードブロック全体を生成するクラウドベースのAI Assistantは、アイデアをアプリケーションに実装する方法が分からない開発者に適していると同社はブログ記事で述べている。一方、全行コード補完は開発者のキーストローク数を約20%削減するとしている。
ローカルAIコード補完のもう一つの利点は、GitHubの「GitHub Copilot」などのAIアシスタントサービスではデータをクラウドベースの大規模言語モデル(LLM)に送らなければならないのに対し、ローカルAIコード補完ではその必要がないことだ。これは、セキュリティやプライバシーを重視するユーザーには大きなメリットだ。
Forrester Researchでアナリストとして働くアンドリュー・コーンウォール氏はJetBrainsのアプローチについて次のように語る。「データをクラウドに送らなければ、ネットワーク経由でコードが漏えいすることはない。その代わり、一度に多くのコードを生成するAIアシスタントに比べて開発者の生産性は低くなるだろう」
AIアシスタントにまつわる著作権に対する一般的な懸念をさらに緩和するため、JetBrainsは、今回のリリース向けに、パーミッシブライセンス(オープンソースライセンスの中でも制約要件が最も少ないライセンス)を有するオープンソースコードのデータセットを用いて、プログラミング言語ごとに自社独自の小規模言語モデル(1億パラメーター)をトレーニングしている。
コーンウォール氏によると、パーミッシブライセンスのデータでトレーニングすることで、著作権に対して生じる可能性のある懸念事項を完全に解決できるわけではない。しかしながら、単一あるいは複数のコードブロック全体でなく、1行のコードであれば、リスクは低減されるという。
「オープンソースプロジェクトのコードを1行取り込んだからといって訴えられることはないだろう。だが、AIが生成したコードの行数が増えることを開発者が望むとしても、企業は警戒しなければならない。どこかの時点で、パーミッシブライセンスを持つプロジェクトから取り込むコードに、IP(知的財産)が含まれているといえる状態に変化する可能性がある」(コーンウォール氏)
ローカルAIコード生成へ高まる関心
JetBrainsのIDEは、Microsoftの「Visual Studio Code」などのGitHub Copilotを統合する開発者ツールよりも、ローカルでAIコードを生成するという点で先んじているとしても、開発者ツール市場で唯一の存在ではない。ローカルに実行されるAIコーディングアシスタントとしては、オープンソースの「FauxPilot」「LocalPilot」、Salesforceの「CodeGen」、Metaの「Code Llama」、Hugging FaceとServiceNowの「StarCoder」、Tabnineの「Tabnine」なども入手できる。
Constellation Researchでアナリストを務めるアンディ・トゥライ氏によると、Visual Studio CodeはローカルAIサポートを備えていないとしても世界で最も広く使われているIDEだという。
「GitHub Copilotがこれほどまでに人気となったのは、Visual Studio内に統合され、シームレスにコードを生成するからだ。とはいえ、ライセンスへの懸念と、ツールからテレメトリーがMicrosoftに送られることへの懸念を持つユーザーが多いため、ローカルでコード生成を実行するAIモデルの人気が高まっている」(トゥライ氏)
GitHubがいずれローカルバージョンのCopilotを提供する可能性は高いと話すのは、IDCでアナリストを務めるミケーレ・ローゼン氏だ。
「GitHubはコード生成のレイテンシを低く保つことに力を注いでいる。だが、低レイテンシはローカルモデルの強みの一つだ。コードをオンプレミスに保持する必要がある開発者から見れば、開発者が使用できるツールとLLMを利用するツールのギャップを埋めるのが小規模言語モデルだ」(トゥライ氏)
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- JetBrains、Scalaで関数型プログラミングを学べるコースを無料公開
JetBrainsは、Scalaで関数型プログラミングの概念を学べるコースを無料公開した。Scalaの特性や構文よりも、関数型プログラミングの概念を理解することに焦点を当てているという。 - プログラミング言語「Rust」用の統合開発環境「RustRover」発表 JetBrains
JetBrainsはRust用スタンドアロン型IDE「RustRover」を発表した。早期アクセスプログラムを開始しており、2024年9月までにリリースする計画だ。 - AIによるコード提案「GitLab Duo」をVisual Studioで使えるようにする拡張機能が登場
GitLabは、「GitLab for Visual Studio」の提供を開始した。GitLab for Visual Studioは、「GitLab Duo」によるAIを使ったコード提案機能を、「Visual Studio」上で使えるようにする拡張機能だ。