この実践ガイドでは、MATLAB と Python® ベースのモデルを組み合わせて、AI ワークフローに統合する方法をご紹介します。まずは、Deep Learning Toolbox を使用した MATLAB、PyTorch®、TensorFlow™ 間のモデル変換について解説します。
MATLAB に PyTorch と TensorFlow を統合することで、以下が可能になります。
- プラットフォームやチームをまたいだ連携の促進
- モデルの性能評価やシステム統合のテスト
- エンジニアード システムの設計における MATLAB と Simulink ツールの活用
PyTorch/TensorFlow モデルを MATLAB にインポートする理由
PyTorch や TensorFlow のモデルを MATLAB のネットワークモデルに変換すると、関数やアプリを含む MATLAB の組み込み AI ツールと一緒に使用できます。これにより、転移学習、説明可能な AI やモデルの検証、システムレベルのシミュレーションとテスト、ネットワーク圧縮、ターゲット環境への展開に向けた自動コード生成などが可能になります。
インポートに向けた PyTorch/TensorFlow モデルの準備
PyTorch や TensorFlow のモデルを MATLAB にインポートする前に、正しい形式でモデルを準備して保存する必要があります。Python では、以下のコードを用いてモデルを準備できます。
PyTorch インポーターでは、トレース済みの PyTorch モデルが必要です。トレース後は、PyTorch モデルを保存します。PyTorch モデルのトレース方法については、Torch のドキュメンテーション「Tracing a function」を参照してください。
X = torch.rand(1,3,224,224)
traced_model = torch.jit.trace(model.forward,X)
traced_model.save("torch_model.pt")
TensorFlow モデルは SavedModel 形式で保存する必要があります。
model.save("myModelTF")
PyTorch/TensorFlow モデルのインポート方法
PyTorch や TensorFlow のモデルは、わずか 1 行のコードで MATLAB にインポートして、MATLAB のネットワークモデルに変換することができます。
importNetworkFromPyTorch
関数を使用し、対象の PyTorch モデルに合わせた正しい入力サイズを PyTorchInputSizes
に指定します。PyTorch モデルにはもともと入力層が含まれていないため、この指定により、インポート時に画像入力層がネットワークモデルに作成されます。詳細については、「PyTorch や TensorFlow からモデルをインポートするためのヒント」を参照してください。
net = importNetworkFromPyTorch("mnasnet1_0.pt",PyTorchInputSizes=[NaN,3,224,224])
TensorFlow からネットワークモデルをインポートするには、importNetworkFromTensorFlow
関数を使用します。
PyTorch/TensorFlow モデルの対話的なインポート
ディープ ネットワーク デザイナー アプリを使用して、PyTorch モデルを対話的にインポートすることができます。インポートしたネットワークモデルは、アプリ上で表示、編集、解析が可能です。Simulink に直接エクスポートすることもできます。
MATLAB から PyTorch/TensorFlow へのモデルのエクスポート方法
MATLAB のネットワークモデルは TensorFlow や PyTorch にエクスポートして共有できます。TensorFlow には exportNetworkToTensorFlow
関数を使用して直接エクスポートし、PyTorch には exportONNXNetwork
関数を用いて ONNX™ 経由でエクスポートします。
exportNetworkToTensorFlow(net,"myModel")

