KAIs

KAIsの6月例会はUSBで動く生成AIをリアル体験しました、これからはローカルAIの世界に注目ですね!

この記事は約8分で読めます。

KAIsの6月例会はUSBで動く生成AIをリアル体験KAIsの6月例会はUSBで動く生成AIをリアル体験しました。講師としてこのUSB・AIを開発した富田さんをお招きし金沢市武蔵のITビジネスプラザ6階の研修室3で開催しました。
今回は昨年度に計画した日程をすべて終了という記念すべき最終日でした。例会のあとに近くの居酒屋で懇親会もありました。

KAIsの6月例会

会場は武蔵ITのビジネスプラザ研修室3

KAIsは毎月例会を行っていますが、基本的にオンラインでの開催です。私はリアル開催は久しぶりでした。

講師はリカバリーサービスの富田さん

講師はリカバリーサービスの富田さんです。前回のオンライン例会でプレゼンしてくれた内容がとてもすばらしかったので、実際に触れて体験したいという要望もありリアル開催となりました。

USBにオリジナルのAIを入れてインターネットに接続せずに使えるならセキュリティに厳しい組織でも使えますね!
USBにオリジナルの生成AIを入れて持ち運べると便利ですね。インターネットに接続しなくても使えるので、情報漏洩とかセキュリティに神経質な組織でも利用可能です。 そんな、ポータブルAIのUSBを開発したリカバリーサービス株式会社の代表である富田龍樹さんをお招きし、KAIsのオンライン例会にて説明をしてもらいました。

前回の内容は上記の記事で紹介しています。

USBに内蔵したLLMのAIの実行ファイルをクリックすると、PCにプログラムがロードされて実行できるようになります。この生成AIはメタ社のLLAMAというオープンソースを使って構築されています。

今回、デモで利用したPCは、CPUがN100というローコスト非力なPCです。おそらく3万円もしないくらいのハードウエアですので、このスペックで稼働するとはすごいですね。

秀丸エディタでブラウジングも可能でした

他の参加者のノートPCでも稼働テストをしてみました。USBを挿して実行ファイルをクリックするだけで、インターネットに接続しなくてもLLMが使えるというのは「ローカルAI」という観点ではすばらしいです。

ですが、AMDのRyzenというCPUを内蔵したメモリ32GBの高性能パソコンではうまく立ち上がりませんでした。CPUと相性が悪かったのかもしれません。今後、このような問題が解消されることを期待します。
(後日、RyzenのPCでもUSB内容をSSDにコピーして立ち上げると稼働することがわかりました)

AppleのMACBooKでもテストをしてほしかたのですが、時間の関係で省略になりました。たぶん動くということでした。

今度は私が持参したレッツノートで試しました。CPUはi7で比較的高性能ですがメモリが8GBしかありません。このレッツノートではうまく立ち上がりました。

ブラウザはChromeやエッジ以外でも使えるということだったので、秀丸エディタというテキストエディタのブラウジングモードで試したところうまく使えました。

秀丸エディタをブラウザとして使う方法は、左側にブラウザ画面で右側にテキストエディタ画面として使うと便利です。

秀丸エディタがChromiumブラウザになり、ChatGPTの使い勝手がよくなりました
秀丸エディタが劇的なバージョンアップをしました。2023年6月14日にバージョン6.22となり、なんとブラウザとしても使える機能が追加されました。 「ブラウザ枠」を使いURLを指定すれば、そのWebページをエディター画面と並べて表示できます。このブラウザ機能は「Chromium」ベースの「Microsoft Edge」コンポーネント(WebView2)が利用されているとのこと。 「Chromium...

exeファイルをクリックするとDOS画面になり、コマンドが実行されました。以下の情報はDOSコマンドで表示された内容をChatGPTで解説してもらったものです。

コマンドの実行

vbnet

D:\Phi-3\Phi-3>echo on

D:\Phi-3\Phi-3>cd bin

D:\Phi-3\Phi-3\bin>.\llamafile.exe -m .\Phi-3-mini-4k-instruct-q4.gguf

  • echo on: コマンドの実行結果を表示する設定。
  • cd bin: binディレクトリに移動。
  • .\llamafile.exe -m .\Phi-3-mini-4k-instruct-q4.gguf: llamafile.exeという実行ファイルを、指定されたモデルファイル(Phi-3-mini-4k-instruct-q4.gguf)を使って実行。

