Amazon Web Services ブログ
AWS での生成 AI と CFD シミュレーションを使用した概念設計
この投稿では、生成AI技術を従来の物理ベースの計算流体力学(CFD)シミュレーションと組み合わせることで、自動車、モータースポーツ、航空宇宙分野の新しい設計コンセプトをたった1枚の画像から探索できる迅速な概念設計プロセスを作成できることを示します。
AWS Batch などの AWS サービスとオープンソースの TwinGraph を使用することで、 AWS 上のイベント駆動型ワークフローに組み込むことができ、数百万のシナリオを検討できるように拡張できます。TwinGraph は、予測モデリング、シミュレーション、Level 4 Digital Twin ワークフローを大規模にデプロイできるオープンソースの TwinFlow framework 内のモデルオーケストレーションモジュールです。
機械学習 (ML) アルゴリズムの生成能力は、さまざまな業界で大きな可能性を秘めています。生成 AI 手法は、大量のデータで事前にトレーニングされた大規模な機械学習モデルによって強化されます。これらのモデルの影響は、自然言語処理用のトランスフォーマーモデル、画像操作用の Stable Diffusion のようなテキストを画像変換するモデル、ゼロショット分類用の敵対的生成ネットワーク(GAN)など、いくつかの分野で見られています。
なぜこれが重要なのか?
現在では、Stable Diffusion のような AI 画像生成サービスを使用して、自動車、飛行機、その他の乗り物の概念設計ができます。ただし、これらの方法では、基礎となる物理法則や、騒音レベルやそれによって費やされる余分なエネルギー使用量などの設計上の制約が考慮されていないため、空力抵抗などの性能要因を理解するための基礎が欠けています。エネルギー効率と持続可能性がますます重視される時代にあって、概念設計はスタイルガイドラインに従うだけでは不十分です。
過去数十年にわたって、CFD 主導型の設計最適化は、多くの業界で大きく発展してきました。一般的なワークフローでは、通常、従来の物理ベースのソルバーを使用してさまざまな個別パラメーター (翼の弦の長さ、リアウィンドウの角度など) に対して複雑な形状をシミュレートし、パラメータ空間全体にわたって最適な設定を見つけます。
これらのソルバーは高い精度を提供しますが、計算量が多く時間がかかるため、設計のペースが遅くなります。これらの計算上の課題を克服するために、従来の CFD モデルと ML アプローチを組み合わせることへの関心が高まっています。設計プロセスに生成 AI を使用すると、検討中のシステムの物理的に意味のある設計構成に基づいて、ノンパラメトリックな方法でパラメータ空間を効率的に探索できます。
生成 AI を設計の最適化にどのように適用できるかをお見せしたいと思います。このブログでは、車両の空気抵抗を低減するためのより優れたソリューションを見つける際の効果に焦点を当てます。このアプローチは、初期設計段階の生成 AI と、車両の空気抵抗の評価のための OpenFOAM CFD シミュレーションを組み合わせたものです。
このプロセスを通じて、ユーザーがノンパラメトリック設計最適化問題を、堅牢なインフラストラクチャを備えた AWS での大規模な実行に適したアルゴリズムとして定義できるワークフローを開発しました。これは、動的なタスク オーケストレーション、来歴情報の収集、およびスケーリングという、ワークフローに必要な面倒なタスクを引き受けてくれる Twingraph によって支えられています。
図1: 生成 AI 技術と数値流体力学シミュレーションを組み合わせた、自動車の空気力学の反復設計最適化のための全体的なワークフロー
Stable Diffusion によるデザインの繰り返し
Stable Diffusion は、テキスト主導型の操作による画像生成を可能にする生成 AI モデルです。Stable Diffusion の基盤となるアーキテクチャは、次の 3 つの主要な要素で構成されています。
- 画像に描かれている物体や人物の意味を捉える、画像の潜在的な表現を取得する
- この表現にガウスノイズを段階的に追加する
- ノイズを除去して画像を再構築すると、テキストプロンプトのセマンティクスを反映した、元の画像の修正されたバリアントが得られる
例として、図 2 では、Stable Diffusion を使用して自動車設計を変更した結果を示しています。まず、セダンのストックイメージから始めて、スポーティな空力設計に変換します。これにより、元の画像から変更された画像への一連の変換が行われました。 この例では、事前トレーニングされた Stable Diffusion モデルが画像生成に使用されましたが、これは個々の自動車メーカーの設計思想に合わせて微調整できます。
図2 : Stable Diffusion v2.1 の image-to-image のパイプラインを使用して、空気力学を改善し、車をよりスポーティにするための適切なプロンプトが与えられた場合の自動車デザインの連続的な変換
しかし、この変換は基礎となる物理特性に基づくものではなく、Stable Diffusion アルゴリズム内の画像の凝縮された数学的表現である潜在空間埋め込みと並行してプロンプトを解釈したものです。一方、この解釈は、公開されたスポーツカーのトレーニングデータに基づいたモデルのため、類似した外観のデザインになりがちです。変換パスが車両の空気力学を改善するかどうかを正確に評価するには、画像を高精度の CFD シミュレーションに使用できる 3D 表現に変換するのが自然な手順です。
NeRF を用いた点群の生成
Neural Radiance Fields (NeRF) は、1つ以上の画像を完全な 3D 表現に変換するうえで非常に有望なアルゴリズムです。ブートストラップされた NeRF と敵対的生成ネットワーク (GAN) を組み合わせることで、オブジェクトの複数のポーズを再構築して予測を強化および改善できます。
これを機能させるには、自動車の画像を NeRF に入力して符号付き距離関数 (SDF) を取得し、図 3 に示すような点群表現を構築します。3D オブジェクト再構成用に Pascal3D データセットを使用して NeRF モデルを微調整しました。
図 3 : NeRF を使用して取得した車の点群 (下) をベース画像 (上) を使用して取得し、その画像を自動車を表す 3D 構造に変換
点群からの表面トポロジーの再構築
点群表現には、車両周囲の空気の流れの挙動を理解するために必要な、重要な接続性や表面トポロジ情報が不足しています。
点群から表面を再構築するために、最初に非構造化多角形アルファ形状メッシュ (非凸包の場合) を生成しました。これは、Open3D ライブラリを使用した粗いドロネー三角形分割によって実現しました。この計算幾何学的手法は、NeRF から生成された点群内に表示される点を含む包含表面を識別します。
メッシュをさらに改良するために、アルファ形状から推定された法線とともに、表面上に生成された点 (初期三角形分割のノード) を抽出しました。 この表面点群は、まばらなデータから高速に表面再構成を実行できる機械学習手法であるニューラルカーネル表面再構成 (NKSR) アルゴリズムに取り込まれます。最終結果を図 4 に示します。この手法では表面の詳細はキャプチャされませんが、生成されたメッシュによって車の全体的な形状がほぼモデル化されます。
図 4: NKSR を使用して生成された表面メッシュ。元の点群 (上) と三角形メッシュ (下) は一般的な地形的特徴において良好な一致を示しています。
OpenFOAM で CFD シミュレーションを実行する
OpenFOAM を使用して車両の周囲の流れ場を計算しました。 前のステップで生成した .obj ファイルの blockMesh と SnappyHexMesh を使用して、角柱状の境界層セルを持つ非構造化ヘキサ主体メッシュを構築します。
この投稿では、業界で通常採用されているレベルよりもはるかに低い洗練レベルを意図的に選択しました (必要に応じてこれらのレベルを上げることができます)。 メッシュ数は平均して約 100 万セルでした。これはジオメトリ自体によって若干変化します。 プロセスの CFD 部分を高速化するために、k-omega SST モデルを使用した定常状態の RANS シミュレーションに限定しました (産業アプリケーションの場合は、これを拡張して、より忠実度の高いハイブリッド RANS-LES または WMLES メソッドを使用できます)。
最後に、今回のセットアップでは、圧力結合方程式の半陰解法 (SIMPLE) アルゴリズムに基づく simpleFoam ソルバーを使用しました。 表 1 にパラメータを示します。
表 1: 数値流体力学シミュレーションに使用される定数
図 5 の画像は、初期の自動車設計における流線と表面圧力を示しています。 このシミュレーション例では、メッシュに 425,045 個のセルを使用しました。
図 5: 生成された自動車メッシュの周囲の流れ場を視覚化した流線 – これらは流体速度を示し、自動車表面の色は表面圧力の大きさを示します。
後処理中に抗力係数 (Cd) 値を計算するために、初期設計に基づいて基準ホイールベース長と前面表面積を導き出しました。これらの基準値はすべての観測にわたって比較的一定のままです。 パイプラインの最終的な抗力係数 (Cd) 値を使用して、生成された設計オプションを評価およびランク付けし、最適な中間選択肢を見つけました。
AWS のシミュレーションガイド付き設計ワークフローへの統合
全体的なワークフローには、画像生成、Stable Diffusion、NeRF による点群、Open3d と NKSR によるメッシュ生成、そして最後に OpenFOAM CFD シミュレーションという 5 つの主要なコンポーネントがあります。 これらはそれぞれ、TwinFlow フレームワーク内の TwinGraph オーケストレーション モジュールによってコンテナ化され、オーケストレーションされます。
このワークフローは AWS Batch を使用してデプロイし、必要に応じてスケーリングして最適な設計を見つけました。各ワークフローコンポーネントの特定の要件に応じて、CPU と GPU の両方のアーキテクチャを活用することで、必要な規模を実現しました。
図 6: リモート クライアントとの接続から、TwinGraph でのアルゴリズム パイプラインの起動、AWS Batch でのジョブの実行、結果の視覚化までの実行ワークフローの AWS アーキテクチャ図。
生成された多数の画像に対して複数のサイクルにわたって実験を繰り返し、各実験の結果を Amazon Simple Storage Service (Amazon S3) に自動的にアップロードしました。 これにより、結果が永続的に保存されるようになりました。 各実験で必要なメタデータの出所情報は、その後の分析に備えて Amazon Neptune グラフ データベースに自動的にアップロードされました。
結果が生成されると、GPU インスタンスを使用して Amazon S3 から関心のある特定の結果を取得できます。NICE DCV (AWS 製品) と呼ばれる高性能リモートデスクトッププロトコルを使用して可視化インターフェイスを実行しました。
全体として、TwinGraph は非同期方法でタスクを調整します。つまり、AWS Batch を使用して複数の実験を同時に大規模に実行できます。
結果
数値実験の一環として、一般的なセダンを使用して、図 1 と同じ初期化を使用して、Stable Diffusion の image-to-image 生成、表面再構成、および CFD シミュレーションの 10 の異なるインスタンス (10 種類) を実行しました。
次の画像生成シーケンスサイクルのシードには、最も低い抗力係数 (Cd) 値に対応するバリアント画像を使用しました。設計の反復プロセスをきめ細かく導くため、図1と比較して、画像から画像への変化の強度を大幅に減らしました。
このサイクルを20回 (または20世代) 繰り返し、その結果を図7に世代ごとの最小抗力係数 (Cd) として、図8に生成された各設計の抗力係数 (Cd) 値のヒートマップとしてプロットしています。
次の画像生成シーケンス サイクルのシードとして、最も低い抗力係数 (Cd) 値に対応するバリアント画像を使用しました。 設計の反復プロセスを細かいレベルでガイドするために、図 1 と比較して、 image-to-image の変更の強度を大幅に低減しました。
このサイクルを 20 回 (または 20 世代) 繰り返しました。結果は、世代ごとの最小抗力係数 (Cd) として図 7 にプロットされ、生成された各設計の抗力係数 (Cd) 値のヒートマップとして図 8 にプロットされています。
図 7: 世代ごとの最小抗力係数。後続の世代のバリアントの作成に使用される画像バリアントに対応します。 一般的な下降傾向は、車両の中間構成により単調ではありませんが、パイプラインが世代を通じて最良のバリアントの抗力性能を向上させていることを示しています。
図 7 は、平均抗力係数 (Cd) が初期値 0.46 から約 0.4 まで徐々に減少することを示しています。 連続した世代の間、減少は非単調です。 これは、最適化手順のノンパラメトリックかつ非線形の性質によるもので、画像生成プロセスで抗力を減らすという最終目標に向かって自動車のデザインを任意に変形させることができます。
さらに、中間設計構成には不完全なコンポーネントが含まれているため、画像生成プロセスで特徴が解決されるまで、数世代にわたって抗力が増加します。 これを、図 8 に示す 20 世代の各バリアントに対応する抗力係数を通じてさらに調査しました。平均抗力係数 (Cd) は中間世代でわずかに増加しますが、20 世代の終わりに向かって徐々に減少します。
図 8: 各世代 (横軸、画像生成、メッシュ再構築、およびシミュレーションからなるシーケンス) 中の 10 のバリアントのそれぞれ (縦軸) に関連付けられた抗力係数の図。 青色の領域は抗力が低いことを示しており、世代が進むにつれて青色の領域が増加する傾向が観察できます。
図 9 : 抗力係数の最適なバリアントの世代間の遷移シーケンス。車のボンネットが滑らかになり、フロントガラスの角度が減少することを示しています。
図 9 は、世代を超えた自動車設計の進化についての洞察を示しています。 車のボンネットは、材料を大幅に除去して曲面形状に適応します。 また、水平線に対するフロントガラスの角度が減少し、車の後部セクションの曲率がわずかに変化します。 全体的に見ると、これらは生成 AI プロセスによって引き起こされる微妙ではあるが重要な変化であり、自動化された物理情報に基づいたパイプラインを通じて情報に基づいた設計の選択を導く可能性を示しています。
制限事項と今後の取り組み
ここで紹介するアプローチは、美的感覚と持続可能性に焦点を当てたノンパラメトリック設計の最適化を加速させる可能性を秘めています。しかし、各段階には克服すべき限界があります。
事前にトレーニングされた Stable Diffusion ネットワークの重みが (さらなるトレーニングにより) 変化および進化すると、予測不可能な形で変化するため、再現性が問題になります。 また、この方法を使用して表面トポロジーと粗さを正確にキャプチャすることは、フル解像度のコンピュータ支援設計 (CAD) メッシュと比較して、点群からの損失の多い再構成により複雑になります。 これは正確な抗力計算にとって重要です。
ただし、生成 AI アルゴリズムの改善により、機械学習と古典的な物理ベースのシミュレーションを組み合わせたワークフローが実用的なメリットをもたらすことが期待できます。 複数のコンポーネントを単一のアルゴリズム パイプラインに統合し、基盤となるインフラストラクチャ、コンピューター アーキテクチャ、プログラミング モデルの選択に依存せずに拡張できます。 これにより、将来の設計最適化コンセプトを複数のドメインにわたってより簡単かつ確実に展開するためのテンプレートが提供されます。
結論
この投稿では、生成 AI 技術と物理ベースの CFD シミュレーションを統合する可能性について説明しました。 CFD シミュレーションを使用して、物理学に基づいた抗力係数 (Cd) を使用して画像生成プロセスをガイドする機能を備えた方法論を示しました。
また、これらの画像を 3D メッシュに変換する方法も紹介しました。これらのメッシュはCFDシミュレーションに使用されましたが、CADプログラムにインポートして実際の設計プロセスで使用することもできます。
何よりも、AWS Batch と TwinGraph のおかげで、これを単一のイベント駆動型のワークフローに統合しました。これにより、機械学習とシミュレーションのタスクをスケールアウトできます。
この作業は生成 AI モデルを使用した推論の実行に重点を置いていますが、Amazon Bedrock と Amazon SageMaker JumpStart を使用してモデルを微調整する際の開発者エクスペリエンスを向上させることもできます。 Amazon Bedrock は、API を介して主要な AI スタートアップ企業 (および Amazon 自体) の基盤モデルを提供するフルマネージド サービスです。 Bedrock を使用すると、AWS の安全で信頼性の高いインフラストラクチャを使用してプライベートにカスタマイズおよび拡張できる生成 AI アプリケーションの開発をスピードアップできます。 SageMaker Jumpstart は、管理された環境でこれらの基礎モデルをトレーニングし、微調整する機能を提供します。
このアプローチを産業界に適用するにはまださらなる開発が必要ですが、生成 AI 技術と物理ベースのシミュレーションを統合できる可能性を示しています。この可能性は自動車のCFD設計だけにとどまらず、他の多くの科学・工学分野にも応用できると期待されています。
Dr. Vidyasagar Ananthan
Vidyasagar は、産業および学術環境におけるハイパフォーマンスコンピューティング、数値シミュレーション、最適化手法、ソフトウェア開発を専門としています。AWS では、Vidyasagar は予測モデルとシミュレーション技術を開発するシニアソリューションアーキテクトです。
Satheesh Maheswaran
Satheesh は科学計算の分野で18年以上の経験があり、特に産業環境と学術環境におけるシミュレーションとデータ分析に重点を置いてきました。AWS では、Satheesh はシニアソリューションアーキテクトとして、予測シミュレーションと HPC と機械学習アプローチの融合に重点を置いています。
Neil Ashton
Neil は元 F1 および NASA のエンジニアで、乱流モデリング、ディープラーニング、高性能コンピューティングに特に重点を置いた最先端の計算流体力学手法の開発を専門としています。アドバンスト・コンピューティング・アンド・シミュレーション製品チームのプリンシパル・コンピュテーショナル・エンジニアリング・スペシャリストです。
Srinivas Tadepalli
Srinivas は、AWS の HPC 市場開拓のグローバル責任者であり、商業部門と公共部門の顧客の両方を対象とするさまざまな HPC およびアクセラレーテッドコンピューティングワークロードを対象とした包括的な GTM 戦略の構築を担当しています。以前はダッソー・システムズに勤務し、生物医学工学の博士号を取得しています。
翻訳はソリューションアーキテクトの 山田航司 が担当しました。原文はこちらです。