このトピックについてさらに詳しく
同時実行とモデル変換の比較
まず、目的のタスクに最も適したワークフローを選択できるように、PyTorch または TensorFlow モデルを MATLAB 環境で同時実行する場合と、外部プラットフォームのモデルを MATLAB のネットワークモデルに変換する場合を比較します。
同時実行 |
モデル変換 |
|
---|---|---|
PyTorch / TensorFlow モデルに対応 |
はい |
いいえ |
Simulink でのモデルのシミュレーション |
はい |
はい |
コードの自動生成 |
いいえ |
はい |
説明可能性の手法の適用 |
物体検出モデルのみ対応 |
はい |
堅牢性・信頼性の検証 |
いいえ |
はい |
ローコード AI アプリの使用 |
いいえ |
はい |
ネットワークの圧縮 |
いいえ |
はい |
MATLAB での Python ベースのモデルの同時実行
PyTorch や TensorFlow のモデル、または任意の Python コードを MATLAB から直接呼び出すことができます。これにより、たとえば、最も正確な予測を行うモデルを見つけたい場合などに、MATLAB で構築した AI ワークフロー内で Python ベースのモデルを比較できるようになります。
Simulink での Python ベースのモデルの同時実行
Simulink の同時実行ブロックを使用し、PyTorch、TensorFlow、ONNX、カスタム Python モデルをシステム内でシミュレーションしてテストします。これにより、設計の反復、モデルの動作評価、システム性能のテストが可能になります。
AI モデルに Simulink を使用する理由
AI とモデルベースデザインを組み合わせることにより、ディープラーニング モデルを大規模システムに統合する際のテストだけでなく、バーチャルセンサーの設計などの用途において、複雑なシステムの設計をより迅速かつ高度に進めることができます。
Python からの MATLAB の呼び出し
AI ワークフローにおいて MATLAB と Python を組み合わせるもう1つの方法は、Python 環境から MATLAB を呼び出すことです。この方法を利用すれば、MATLAB の分野別ツールを用いて Python モデルに入力するためのデータを準備したり、Python ベースの AI モデルの判断を可視化して解釈するために MATLAB の AI ツールを呼び出したりすることができます。
MATLAB Online でリポジトリを開く
MATLAB Online で、LLM と連携できます。MATLAB コードを含む File Exchange や GitHub® のリポジトリには、[MATLAB Online で開く] というボタンがあります。このボタンをクリックすると、リポジトリが直接 MATLAB Online で開きます。
このトピックについてさらに詳しく
MATLAB では、gpt-4、llama3、mixtral などの一般的な大規模言語モデル (LLM) に API 経由またはローカルにモデルをインストールすることでアクセスできます。その後は、任意のモデルを使用してテキストを生成できます。また、MATLAB に組み込まれている事前学習済み BERT モデルを利用することもできます。
自然言語処理 (NLP) のための LLM
LLM は単語間の複雑な関係性や人間の言語に含まれる微妙な意味の違いを捉えることができるため、自然言語処理 (NLP) に変革をもたらしました。MATLAB から LLM を利用することは、NLP パイプラインの一部の機能にすぎません (MATLAB の NLP 向け AIを参照)。MATLAB のツールを活用することで、NLP パイプライン全体を構築できます。たとえば、Text Analytics Toolbox の関数を使ってテキストデータへのアクセスや前処理を行うことができます。
自然言語処理パイプライン。
リポジトリ: MATLAB を使用した LLM
MATLAB を OpenAI® Chat Completions API (ChatGPT™ の基盤)、Ollama™ (ローカル LLM 向け)、Azure® OpenAI サービスと連携させるために、「MATLAB を使用した LLM」リポジトリを利用することができます。
OpenAI API 経由で LLM にアクセス
このリポジトリ内のコードを使用することで、MATLAB 環境から OpenAI API に接続し、GPT-4 や GPT-4 Turbo などのモデルを使って、チャットボットの構築や感情分析など、さまざまな自然言語処理 (NLP) タスクを実行できます。OpenAI API と連携させるには、OpenAI API キーを取得する必要があります。API キーと料金の詳細については、「OpenAI API」を参照してください。
チャットボットの構築。
Azure OpenAI Service 経由で LLM にアクセス
Azure OpenAI Service を利用するには、まず Azure アカウントにモデルを展開し、そのモデルに対するアクセスキーを取得する必要があります。Azure OpenAI には、OpenAI 社と共同で開発された API が採用されており、Microsoft® Azure のセキュリティ機能が組み込まれています。「MATLAB を使用した LLM」リポジトリでは、MATLAB から Azure OpenAI Service に接続するためのコードが提供されています。
Ollama 経由でローカル LLM にアクセス
リポジトリ内のコードを使用して、MATLAB からローカルの Ollama サーバーに接続することで、llama3、mistral、gemma などの広く利用されているローカル LLM にアクセスできます。ローカル LLM は、手持ちのデータを活用して LLM の精度を高めることができる検索拡張生成 (Retrieval-Augmented Generation:RAG) などの自然言語処理タスクに利用できます。
検索拡張生成のワークフロー。
このトピックについてさらに詳しく
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)