こんにちは、CCCMKホールディングス AIエンジニアの三浦です。
最近のAIに関する出来事で特に印象に残っていることがOpenAIによるオープンモデルgpt-ossのリリースです。OpenAIはWhisperやCLIPといったオープンなモデルをリリースしていますが、オープンソースの言語モデルのリリースはgpt-2以来です。
サイズは120bと20bが提供されており、特に20bは12GBのメモリがあれば動くと紹介されており、エッジコンピューティングでの利用が期待できます。
エッジコンピューティング、と聞くと、私はNvidiaのJetsonが思い浮かびます。Jetsonはディープラーニングモデルを動かすことが出来る組み込み用のコンピューティングボードで、小型でありながら高い計算能力を保有しているため、様々な用途で利用することが出来ます。
ちょうど手元にJetson AGX Orin 32GBの開発者キットがあり、これでgpt-oss動かせないかな・・・と考えました。メモリは32GBあるので、gpt-oss-20bなら動かすことが出来そうです。
今回はJetson AGX Orin 32GBの開発者キットでgpt-oss-20bを動かすまでの手順と、実際に動かしてみた感想をまとめてみたいと思います。
Jetsonの環境
使用したハードウェアはJetson AGX Orin 32GBの開発者キットです。
サイズはこんな感じです。
Jetson向けにNvidiaからOSやCUDA等開発に必要な環境がJetPackという形で提供されています。JetPack6.1以降でLLMの推論に適したTensorRT-LLMというツールが使えるということを知り、JetPack6.1をインストールして使用しました。(ただし、今回の記事ではTensorRT-LLMによる動作検証は行っていません。)
Ollamaをインストールする
実はAGX Orinでgpt-oss-20bを動かすまでの手順はそこまで複雑ではありません。gpt-oss-20bはOpenAIのCookbookでも紹介されているように、Ollamaを使って簡単に動かすことが出来るからです。
JetsonにOllamaをインストールする手順はNvidia Jetson AI Labに掲載されています。
コンテナで動かす手順もありますが、一番簡単なのはJetsonに直接インストールするNative Installです。
次のコマンドでJetsonをサポートしたOllamaがインストールされます。
curl -fsSL https://ollama.com/install.sh | sh
gpt-oss-20bのダウンロード
Ollamaのインストールが完了したら、gpt-oss-20bを次のコマンドで取得することが出来ます。
ollama pull gpt-oss:20b
10GB以上の容量のファイルをダウンロードします。ダウンロードが完了したら、以下のコマンドでチャットを開始することが出来ます。
ollama run gpt-oss:20b
使ってみる
AGX Orinで動作している様子をGIF動画にしてみました。
gpt-ossはリーズニングモデルで、最初に推論ステップを挟んでから回答を生成しています。ちょっと遅いですが、動作してますね。
Open WebUIで利用する
ターミナルではなく、Webブラウザで利用できるようにOpen WebUIをインストールしてみました。こちらもNvidia Jetson AI Labに手順が掲載されています。
コンテナで立ち上げます。
sudo docker run -d --network=host \ -v ${HOME}/open-webui:/app/backend/data \ -e OLLAMA_BASE_URL=http://127.0.0.1:11434 \ --name open-webui \ --restart always \ ghcr.io/open-webui/open-webui:main
起動したら同じネットワークにある端末のブラウザからhttp://<JetsonのIPアドレス>:8080
でOpen WebUIにアクセスできます。
こちらも動いている様子をGIF動画にしました。やはり動作はちょっと遅いです。
ただ回答はChatGPTっぽい丁寧な雰囲気を感じました。20bのサイズでここまで出来るんだ、とびっくりしました。
回答生成時のJetsonのリソース使用状況をjetson-statsで可視化しました。意外とメモリは余裕ありそうです。
まとめ
ということで、OpenAIのオープンソース言語モデルgpt-oss-20bをエッジコンピュータのJetson AGX Orin 32GBで動かすまでの手順と実際に動かしてみたときの様子をご紹介しました。ひとまず動作出来ること、想像以上にgpt-oss-20bの回答性能が高そうであることが確認出来ました。
一度モデルをダウンロードしておけばオフライン環境で動かすことが出来ますし、AGX Orinはとてもコンパクトで場所を取らないため、活用できるシーンは非常に多いと思います。
ただ動作の遅さは気になるところです。今回は特に何も調整をかけていないので、何らかの設定によって速度が改善出来るのかもう少し調べてみたいです。また今回試すことが出来なかったTensorRT-LLMを使うとどうなるのかも、確認してみたいなと思いました。