Amazon Web Services ブログ

AI コーディング支援サービスとして CodeWhisperer を利用してソフトウェア開発を革新する

Amazon CodeWhisperer一般提供が開始されてから数か月間で、ソフトウェア開発の方法を簡素化および合理化するために、多くのお客様にこのサービスをご利用いただきました。CodeWhisperer は、基盤モデルを活用した生成系 AI を使用して、コードのセマンティクスとコンテキストを理解し、関連性のある有用な提案を提供します。このサービスを利用することで、アプリケーションをより迅速かつ安全に構築できます。また、小規模な提案から、複雑な問題をより単純なタスクに分解するのに役立つ完全な関数やユニットテストの作成に至るまで、さまざまなレベルで有用です。

コードのテストカバレッジを改善したり、アプリケーションのためにきめ細かい認可モデルを実装したりすることを希望していると仮定しましょう。コードの記述を開始すると、CodeWhisperer が一緒に作業してくれます。このサービスは、コメントと既存のコードを理解し、スニペットから関数やクラス全体に至るまで、リアルタイムで提案を提供します。この即時のサポートはフローに合わせて対応するため、ソリューションや構文のヒントを検索するためにコンテキストを切り替える必要性が減ります。コード支援サービスを利用すると、開発プロセス中により集中でき、生産性が高まります。

精通していない API を取り扱う場合でも、CodeWhisperer は関連するコードの提案を提供することで作業を加速します。さらに、CodeWhisperer は、とらえにくい脆弱性を検出し、それらを修正するための提案を提供できる包括的なコードスキャン機能を提供します。これは、Open Worldwide Application Security Project (OWASP) によって概説されているベストプラクティスに整合しています。これにより、コーディングの効率が向上するだけでなく、安全性も高まり、作業の質がより良く保証されます。

CodeWhisperer は、オープンソースのトレーニングデータに似たコードの提案にフラグを立てたり、偏っているか、または不公平であるとみなされる可能性のある、問題のあるコードにフラグを立てて削除したりすることもできます。関連付けられたオープンソースプロジェクトのリポジトリ URL とライセンスが提供されるため、それらを確認し、必要に応じて取得元を追加することが容易になります。

プロトタイピングやオンボーディングからデータ分析や許可管理まで、ソフトウェア開発のさまざまな領域にわたる CodeWhisperer の実例をいくつかご紹介します。

CodeWhisperer でプロトタイピングとオンボーディングを加速
CodeWhisperer を興味深い方法で利用しているお客様の例として、BUILDSTR を挙げることができます。同社は、プラットフォームの開発とモダナイゼーションに重点を置いたクラウドエンジニアリングサービスを提供するコンサルティング企業です。バックエンドでは Node.js と Python を使用し、フロントエンドでは主に React を使用します。

BUILDSTR の共同創業者である Kyle Hines 氏とお話しさせていただいた際に、同氏は次のように述べていました。「さまざまなお客様のための種々の開発プロジェクトで CodeWhisperer を活用することで、プロトタイピングで大きな効果が得られることがわかりました。例えば、Amazon DynamoDB などの他の AWS のサービスとインタラクションする AWS Lambda 関数用のテンプレートの作成速度に感銘を受けています」。 Hines 氏は、同社のプロトタイピングにかかる時間が 40% 短縮され、お客様の環境に存在する脆弱性の数が 50% 超減少したことが判明したと述べました。

CodeWhisperer を利用して AWS Lambda 関数のハンドラーを生成するコードエディタのスクリーンショット。

また、「コンサルタント企業にとって、新しい人材の採用と育成は終わりのないプロセスであるため、新しいデベロッパーのオンボーディングに CodeWhisperer を活用しました。これにより、BUILDSTR Academy は、オンボーディングの時間と複雑さを 20% 超削減できました」と付け加えました。

探索的データ分析のための CodeWhisperer
Wendy Wong 氏は、Service NSW でデータパイプラインを構築し、AI でアジャイルプロジェクトを構築するビジネスパフォーマンスアナリストです。コミュニティに対する貢献が評価されて、Wong 氏は AWS データヒーローとしても認められています。同氏は、統計とビジュアライゼーションツールを使用してデータセットを分析し、その主な特徴の概要を取得する際に、Amazon CodeWhisperer によって探索的データ分析プロセスが大幅に加速されたと述べています。

Wong 氏は、CodeWhisperer が、作成するコードの各行の意図を正確に推測し、ベストプラクティスの提案を通じて最終的にコードの品質の向上に役立つ、迅速かつユーザーフレンドリーで信頼できるコーディング支援サービスであると考えています。

