ゼファーネットのロゴ

Amazon CodeWhisperer で持続可能性を最適化する | アマゾン ウェブ サービス

日付:

この投稿では、その方法について説明します アマゾン コード ウィスパラー リソース効率の向上による持続可能性のためのコードの最適化に役立ちます。 計算リソース効率の高いコーディングは、コード行の処理に必要なエネルギー量を削減することを目的とした手法の XNUMX つであり、その結果、企業の全体的なエネルギー消費量の削減に役立ちます。 このクラウド コンピューティングの時代において、開発者は現在、オープンソース ライブラリと利用可能な高度な処理能力を利用して、運用効率、パフォーマンス、回復力が必要な大規模なマイクロサービスを構築しています。 ただし、最新のアプリケーションは多くの場合、次のもので構成されます。 膨大なコード、大量のコンピューティング リソースを必要とする。 環境への直接的な影響は明らかではないかもしれませんが、最適化されていないコードは、エネルギー消費量の増加、ハードウェアの長時間使用、時代遅れのアルゴリズムなどの要因を通じて、最新のアプリケーションの二酸化炭素排出量を増大させます。 この投稿では、Amazon CodeWhisperer がこれらの懸念に対処し、コードの環境フットプリントを削減するのにどのように役立つかを説明します。

Amazon CodeWhisperer は、既存のコードと自然言語コメントに基づいて提案を行うことでソフトウェア開発をスピードアップする生成 AI コーディング コンパニオンであり、全体的な開発労力を削減し、ブレーンストーミング、複雑な問題の解決、差別化されたコードの作成に費やす時間を確保します。 Amazon CodeWhisperer は、開発者がワークフローを合理化し、コード品質を向上させ、より強力なセキュリティ体制を構築し、堅牢なテストスイートを生成し、計算リソースに優しいコードを作成するのに役立ちます。これにより、環境の持続可能性の最適化に役立ちます。 の一部として利用可能です。 Visual Studio コード用ツールキット, AWS クラウド9、ジュピターラボ、 Amazon SageMakerスタジオ, AWSラムダ, AWSグルー、JetBrains IntelliJ IDEA。 Amazon CodeWhisperer は現在、Python、Java、JavaScript、TypeScript、C#、Go、Rust、PHP、Ruby、Kotlin、C、C++、シェル スクリプティング、SQL、Scala をサポートしています。

最適化されていないコードがクラウド コンピューティングとアプリケーションの二酸化炭素排出量に及ぼす影響

AWS のインフラストラクチャは、調査対象となった米国の企業データセンターの中央値よりも 3.6 倍エネルギー効率が高く、平均的なヨーロッパの企業データセンターよりも最大 5 倍エネルギー効率が優れています。。 したがって、AWS はワークロードの二酸化炭素排出量を最大 96% 削減するのに役立ちます。 Amazon CodeWhisperer を使用して、リソースの使用量とエネルギー消費を削減して高品質のコードを作成し、AWS のエネルギー効率の高いインフラストラクチャの恩恵を受けながらスケーラビリティの目標を達成できるようになりました。

リソース使用量の増加

コードが最適化されていないと、クラウド コンピューティング リソースが非効率的に使用される可能性があります。 その結果、より多くの仮想マシン (VM) またはコンテナが必要となり、リソース割り当て、エネルギー使用量、および関連するワークロードの二酸化炭素排出量が増加する可能性があります。 次のような増加が発生する可能性があります。

  • CPU使用率 – 最適化されていないコードには、実行に過剰な CPU サイクルを必要とする非効率的なアルゴリズムやコーディング手法が含まれていることがよくあります。
  • メモリ消費 – 最適化されていないコードでの非効率的なメモリ管理により、不必要なメモリの割り当て、割り当て解除、またはデータの重複が発生する可能性があります。
  • ディスク I/O 操作 – 非効率的なコードでは、過剰な入出力 (I/O) 操作が実行される可能性があります。 たとえば、データのディスクへの読み取りまたは書き込みが必要以上に頻繁に行われると、ディスク I/O の使用率と遅延が増加する可能性があります。
  • ネットワーク使用量 – 非効率なデータ送信技術や重複した通信により、コードの最適化が不十分な場合、過剰な量のネットワーク トラフィックが発生する可能性があります。 これにより、遅延が増加し、ネットワーク帯域幅の使用率が増加する可能性があります。 クラウド コンピューティングなど、ネットワーク リソースが使用量に基づいて課税される状況では、ネットワーク使用率が増加すると、出費とリソースの必要性が増加する可能性があります。