モデルの読み込み

vbnet

note: if you have an AMD or NVIDIA GPU then you need to pass -ngl 9999 to enable GPU offloading
{"build":1500,"commit":"a30b324","function":"server_cli","level":"INFO","line":2856,"msg":"build info","tid":"11165056","timestamp":1718189131}
  • GPUオフロードを有効にするには、-ngl 9999オプションを追加する必要があることが記載されています。
  • JSON形式でログが出力され、ビルド情報やシステム情報が記録されています。

システム情報の表示

ruby

{"function":"server_cli","level":"INFO","line":2859,"msg":"system info","n_threads":4,"n_threads_batch":-1,"system_info":"AVX = 1 | AVX_VNNI = 0 | AVX2 = 1 | AVX512 = 0 | AVX512_VBMI = 0 | AVX512_VNNI = 0 | FMA = 1 | NEON = 0 | ARM_FMA = 0 | F16C = 1 | FP16_VA = 0 | WASM_SIMD = 0 | BLAS = 0 | SSE3 = 1 | SSSE3 = 1 | VSX = 0 | MATMUL_INT8 = 0 | LLAMAFILE = 1 | ","tid":"11165056","timestamp":1718189131,"total_threads":8}
  • 使用されているCPUの機能(AVX、FMAなど)が記録されています。
  • スレッド数やシステム情報も表示されています。

モデルのメタデータとテンソルの読み込み

vbnet

llama_model_loader: loaded meta data with 24 key-value pairs and 195 tensors from ./Phi-3-mini-4k-instruct-q4.gguf (version GGUF V3 (latest))
  • モデルのメタデータ(24個のキーとバリューのペア)と195個のテンソルが読み込まれたことが記載されています。

メタデータの詳細

vbnet

llama_model_loader: Dumping metadata keys/values. Note: KV overrides do not apply in this output.
llama_model_loader: - kv 0: general.architecture str = phi3
llama_model_loader: - kv 1: general.name str = Phi3
...
  • モデルの詳細なメタデータがリストされており、アーキテクチャ、モデル名、コンテキスト長、埋め込み長、フィードフォワード長、ブロック数などが含まれています。

テンソルの種類と数

wasm

llama_model_loader: - type f32: 65 tensors
llama_model_loader: - type q4_K: 81 tensors
...
  • 各テンソルタイプ(f32、q4_Kなど)の数が表示されています。

コンテキストの初期化

makefile

llama_new_context_with_model: n_ctx = 512
llama_new_context_with_model: n_batch = 512
...
  • モデルのコンテキストが初期化され、その際の各種パラメータが表示されています。

HTTPサーバの起動

arduino

llama server listening at http://127.0.0.1:8080
opening browser tab... (pass --nobrowser to disable)
failed to open http://127.0.0.1:8080/ in a browser tab using /c/windows/explorer.exe: process exited with non-zero status
  • HTTPサーバがローカルホスト(127.0.0.1)のポート8080で起動されます。

秀丸エディタでは
http://127.0.0.1:8080/
をクリックして立ち上げました。

このあともコマンド情報の表示はありましたが、以下は省略とします。

懇親会は、ひかりやさんで

勉強会のあとは懇親会でおいしいビールをいただきました。ありがとうございます。

このUSBAIが手元にきました

このUSBAIが手元にきました。

USBで持ち運びできるUsbAIというローカルAIが手元に来ました、ネット接続しなくても使える生成AIはこれからすごいことになる予感
生成AIはクラウドで動くものというのが定番ですが、PCだけで動くローカルAIが注目されています。新しい動向として、オープンソースで実用化した生成AIがUSBで使えるようになってきました。 パソコンに挿して立ち上げればインターネット環境がない状況でもChatGPTのような生成AIとして使えます。このUsbAIを開発したのはリカバリーサービスの富田さんで先日KAIs例会にてデモをしてくれました。そのU...

このUSBの内容をPCのSSDにコピーして、SSDから立ち上げると爆速になります。いろいろと実験していきたいと思います。