「CodeWhisperer を利用すると、コードとコメントが正確に自動補完されるため、細かい点を記憶しておく必要がなくなり、コードの記述が非常に簡単に感じます」と Wong 氏は述べています。「以前は、データ準備の前処理タスクの設定に 15 分かかっていましたが、今では 5 分で準備が整います」。

Jupyter Notebook で Amazon CodeWhisperer を利用した探索的データ分析のスクリーンショット。

Wong 氏は、これらの繰り返しのタスクを CodeWhisperer に委任することで効率が向上したと述べており、探索的なデータ分析を簡素化するために CodeWhisperer を利用する方法を説明する一連の記事を執筆しました。

データセットの探索に使用されるもう 1 つのツールは SQL です。Wong 氏は、SQL のエキスパートではないデータエンジニアを CodeWhisperer がどのようにサポートできるかを検討しています。例えば、同氏は、「複数の結合の作成」または「サブクエリの作成」を指示するだけで、使用する正しい構文をすぐに取得できることに気付きました。

Amazon CodeWhisperer に SQL 構文とコードを生成するように依頼します。

CodeWhisperer がテストや他の日常業務を加速
以前、AWS Developer Relations Platform チームのソフトウェアエンジニアと時間を過ごす機会がありました。それは、とりわけ、community.aws ウェブサイトを構築および運営するチームです。

community.aws ウェブサイトのスクリーンショット。Amazon CodeWhisperer を利用しながら、AWS Developer Relations Platform チームによって構築および運営されています。

Nikitha Tejpal 氏は仕事で主に TypeScript を中心的に扱っており、CodeWhisperer は入力中に表示される効果的なオートコンプリート候補を提供することで、同氏のコーディングプロセスをサポートします。同氏は、CodeWhisperer がユニットテストをサポートする方法を特に気に入っていると述べています。

「今ではポジティブテストの記述に注力し、その後にコメントを使用して CodeWhisperer に同じコードのネガティブテストを提案させることができます」と Tejpal 氏は述べています。「このようにして、ユニットテストを 40% 短い時間で記述できるようになりました」。

Tejpal 氏の同僚である Carlos Aller Estévez 氏は、CodeWhisperer のオートコンプリート機能を利用して、既存のコードを補足する 1~2 行の提案を受け取っています。同氏はそれを自らの裁量に基づいて受け入れたり、無視したりします。また、CodeWhisperer の予測機能をプロアクティブに活用してコードを記述することもあります。「明示的に CodeWhisperer にコードを記述させる場合は、求めている内容を説明するコメントを含むメソッドシグネチャを記述し、オートコンプリートによる提案を待ちます」と Estévez 氏は説明しています。

例えば、同氏の目的が、特定のパスまたはその親パスに対する許可をユーザーが持っているかどうかを確認することであったときに、CodeWhisperer は、同氏のメソッドシグネチャとコメントに基づいて、問題の一部についての適切な解決策を提供しました。生成されたコードは、指定されたリソースの親ディレクトリをチェックし、考えられるすべての親パスのリストを作成します。その後、Estévez 氏は各パスに対する簡単な許可チェックを実装して、実装を完了しました。

「CodeWhisperer はアルゴリズムと実装の詳細をサポートしてくれるので、ビジネス要件などの全体像について考え、より良いソリューションを生み出すことにより多くの時間を費やすことができます」と同氏は付け加えました。

メソッドの署名とコメントに基づいて CodeWhisperer によって生成されたコード。

CodeWhisperer は多言語チームプレイヤーです
CodeWhisperer はポリグロットであり、Python、Java、JavaScript、TypeScript、C#、Go、Rust、PHP、Ruby、Kotlin、C、C++、シェルスクリプト、SQL、Scala の 15 のプログラミング言語でのコード生成をサポートしています。

CodeWhisperer はチームプレイヤーでもあります。Visual Studio (VS) Code と JetBrains の IDE ファミリー (IntelliJ、PyCharm、GoLand、CLion、PhpStorm、RubyMine、Rider、WebStorm、DataGrip を含む) に加えて、CodeWhisperer は JupyterLabAWS Cloud9AWS Lambda コンソール、Amazon SageMaker Studio でも利用できます。

AWS では、お客様のニーズを満たす新しいサービスの構築に投資することで、お客様が責任ある AI を理論から実践に転換できるようサポートし、バイアスの特定と軽減、説明可能性の向上、データの機密とセキュリティの維持をより容易にすることに全力で取り組んでいます。

Amazon CodeWhisperer は、個人階層で無料でご利用いただけます。詳細については、「CodeWhisperer の料金」を参照してください。利用を開始するには、次のステップに従ってください

Danilo

原文はこちらです。