ChatGPT(Chat Generative Pre-trained Transformer)は、米)OpenAIが2022年11月に公開したAIチャットポットのことで、「生成可能な事前学習済み変換器」という意味です。人間の質問に対し、AIが自然な回答を生成します(Wikipediaより)。
MCU開発に、ChatGPTをどう活かすかについて私見を示します。
要約:MCU開発に適すChatGPTの使い方
- ChatGPTはMCU説明不足内容への質問、回答に使える
- ChatGPTは常に進化し続けるAIツールだが、MCUプログラミング適用は時期尚早
- 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は、前投稿参照。
結構、的を射た回答をしていると思います。また、詳細情報に、関連サイトリンクもありますので、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開発者経験とスキル
仮にChatGPTが、そのままMCU開発に使えるコーディングを正確に出力したとします。実はこれは、現在のMCUベンダ提供のサンプルコードに相当します。
つまり、ChatGPTの進化を待つまでもなく、現在でも単機能の正確動作コードは得られる訳です。ここが、多数派ソフトウェア環境と、MCUソフトウェアの大きく異なる点です。
MCUソフトウェアは、単体動作サンプルコードを、ベンダが多数提供済みです。
MCUソフトウェア開発者は、これら単体サンプルコードを、顧客要求やMCU性能に見合うように複数組合せ、期間内に上手く動作するよう製品化するのが、主な業務内容です。
例えば、低コストで性能制約も多いMCUを使い、単体コードの優先度設定や割込み処理設定を行い、複数コードを結合動作させるチューニングです。IoT MCUならば、RTOS対応やセキュリティ関連がチューニングに加わり、さらに複雑化します。
チューニングの幅は、顧客要求や適用MCU、製品の展開予定などにより大きく変わります。MCU開発者には、これら変化に即応できる開発経験やスキルが求められます。
例えシンギュラリティになっても、開発MCUの製品化、顧客要求とMCU結合チューニングは、AI任せにはできない「人間MCU開発者の腕の見せ所」になると思います。
つまり、この腕を磨いて人間MCU開発者も進化しましょう、と筆者は言いたい訳です。