プレスリリース
Mon 16 Oct 2023
株式会社令和AIは、大規模言語モデル(以下、LLM)による制御系システム開発環境「SnippetBox」ソリューションの第一弾として、LLM生成コードの安全な実行環境を提供するPythonリモートインタプリタ製品『SnippetRunner』を提供開始します。
■ LLM生成コードの安全な実行環境
現在、ChatGPTを初めとするチャットAIに、プログラムのソースコードを出力させて、そのコードの実行結果をチャットの返答として利用することで、LLM特有の幻覚(ハルシネーション)を回避する手法が注目されています(代表例:ChatGPTの「Code Interpreter」)。
しかし、LLMが生成するコードは、「基本的に安全ではない」ため、LLMが生成したコードを実行する為には、安全性の確認と、悪意のあるコードが生成されたとしても外部へ被害を及ぼさないためのサンドボックス実行環境が必要です。
また、無限ループを含むコードやハードウェアリソースを過大に消費するコードなどが生成されたときのために、LLM生成コードを適切な制御環境下で実行するための、インタプリタ環境が求められていました。
■ SnippetRunnerについて
令和AIが提供を開始する『SnippetRunner』は、外部へ影響を及ぼさないコンテナ/TCPサーバー上でPythonコードを実行する、リモートインタプリタです。
SnippetRunnerは、単にPythonコードをリモートで実行するだけではなく、コード実行をステップ・バイ・ステップで監視しつつ、その動作をリアルタイムに制御しながら、安全かつ高度な制御下でのLLM生成コードの実行を行います。
□ SnippetRunner代表機能
「基本的安全ではなく」「どこにバグが含まれているか解らない」コードであっても、リアルタイムなコード実行を制御する『SnippetRunner』は、一つ一つの実行ステップ毎にコードの安全性を確認します。
『SnippetRunner』におけるクライアントは、実行コード内のPythonオブジェクトを共有し、リアルタイムに同期することができます。また、共有するPythonオブジェクト内の関数呼び出しは、即時にクライアントにリダイレクトされ、クライアント側が作成する戻り値が実行コード側に返却されます。
コンテナ内サンドボックスにおいては、ホワイトリストにあるパッケージや関数のみ実行を許可することで、コンテナ外への影響だけではなく、コンテナ内で実行継続するロジックへの攻撃を防ぎます。
コード内のループ処理は、コード中の条件判定とは独立した実行周波数や実行回数の指定、割り込み処理の設定が可能。実行時エラーは設定されたポリシーに従って処理し、ループ処理の強制実行継続も可能と、制御系システムへの応用を念頭に置いた、リアルタイムOSに近い実行コードの制御を行います。
■ LLM生成コードによる制御のソリューションについて
AIによるマン・マシンインターフェイスの実現には、AI-マシン・インターフェイス領域での技術の確立が求められますが、LLMによるハードウェア制御の分野では、制御のための部分的なプログラムコード(スニペット)を生成させ、その生成コードを実行することで、リソース制御を行う手法が用いられます。
和AIは、AIによるマン・マシンインターフェイスへの応用を念頭に、LLMが生成したプログラムコードの実行環境ソリューションとして、「SnippetBox」を提案しています。
今回提供を開始する『SnippetRunner』は、「SnippetBox」ソリューションの中核的なパーツという位置づけで、安全かつプリエンプティブな実行スケジューリングを実現する、Pythonリモートインタプリタ実行環境となっています。
『SnippetRunner』は、汎用的なPythonコードのリモートインタプリタ実行環境であるため、LLM生成コードの実行や制御系システム開発のみならず、SaaS製品の構築やクラウド環境構築などに幅広く応用することが出来ます。
そのようなニーズに応えるために、この度「SnippetBox」ソリューションの中から『SnippetRunner』のみを抽出し、早期リリースとなりました。
月額料金プラン/ソースコード買い切りプラン - お問い合わせください