出展概要
■「ネットが無くても生成AI」
生成AIを業務に導入する企業が増加している中、インターネット使用による情報漏洩のリスクが懸念されています。
その対策として社内のマシンに実装することが考えられますが、一般的に高価でハイスペックなマシンが必要であり、膨大なパラメータを持つ生成AIモデルを実装することも容易ではありません。
そこで、BeeのAI最適化ソリューションの提案例としてエッジデバイス上で動作可能なインターネット不要の生成AIデモアプリを構築しました。
AIモデルの最適化を行うことにより、比較的安価で低スペックなRaspberry Pi 5での動作を可能にしています。
ブースでは、Raspberry Pi 5上で画像解説AIとチャットを行えるデモを実施します。
【出展イベント】
EdgeTech+ West 2024
日時:
2024年 7月11日(木)・12日(金) 10:00-17:00
会場:
グランフロント大阪 北館 B2F コングレコンベンションセンター
技術資料
インターネット不要の生成AI 『BeeChat』とは
生成AIを業務に導入する企業が増加している中、インターネット使用による情報漏洩のリスクが懸念されています。
その対策として社内のマシンに実装することが考えられますが、一般的に高価でハイスペックなマシンが必要であり、膨大なパラメータを持つ生成AIモデルを実装することも容易ではありません。
そこで、BeeのAI最適化ソリューションの提案例としてエッジデバイス上で動作可能なインターネット不要の生成AIデモアプリを構築しました。
AIモデルの最適化を行うことにより、比較的安価で低スペックなRaspberry Pi 5での動作を可能にしています。
ブースでは、Raspberry Pi 5上で画像解説AIとチャットを行えるデモを実施します。
BeeChatの構成
obanz-AI™ Technology
BeeのAI技術 obanz-AI™ テクノロジーによりAI推論に最適な環境が構築され、学習済みモデルは極限まで軽量化し、高速な推論を実現しています。
AI技術
- AIモデルの精度と速度は基本的にトレードオフの関係性にあります。 BeeChatでは速度を重視し、2024年7月現在最軽量と思われるnanoLLaVAを選択しています。
- obanz-AI™ テクノロジーにより10億パラメータのモデルを 最適化することでラズパイ5にAIモデルの搭載を可能にしました。
- llama.cppで動作させるためにnanoLLaVAをGGUF形式モデルに変換し、 メモリ使用量を削減するためにGGUF形式モデルを量子化アルゴリズムにより極限まで軽量化しています。
- llama-cpp-python を活用しVLMを使用し、画像とメッセージを入力する画像解説デモを実施します。
組込み技術
- VLMへの入出力インターフェースとしてReflexを活用してエンドツーエンドなアプリを構築し、 組込み・アプリ開発技術により入力から出力まで、モダンで滑らかなUIをラズパイ上で実現しています。
- GUIを使用するにあたり、Ubuntuに比べてメモリ消費が小さいRaspberry Pi OS を採用し、 メモリ消費を最適に抑えた環境を構築しています。
用語説明
- nanoLLaVAとは
nanoLLaVA は、エッジデバイス上での実行を得意とするように設計された10億パラメータの視覚言語モデルです。
- llama-cpp-pythonとは
LLM推論をするためのllama.cppライブラリをPythonバインディングしたPythonライブラリです。 ctypes インターフェースを介することでC言語のllama.cpp APIへの低レベルなアクセスを可能にします。
- VLMとは
VLM(Vision Language Model)とは大規模言語及び画像解析するための、画像のエンコーダとLLMを組み合わせてエンドツーエンドにトレーニング・推論をすることができるようにしたモデルです。
transformerアーキテクチャに基づく自己回帰言語モデルであり、与えられた画像とテキストに基づいて効果的なテキスト生成を行うタスクに適しています。 目に見えない画像や指示が提示された場合でも、GPT-4と同様にマルチモーダルモデルと似た動作を示します。 - Reflexとは
PythonのみでWebサーバアプリケーションを構築できるフレームワークです。
- Raspberry Pi OS とは
Raspberry Pi OS はDebianベースのRaspberry Pi 向けのOSです。
デモ内で使用した技術詳細についてはこちら
他に挑戦したこと
- ラズパイ5のGPU(Vulkan)を使用した高速化
ラズパイ5のGPUのVulkanエンジンを使用するためにVulkanオプションを有効化し、ビルド・インストール・実行を試みました。
- ChatVectorを使用した日本語対応
複数の学習済みモデルの重みを加減算することで、英語と中国語で学習済みのモデルを 日本語での入出力に対応させようと試みました。
Beeのソリューション
- お客様が想定するエッジデバイス対応
- サービスを想定したデバイス選定
- 要求に合わせたAIモデルの選定
- 独自のデータを活用したAIモデルの訓練
- 組込み向けにAIモデルの軽量化・高速化
- アプリケーションを含めたアーキテクチャの提案
- 組込みソリューションの運用サポート