より高いエネルギー消費

非効率的なコードを含むインフラストラクチャをサポートするアプリケーションは、より多くの処理能力を使用します。 非効率で肥大化したコードによってコンピューティング リソースを過剰に使用すると、エネルギー消費と熱生成が増加し、その後冷却のためにより多くのエネルギーが必要になる可能性があります。 サーバーに加えて、冷却システム、配電インフラストラクチャ、その他の補助要素もエネルギーを消費します。

スケーラビリティの課題

アプリケーション開発では、コードが最適化されていないことが原因でスケーラビリティの問題が発生する可能性があります。 このようなコードは、タスクが増大するにつれて効果的に拡張できなくなり、より多くのリソースが必要になり、より多くのエネルギーが使用される可能性があります。 これにより、これらのコードフラグメントによって消費されるエネルギーが増加します。 前述したように、非効率または無駄なコードは、規模が大きくなると悪影響を及ぼします。

顧客が特定のデータセンターで実行するコードの最適化によるエネルギー節約の複合化は、AWS などのクラウドプロバイダーが世界中に数十のデータセンターを持っていることを考慮するとさらに複雑になります。

Amazon CodeWhisperer は、機械学習 (ML) と大規模な言語モデルを使用して、元のコードと自然言語コメントに基づいてコードの推奨をリアルタイムで提供し、より効率的なコードの推奨を提供します。 アルゴリズムの進歩、効果的なメモリ管理、無意味な I/O 操作の削減などの戦略を使用してコードを最適化することで、プログラムのインフラストラクチャの使用効率を高めることができます。

コードの生成、完成、提案

Amazon CodeWhisperer が役立ついくつかの状況を調べてみましょう。

コード生成ツールは、反復的なコードや複雑なコードの開発を自動化することで、人的エラーの可能性を最小限に抑えながら、プラットフォーム固有の最適化に重点を置きます。 確立されたパターンまたはテンプレートを使用することにより、これらのプログラムは持続可能性のベスト プラクティスをより一貫して遵守するコードを生成する可能性があります。 開発者は特定のコーディング標準に準拠したコードを作成できるため、プロジェクト全体でより一貫性があり信頼性の高いコードを提供できます。 結果として得られるコードは、人間によるコーディングのバリエーションが排除され、より読みやすくなり、開発速度が向上するため、より効率的になる可能性があります。 余分なコードの削除、変数ストレージの改善、圧縮方法の使用など、アプリケーション プログラムのサイズと長さを削減する方法を自動的に実装できます。 これらの最適化は、メモリ消費の最適化に役立ち、パッケージ サイズを縮小することでシステム全体の効率を向上させます。

生成AI リソース割り当てを最適化することで、プログラミングをより持続可能なものにする可能性があります。 アプリケーションの二酸化炭素排出量を総合的に見ることが重要です。 のようなツール Amazon CodeGuruプロファイラー パフォーマンス データを収集して、コンポーネント間のレイテンシーを最適化できます。 プロファイリング サービスはコードの実行を検査し、潜在的な改善点を特定します。 開発者は、これらの結果に基づいて自動生成されたコードを手動で調整し、エネルギー効率をさらに向上させることができます。 生成 AI、プロファイリング、および人間の監視を組み合わせることで、コード効率を継続的に向上させ、環境への影響を軽減できるフィードバック ループが作成されます。

次のスクリーンショットは、ネットワークとディスク I/O を含む、レイテンシ モードで CodeGuru Profiler から生成された結果を示しています。 この場合、アプリケーションは依然としてほとんどの時間を費やします。 ImageProcessor.extractTasks (下から XNUMX 行目)、その内部ではほぼ常に実行可能です。つまり、何も待機していませんでした。 これらのスレッドの状態は、CPU モードからレイテンシ モードに変更することで表示できます。 これは、何がアプリケーションの実時間に影響を与えているかを把握するのに役立ちます。 詳細については、以下を参照してください。 Amazon CodeGuru Profiler を使用して組織の二酸化炭素排出量を削減する.

