MEGAZONEブログ
Realizing the developer productivity benefits of Amazon CodeWhisperer
Amazon CodeWhispererによる開発者の生産性向上のメリットを実感
Pulisher : AI & Data Analytics Center ソン・スルギ
Description : CodeWhispererの活用方法や生産性を高める機能についての紹介セッション
はじめに
コードの生産性は開発者にとって重要な領域の一つですが、生産性を高めるための方法論や標準化されたガイドが状況や環境によって異なるため、高度化するのが難しい領域の一つです。Gen AIを通じてこのような難しさに対する助けを受けることが十分に可能だと認識される昨今、Code Whispererをどのように活用できるのか、Code Whispererがどのように生産性を高めてくれるのか確認できることを期待しています。
セッションの概要紹介
開発者は、差別化されていないコードを書くのにかなりの時間を費やしています。Amazon CodeWhispererは、コード提案をリアルタイムで生成することでこの負担を軽減し、生産性を飛躍的に向上させます。このセッションでは、CodeWhispererがこのような画一的なコードの大部分を「書く」ことで、開発者がビジネスロジックに集中し、イノベーションのスピードを加速する方法をご紹介します。
アプリケーション構築の難しさ
・良い(安定した、安全な)アプリケーションを開発するためには、様々な経験と協業能力を持った開発者が必要ですが、良い開発者を見つけるのは思ったほど簡単なことではありません。
・経験豊富な開発者であっても、既存の技術とAPI、Best Practicesなどを学習し、基準に基づいてコードを微分化し、共同作業を計画することは多くの困難が伴います。
・さらに、セキュリティ要件と運営の利便性を高めるための要件をすべて受け入れ、コスト削減のためのオープンソースの導入などをすべて考慮してアプリケーションを完成させることは、より高い次元の努力を要求します。
CodeWhispererが開発者の生産性向上に与える影響について
・CodeWhispererは、自然言語と記述されたコードに基づいて推奨コードを生成し、開発者の生産性を向上させるのに役立つAIベースのコーディングアシスタントです。
・CodeWhispererは、IDE内でコードスニペットを検出して推薦を生成したり、セキュリティチェックを通じて初期のセキュリティ脅威を簡単に検出することができます。
・また、開発者が不慣れな言語に対して構文の心配なく作成できるように、言語間変換コード作成などの機能も提供します。
CodeWhispererの機能詳細
Code Generation
・自然言語(英語)の説明やコーディング作業中の内容に基づいて複数のコードを提案してもらうことができます。
・各開発者のコーディングスタイルとパターンを学習し、類似したパターンのコーディングを自動的に提案します。
・AWS内の各種サービスとの連携においても、高品質の提案を受けることができます。
セキュリティスキャン
・開発者が作成したゴッドと生成されたコードに対してセキュリティの脆弱性をスキャンして検出します。
・検出されたセキュリティ脆弱性に対する解決方法の提案を受けることができ、提案された解決方法を自動的に適用することができます。
・現在、Python、Java、JavaScript、TypeScript、C# Vs Code、jetBrains IDEをサポートしており、すぐにAI-Poweredコードもサポートされる予定です。
リファレンストラッキングとエンタープライズコントロール
・提案されたコードの著作権に関する情報を提供します。
・提案されるコードの範囲を設定により制限することができます。
・潜在的に版権がある、または限定的にライセンスが付与されたコードをユーザーが認識せずに誤って使用しないように設定することで、著作権の問題を解決することができます。
組織に合わせたユーザー定義ベースのCodeWhisperer学習
・コードを作成するにあたり、各組織別、環境別にコーディングスタイルやコーディング規約が異なるため、提案されるコードスタイルをユーザーが定義できる機能を提供します。
・組織内部のコードリポジトリとCodeWhispererを接続して、LLMから隔離された環境で別途にユーザー定義学習及びモデル生成が行われます。
・これにより、ユーザーは自分が属する組織のコーディング規約及びスタイルに合ったコードを提案されることができます。
コマンドラインインターフェイス(CLI)のためのCodeWhisperer
・CLIは多数のユーザーが様々な環境で使っているにもかかわらず、interfaceの特性上、使い勝手がかなり悪いという欠点があります。
・CodeWhispererは一般的なコーディング言語だけでなく、Command Line Interfaceで使用されるBash言語に対する自動補完及び提案機能を提供します。
・”q”コマンドを使って自然言語でコマンドを作成すると、bashに翻訳されたシェルコードが提案されます。
セッションを終えて
CodeWhispererは、大規模なデータセットで訓練されたモデルに基づいてコードに対する提案や自動補完機能を提供し、自然言語に基づいて関数/クラスを生成するなどの機能や、セキュリティチェック、言語変換などの機能を通じて、経験が多くない開発者でも高いレベルのコードを作成し、生産性を高めることができるように支援するツールです。
CodeWhispererを使用することで、環境に応じた初期開発環境の構築やBest Practiceの提案、セキュリティリスク検知などを通じて、生産性及び構築スピードを早く上げることができると期待されます。
ただ、どれほど適用性が高いか、各環境に対する理解と判断が適切かどうかについては、ユーザーが検証する期間が必要と思われ、この検証に必要な時間と努力が生産性向上に及ぼす影響によって効用性が変わると思われ、長期的な観点で持続的にサービス品質が向上すると考えると、十分に様々な面でプロジェクト全体の遂行速度と開発者の生産性向上に役立つと期待されます。