bio_img_japan-community

MATLAB ユーザーコミュニティー

MATLAB & Simulink ユーザーコミュニティー向け日本語ブログ

組み込み AI を加速する AI コーディングエージェント

※この投稿は 2026 年 6 月 8 日に The Artificial Intelligence へ 投稿されたものの抄訳です。

Arkadiy Turevskiy Guest blogger: ゲストブロガー: Arkadiy Turevskiy

Arkadiy Turevskiy は MathWorks における AI および制御製品のプロダクトマネージャーです。Arkadiy は 20 年以上にわたり MathWorks に在籍しています。MathWorks 入社前は Pratt & Whitney で航空機エンジン制御システムを設計していました。

私はある特定のワークフローに従って、MATLAB から組み込みターゲットへ深層学習モデルを実装します。シミュレーション速度やコード生成のために、Simulink でどの Deep Learning Toolbox ブロックを使うべきかを分かっています。制約のあるプロセッサにモデルを収めるために、いつ枝刈り、射影、量子化を適用すべきかも分かっています。そうした知見は長年かけて培ってきました。
初めてこのワークフローの支援を Claude Code に頼んだとき、前提知識は何も与えず行ったところ、私なら最初から避けるようなアプローチにトークンを費やし、私ならすぐ使うだろうツールも見落としていました。
それが私の埋めたかったギャップでした。
この数週間、同僚の Lucas Garcia と自分たちの知識・経験を整理し、もどかしい試行錯誤を避けられるようエージェントに渡すための Embedded AI 向けスキルファイルを作ってきました。ついにこのスキルを皆さんに紹介できることをうれしく思います: embedded-ai-deployment

Embedded AI とは何を意味するのか

Embedded AI とは、リソース制約のあるハードウェア上で動作し、制御ロジック、信号処理、アプリケーションコードと統合され、より大きなエンジニアリングシステムの一部として検証される AI のことです。モデル精度は必要条件ですが十分条件ではありません。アルゴリズムは現実世界の制約下でも正しく振る舞い、なおかつ保守可能でなければなりません。
このスキルは、大半のプロジェクトをカバーする 2 つのパターンを扱います。
  • Pattern 1 は、ARM Cortex-M、Cortex-A/R、DSP などの軽量ハードウェア上で動作する小規模モデル(500 KB 未満)向けです。Pattern 1 には 2 つの経路があります。1 つ目では、Deep Learning Toolbox または Statistics and Machine Learning Toolbox を使って MATLAB 上で直接モデルを学習します。2 つ目では、PyTorch や ONNX などのサードパーティ製フレームワークから事前学習済みモデルを持ち込み、エージェントがそれを dlnetwork として取り込みます。そこから先の流れは同じで、エージェントは目的に応じて圧縮処理(枝刈り、射影、INT8 量子化のいずれかまたは組み合わせ)を適用し、ネットワークを Simulink に統合してシステムレベルのシミュレーションを行い、Embedded Coder で C コードを生成します。
  • Pattern 2 は、x86、GPU、Cortex-A などの高性能ハードウェア上で動作する大規模モデル(1 MB 超)向けです。エージェントは、MATLAB Coder Support Package for PyTorch and LiteRT を使って、PyTorch または LiteRT モデルから直接 C/C++ を生成し、ネイティブ側での再ビルドは不要です。
Decision tree showing how the skill routes a project to Pattern 1 or Pattern 2 based on model origin, model size, and target hardware
今回紹介するスキルは、モデル、ターゲット、制約について短く対話した後で、適切なパターンを自動的に選択します。

簡単なデモ

こちらは、PyTorch の LSTM を取り込み、Cortex-M7 向けに圧縮し、C コードを生成する Pattern 1 をエージェントが進めていく様子です。
このデモは音声なしで再生され、速度を上げて表示されています。
注目すべき点がいくつかあります。
  • エージェントは各ワークフローステップのたびに一度止まり、次に進む前に確認します。それぞれの MATLAB スクリプトを、実行前または実行後に確認できます。
  • ワークフロー開始前に、インストール済みのツールボックスとサポートパッケージを検出するため、手元にないものを使うよう求められることはありません。
  • レイヤーごとの長いテキスト出力ではなく、Deep Network Designer を開いてアーキテクチャを視覚的に確認します。
  • 取り込み後には、元のモデル(PyTorch) と再構築したモデル(MATLAB)を並行で実行し、平均絶対誤差と最大誤差を明示的に報告します。
これらの振る舞いは、スキルファイル内でルールとして明示的に定義されています。

スキルファイルの内容

このスキルは Markdown で構成されており、最上位の SKILL.md と、pattern1/pattern2/ に分かれた十数個の参照ファイルから成り、環境検出、プロジェクト検出、AI 検証のための共通リファレンスも含まれます。SKILL.md 自体は、判断ルール、推奨されないレガシー関数の一覧(trainNetworkDAGNetworkimportONNXNetwork など)、そして明示的な ALWAYS / ASK FIRST / NEVER ルールを備えたルーターと言えます。
いくつか例を挙げます。
  • ALWAYS :各ワークフローステップごとに MATLAB スクリプトを作成し、その場しのぎのコマンドは決して実行しないこと。そうすれば、エンジニアは内容を読み、再実行し、バージョン管理下に置けます。
  • ASK FIRST:コード生成の前にはターゲットは ARM Cortex-M かどうかを確認します。その場合は高速化のために CMSIS-NN を有効化します。
  • NEVER:ユーザーに代わってサポートパッケージをインストールしないこと。
その結果、経験豊富な組み込みエンジニアが若手チームメイトに期待するような振る舞いをするエージェントになります。つまり、手順が体系的で、透明性があり、必要なら立ち止まって確認を取ります。

なぜこれが重要なのか

エージェント型コーディングツールは高速ですが、そこで生成されるコードは非決定的で検証が難しいものです。Embedded AI スキルはこのギャップを埋めます。エージェントは自然言語による反復の速さを提供し、一方で MATLAB、Simulink、Embedded Coder は決定的なコード生成、システムレベルシミュレーション、そして SIL、PIL、HIL 検証への道筋を提供します。すべてのステップは、読み、再実行し、バージョン管理できる MATLAB スクリプトおよび Simulink モデルとして残ります。
エージェントが入力作業を担い、主導権はあなたが持ち続けます。

ぜひ試してみてください

必要なのは、Deep Learning Toolbox、MATLAB Coder、Embedded Coder、およびリポジトリの README に記載されたサポートパッケージを備えた MATLAB R2026a です。また、MATLAB Agentic ToolkitSimulink Agentic Toolkit も必要です。これらはどちらも、エージェントが MATLAB や Simulink とやり取りするために使う MCP サーバーを提供します。今回は Claude Code で検証しましたが、このスキル形式は他のコーディングエージェントにも比較的容易に移植できるはずです。
スキルフォルダーをプロジェクトの .claude/skills/ ディレクトリに配置し、エージェントを起動して、何をデプロイしたいのかを説明してください。エージェントはまず最初にモデル、ターゲットハードウェア、制約について質問することになります。
これを使って何か作ったら、ぜひその話を聞かせてください。感想やフィードバックを下のコメント欄にぜひお寄せください。
|
  • print

コメント

コメントを残すには、ここ をクリックして MathWorks アカウントにサインインするか新しい MathWorks アカウントを作成します。