画像

テストケースの生成

アマゾン コード ウィスパラー 境界値、エッジケース、およびテストが必要な可能性のあるその他の潜在的な問題を考慮することで、テスト ケースを提案し、コードの機能を検証するのに役立ちます。 また、Amazon CodeWhisperer を使用すると、単体テスト用の反復コードの作成を簡素化できます。 たとえば、INSERT ステートメントを使用してサンプルデータを作成する必要がある場合、Amazon CodeWhisperer はパターンに基づいて必要な挿入を生成できます。 ソフトウェア テストの全体的なリソース要件は、リソースを大量に消費するテスト ケースを特定して最適化するか、冗長なテスト ケースを削除することによって削減することもできます。 改善されたテストスイートは、エネルギー効率の向上、リソース消費の削減、無駄の最小化、作業負荷の二酸化炭素排出量の削減により、アプリケーションをより環境に優しいものにする可能性があります。

Amazon CodeWhisperer の実践的な体験については、以下を参照してください。 Amazon CodeWhisperer でソフトウェア開発を最適化する。 この投稿では、Amazon CodeWhisperer からのコードの推奨事項を紹介しています。 Amazon SageMakerスタジオ。 また、データセットの読み込みと分析のためのコメントに基づいた推奨コードも示します。

まとめ

この投稿では、Amazon CodeWhisperer が開発者が最適化され、より持続可能なコードを作成するのにどのように役立つかを学びました。 高度な ML モデルを使用して、Amazon CodeWhisperer はコードを分析し、効率を向上させるためのパーソナライズされた推奨事項を提供します。これにより、コストが削減され、二酸化炭素排出量の削減に役立ちます。

Amazon CodeWhisperer は、微調整や代替アプローチを提案することで、開発者が機能を犠牲にすることなくリソースの使用量と排出量を大幅に削減できるようにします。 既存のコードベースを最適化したい場合でも、新しいプロジェクトのリソース効率を確保したい場合でも、Amazon CodeWhisperer は非常に役立ちます。 コード最適化のための Amazon CodeWhisperer と AWS Sustainability リソースの詳細については、次のステップを検討してください。


著者について

イシャドゥア サンフランシスコ ベイエリアを拠点とするシニア ソリューション アーキテクトです。 彼女は、AWS エンタープライズのお客様の目標と課題を理解することで成長を支援し、回復力とスケーラビリティを確保しながら、クラウドネイティブな方法でアプリケーションを設計する方法を案内しています。 彼女は、機械学習技術と環境の持続可能性に情熱を注いでいます。

アジャイ・ゴビンダラム AWS のシニア ソリューション アーキテクトです。 彼は、AI/ML を使用して複雑なビジネス上の問題を解決している戦略的な顧客と協力しています。 彼の経験は、中規模から大規模の AI / ML アプリケーションの展開に対して、技術的な方向性と設計支援を提供することにあります。 彼の知識は、アプリケーション アーキテクチャからビッグ データ、分析、機械学習にまで及びます。 休息中に音楽を聴いたり、アウトドアを体験したり、愛する人と過ごす時間を楽しんでいます。

エリック・イリゴエン アマゾン ウェブ サービスのソリューション アーキテクトとして、半導体およびエレクトロニクス業界のクライアントを重点的に担当しています。 彼は顧客と緊密に連携してビジネス上の課題を理解し、戦略的目標を達成するために AWS をどのように活用できるかを特定します。 彼の仕事は主に人工知能と機械学習 (AI/ML) に関連するプロジェクトに焦点を当てています。 AWS に入社する前は、Deloitte のアドバンスト アナリティクス業務のシニア コンサルタントとして、アナリティクスと AI/ML に焦点を当てた米国全土のいくつかの取り組みでワークストリームを主導しました。 エリックは、サンフランシスコ大学でビジネスの学士号を取得し、ノースカロライナ州立大学で分析学の修士号を取得しています。

スポット画像

最新のインテリジェンス

スポット画像