令和AI、ChatGPT等のLLMによるハードウェア制御のソリューションを発表/サンプルコードのご紹介
[23/08/23]
提供元:PRTIMES
提供元:PRTIMES
〜LLMによる制御を安全・確実に行うための実行環境スイート「SnippetBox」を開発〜
株式会社令和AIは、ChatGPTに代表される大規模言語モデル※1(以下、LLM)を活用した、ハードウェア等外部リソース制御の領域におけるソリューション「SnippetBox」を発表します。また、ソリューションの一部分をフリーAPI版「SnippetChecker」として無料公開し、Pythonパッケージとして提供します。フリーAPI版「SnippetChecker」は、商用非商用問わず誰でも利用できます。
■ マン・マシン・インターフェイスとしてのAI
現在、テクノロジーの進歩により、ロボットやドローンなどの先進的なハードウェアの活用が進められています。
しかし、そうした先進的なハードウェアは、その操作もまた高度化しており、安全に利用するためには、人間が長い時間をかけて様々な技能を学習する必要があります。
株式会社令和AIは、そうした状況を終わらせるために、AI技術を活用したいと考えています。
マン・マシン・インターフェイスとしてのAIは、AIの側が人間の側に寄り添うことで、誰でも直感的に、高度なハードウェアを利用できることを目的とします。
□ マン・マシン・インターフェイスとしてのAIの概念図
[画像1: https://prtimes.jp/i/127932/2/resize/d127932-2-f224b3ecb0cb07b155d4-0.png ]
■ LLM生成コードによるハードウェアの制御
AIによるマン・マシンインターフェイスの代表的な応用が、LLMを使用した、自然言語指示によるハードウェア制御です。
ChatGPTに代表される高度なLLMを使用することにより、人間が、普段から使用している「言葉」を使って、先進的なハードウェアを操作できるようになります。
AIによるマン・マシンインターフェイスの実現には、AI-マシン・インターフェイス領域での技術の確立が求められますが、LLMによるハードウェア制御の分野では、制御のための部分的なプログラムコード(スニペット)を生成させ、その生成コードを実行することで、リソース制御を行う手法が用いられます※2。
こうした手法は、マイクロソフトが論文「ChatGPT Robotics」※3で提案した手法に基づいており、現在一般化が進んでいます。
■ SnippetBoxについて
スニペットによる制御の過程では、LLMが出力したコードを実行する必要が生じますが、LLM出力コードは本質的に安全ではないため、セキュリティと安定性の確保は一層の注意を必要とします。
そこで「SnippetBox」では、以下の3つの機能を組み合わせることで、スニペットの安全な実行を保証します。
ジェイルブレイクの可能性がある指示プロンプトを発見しフィルタリング
指示プロンプトが生成するスニペットを常に監視し、不正なコードの実行を防止
プリエンプティブな実行スケジューリングを実現するインタプリンタ実行環境
□ SnippetBoxシステム概念図
[画像2: https://prtimes.jp/i/127932/2/resize/d127932-2-85c224419f42a84401b1-1.png ]
■ なぜスニペットによる制御が必要なのか
ハードウェア制御など、リアルタイム性のある制御が必要とされる場合、LLMの実行を制御ループに組み込むことは、ニューラルネットワーク実行速度の観点から現実的ではありません。
しかし、LLMによる制御はマン・マシン・インターフェイスの領域で求められるので、ハードウェアの制御ループと同期的に実行する必要はありません。
通常、制御目的の更新は、数十秒に一度程度の間隔で実行すれば良い一方で、ハードウェア制御のロジックは数Hz以下の間隔で実行される必要があります。さらに、実際のデバイスを制御するドライバ処理は、遙かに高い周波数で動作しています。
そのため、それぞれのステップ毎にプログラムの実行レイヤーを構築し、AIの実行と制御ロジックの実行を切り分ける必要があります。
□ スニペットによる制御の概念図
[画像3: https://prtimes.jp/i/127932/2/resize/d127932-2-752fb199dd54913bbd31-2.png ]
■ なぜコンテナ化等の対策では不十分なのか
コンテナ技術による仮想化は、詳細が不明なソースコードを実行する際に、安全性を担保するためのサンドボックスとして利用されることがあります。しかしコンテナ化は、コンテナの外側にあるコンピューター環境にアクセス出来なくなるだけで、不適切な制御コードを生成させたり、ハードウェアに危険な行動を取らせたりという‘攻撃’を防御することは出来ません。
また、多くのコンテナ技術は、特定のソースコードをステップ・バイ・ステップで実行するインタプリンタ機能は持たず、仮想化された実行環境を提供するだけです。そのため、無限ループによるコンピューターリソースを食い潰し等を防ぐことは(それ単体では)出来ません。
そこで、プロンプトのフィルタリング・事前のコードチェックによる不適切なコードの検出と、インタプリタ実行環境によるコードの逐次実行制御環境が必要になります。
■ サンプルコードのご紹介
Pythonパッケージとして公開しているフリーAPI版「SnippetChecker」は、商用非商用問わず誰でも自由にご利用いただけます。
株式会社令和AIは、フリーAPI版「SnippetChecker」の機能の紹介と、実際の実装例となるサンプルコードの紹介を、ホームページ内「AIテック&実験サイト」※4で公開しました。
同サイトでは、ChatGPTとRaspberryPiを使用した、プロンプトエンジニアリングによるハードウェア制御の実際の例を、ソースコードも交えて紹介しています。
※1 大量のテキストデータを用いて学習された自然言語処理のモデル
※2 https://www.microsoft.com/en-us/research/group/autonomous-systems-group-robotics/articles/chatgpt-for-robotics/
※3 https://www.microsoft.com/en-us/research/uploads/prod/2023/02/ChatGPT___Robotics.pdf
※4 AIテック&実験サイト(https://www.reiwa-ai.co.jp/aitechsite/index.html)
株式会社令和AIは、ChatGPTに代表される大規模言語モデル※1(以下、LLM)を活用した、ハードウェア等外部リソース制御の領域におけるソリューション「SnippetBox」を発表します。また、ソリューションの一部分をフリーAPI版「SnippetChecker」として無料公開し、Pythonパッケージとして提供します。フリーAPI版「SnippetChecker」は、商用非商用問わず誰でも利用できます。
■ マン・マシン・インターフェイスとしてのAI
現在、テクノロジーの進歩により、ロボットやドローンなどの先進的なハードウェアの活用が進められています。
しかし、そうした先進的なハードウェアは、その操作もまた高度化しており、安全に利用するためには、人間が長い時間をかけて様々な技能を学習する必要があります。
株式会社令和AIは、そうした状況を終わらせるために、AI技術を活用したいと考えています。
マン・マシン・インターフェイスとしてのAIは、AIの側が人間の側に寄り添うことで、誰でも直感的に、高度なハードウェアを利用できることを目的とします。
□ マン・マシン・インターフェイスとしてのAIの概念図
[画像1: https://prtimes.jp/i/127932/2/resize/d127932-2-f224b3ecb0cb07b155d4-0.png ]
■ LLM生成コードによるハードウェアの制御
AIによるマン・マシンインターフェイスの代表的な応用が、LLMを使用した、自然言語指示によるハードウェア制御です。
ChatGPTに代表される高度なLLMを使用することにより、人間が、普段から使用している「言葉」を使って、先進的なハードウェアを操作できるようになります。
AIによるマン・マシンインターフェイスの実現には、AI-マシン・インターフェイス領域での技術の確立が求められますが、LLMによるハードウェア制御の分野では、制御のための部分的なプログラムコード(スニペット)を生成させ、その生成コードを実行することで、リソース制御を行う手法が用いられます※2。
こうした手法は、マイクロソフトが論文「ChatGPT Robotics」※3で提案した手法に基づいており、現在一般化が進んでいます。
■ SnippetBoxについて
スニペットによる制御の過程では、LLMが出力したコードを実行する必要が生じますが、LLM出力コードは本質的に安全ではないため、セキュリティと安定性の確保は一層の注意を必要とします。
そこで「SnippetBox」では、以下の3つの機能を組み合わせることで、スニペットの安全な実行を保証します。
ジェイルブレイクの可能性がある指示プロンプトを発見しフィルタリング
指示プロンプトが生成するスニペットを常に監視し、不正なコードの実行を防止
プリエンプティブな実行スケジューリングを実現するインタプリンタ実行環境
□ SnippetBoxシステム概念図
[画像2: https://prtimes.jp/i/127932/2/resize/d127932-2-85c224419f42a84401b1-1.png ]
■ なぜスニペットによる制御が必要なのか
ハードウェア制御など、リアルタイム性のある制御が必要とされる場合、LLMの実行を制御ループに組み込むことは、ニューラルネットワーク実行速度の観点から現実的ではありません。
しかし、LLMによる制御はマン・マシン・インターフェイスの領域で求められるので、ハードウェアの制御ループと同期的に実行する必要はありません。
通常、制御目的の更新は、数十秒に一度程度の間隔で実行すれば良い一方で、ハードウェア制御のロジックは数Hz以下の間隔で実行される必要があります。さらに、実際のデバイスを制御するドライバ処理は、遙かに高い周波数で動作しています。
そのため、それぞれのステップ毎にプログラムの実行レイヤーを構築し、AIの実行と制御ロジックの実行を切り分ける必要があります。
□ スニペットによる制御の概念図
[画像3: https://prtimes.jp/i/127932/2/resize/d127932-2-752fb199dd54913bbd31-2.png ]
■ なぜコンテナ化等の対策では不十分なのか
コンテナ技術による仮想化は、詳細が不明なソースコードを実行する際に、安全性を担保するためのサンドボックスとして利用されることがあります。しかしコンテナ化は、コンテナの外側にあるコンピューター環境にアクセス出来なくなるだけで、不適切な制御コードを生成させたり、ハードウェアに危険な行動を取らせたりという‘攻撃’を防御することは出来ません。
また、多くのコンテナ技術は、特定のソースコードをステップ・バイ・ステップで実行するインタプリンタ機能は持たず、仮想化された実行環境を提供するだけです。そのため、無限ループによるコンピューターリソースを食い潰し等を防ぐことは(それ単体では)出来ません。
そこで、プロンプトのフィルタリング・事前のコードチェックによる不適切なコードの検出と、インタプリタ実行環境によるコードの逐次実行制御環境が必要になります。
■ サンプルコードのご紹介
Pythonパッケージとして公開しているフリーAPI版「SnippetChecker」は、商用非商用問わず誰でも自由にご利用いただけます。
株式会社令和AIは、フリーAPI版「SnippetChecker」の機能の紹介と、実際の実装例となるサンプルコードの紹介を、ホームページ内「AIテック&実験サイト」※4で公開しました。
同サイトでは、ChatGPTとRaspberryPiを使用した、プロンプトエンジニアリングによるハードウェア制御の実際の例を、ソースコードも交えて紹介しています。
※1 大量のテキストデータを用いて学習された自然言語処理のモデル
※2 https://www.microsoft.com/en-us/research/group/autonomous-systems-group-robotics/articles/chatgpt-for-robotics/
※3 https://www.microsoft.com/en-us/research/uploads/prod/2023/02/ChatGPT___Robotics.pdf
※4 AIテック&実験サイト(https://www.reiwa-ai.co.jp/aitechsite/index.html)