MCU開発に適すChatGPTの使い方

人間の質問に対し、AIが自然な回答を生成するChatGPT
人間の質問に対し、AIが自然な回答を生成するChatGPT

ChatGPT(Chat Generative Pre-trained Transformer)は、米)OpenAIが2022年11月に公開したAIチャットポットのことで、「生成可能な事前学習済み変換器」という意味です。人間の質問に対し、AIが自然な回答を生成します(Wikipediaより)。

MCU開発に、ChatGPTをどう活かすかについて私見を示します。

要約:MCU開発に適すChatGPTの使い方

  1. ChatGPTはMCU説明不足内容への質問、回答に使える
  2. ChatGPTは常に進化し続けるAIツールだが、MCUプログラミング適用は時期尚早
  3. AIが人類能力を超える予想の2045年シンギュラリティ前後ならMCU開発へ一部使える可能性あり

MCU製品開発の成功には、知識と経験が必要です。知識獲得の効率的ツールとして、現状のChatGPTは使えると思います。但し、AI回答をMCUプログラミングへ適用するには、現在はAIが未成熟です。

AIが十分に成熟し、人類能力を超えるSingularity(シンギュラリティ:技術的特異点、2045年と予想)近辺になれば、MCU開発へも使えるツールになる可能性はあると思います。

但し、AIがシンギュラリティを迎えても、開発MCU製品の顧客要求とMCU結合チューニングは、人間MCU開発者の経験が必須です。

ブラウザ検索との違い

知識獲得方法は、ブラウザ検索が一般的です。ブラウザ検索とChatGPTの違いを端的に説明しているのが、コチラのCNET Japan記事の冒頭部分です。

ブラウザ検索は、キーワードを入力し、関連性が高いサイトをリスト出力します。MCU開発者は、各サイトを閲覧し、その結果、知識を得ます。

一方、ChatGPTは、質問内容を入力し、AIが質問内容を分析後、大量のサイト情報から最も相応しいと「AIが思う回答」を自動生成します。

つまり、MCU開発者が、色々なサイトを閲覧する手間を省いて所望知識が得られる訳です。但し、AI生成回答が正しいか否かは、判りません。

そこで、Microsoft Bingを使って、ルネサスFSP(Flexible Software Package)を質問した時のAI生成回答を示します。注)FSPは、前投稿参照。

Microsoft Bingを使ってFSPを質問したChatGPT回答例
Microsoft Bingを使ってFSPを質問したChatGPT回答例

結構、的を射た回答をしていると思います。また、詳細情報に、関連サイトリンクもありますので、AI回答の正確さを質問者が検証することも可能です。

さらに、AIが想定する追加質問例もあります。現在Bing質問数は、1日に2000の上限がありますが、ブラウザ検索よりも効率的に、MCU説明不足内容を質問でき、回答を得ることができます。

注)ブラウザ検索では、複数サイトから得る情報の多様性があります。この多様性をノイズと考えるか否か、筆者個人は、多様性あり&最終回答を自分で考える方を好みます。

ChatGPTとMicrosoft Bing、Google Bard

ChatGPTもバージョンアップし最新版GPT-4は、大量の文章、大量の高性能コンピューターチップを使う巨大AIモデルです。OpenAI)CEO:サム・アルトマン氏は、AIのさらなる発展に新しい開発手法が必要だと語っています。

最新GPT-4を無料で使えるのが、前章のMicrosoft Bing、待機リスト登録で使えるのがGoogle Bardです。Bardは、現在日本語非対応のようです。

前章CNET Japan記事に、BingとBardのAI回答の違いが分析されています。

MCUコーディングの適用

上手く質問すれば、ChatGPTから、AIコーディング回答が得られます。しかし、それをそのまま実開発へ使えるかについては、いずれのサイトも現在懐疑的です。

筆者も、同じ考えです。

特に、MCUプログラミング(コーディング)は、他のPCソフトウェア開発やクラウドソフトウェア開発に比べ地味で、MCU開発者も少数派です。

ChatGPT活用コーディングは、今後益々盛んになるでしょう。その結果、ネットに、多数派ソフトウェア開発者の成功/失敗事例が多く掲載されます。AIは、これら事例を学習します。

これら多数派の事例をAIが十分学習した後、我々少数派MCUソフトウェア開発へ適用しても遅くはないと思います。その理由が、次章です。

AIコーディング進化時のMCU開発者経験とスキル

AIコーティング進化時のMCU開発者経験とスキル
AIコーディング進化時のMCU開発者経験とスキル

仮にChatGPTが、そのままMCU開発に使えるコーディングを正確に出力したとします。実はこれは、現在のMCUベンダ提供のサンプルコードに相当します。

つまり、ChatGPTの進化を待つまでもなく、現在でも単機能の正確動作コードは得られる訳です。ここが、多数派ソフトウェア環境と、MCUソフトウェアの大きく異なる点です。

MCUソフトウェアは、単体動作サンプルコードを、ベンダが多数提供済みです。

MCUソフトウェア開発者は、これら単体サンプルコードを、顧客要求やMCU性能に見合うように複数組合せ、期間内に上手く動作するよう製品化するのが、主な業務内容です。

例えば、低コストで性能制約も多いMCUを使い、単体コードの優先度設定や割込み処理設定を行い、複数コードを結合動作させるチューニングです。IoT MCUならば、RTOS対応やセキュリティ関連がチューニングに加わり、さらに複雑化します。

チューニングの幅は、顧客要求や適用MCU、製品の展開予定などにより大きく変わります。MCU開発者には、これら変化に即応できる開発経験やスキルが求められます。

例えシンギュラリティになっても、開発MCUの製品化、顧客要求とMCU結合チューニングは、AI任せにはできない「人間MCU開発者の腕の見せ所」になると思います。

つまり、この腕を磨いて人間MCU開発者も進化しましょう、と筆者は言いたい訳です。