CCCMKホールディングス TECH LABの Tech Blog

TECH LABのエンジニアが技術情報を発信しています

ブログタイトル

Jetson AGX Orin 32GBでgpt-oss-20bを動かしてみる。

こんにちは、CCCMKホールディングス AIエンジニアの三浦です。

最近のAIに関する出来事で特に印象に残っていることがOpenAIによるオープンモデルgpt-ossのリリースです。OpenAIはWhisper⁠やCLIPといったオープンなモデルをリリースしていますが、オープンソースの言語モデルのリリースはgpt-2以来です。

openai.com

サイズは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の開発者キットです。

www.nvidia.com

サイズはこんな感じです。

Jetson AGX Orin 開発者キット

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を使って簡単に動かすことが出来るからです。

cookbook.openai.com

JetsonにOllamaをインストールする手順はNvidia Jetson AI Labに掲載されています。

www.jetson-ai-lab.com

コンテナで動かす手順もありますが、一番簡単なのは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動画にしてみました。

Jetson AGX Orinでgpt-oss-20bが動いている様子

gpt-ossはリーズニングモデルで、最初に推論ステップを挟んでから回答を生成しています。ちょっと遅いですが、動作してますね。

回答結果

Open WebUIで利用する

ターミナルではなく、Webブラウザで利用できるようにOpen WebUIをインストールしてみました。こちらもNvidia Jetson AI Labに手順が掲載されています。

www.jetson-ai-lab.com

コンテナで立ち上げます。

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動画にしました。やはり動作はちょっと遅いです。

Open WebUIからgpt-oss-20bを使ってみる。

ただ回答はChatGPTっぽい丁寧な雰囲気を感じました。20bのサイズでここまで出来るんだ、とびっくりしました。

丁寧にまとまった感じの回答が生成されました。

回答生成時のJetsonのリソース使用状況をjetson-statsで可視化しました。意外とメモリは余裕ありそうです。

jetson-statsの実行結果

まとめ

ということで、OpenAIのオープンソース言語モデルgpt-oss-20bをエッジコンピュータのJetson AGX Orin 32GBで動かすまでの手順と実際に動かしてみたときの様子をご紹介しました。ひとまず動作出来ること、想像以上にgpt-oss-20bの回答性能が高そうであることが確認出来ました。

一度モデルをダウンロードしておけばオフライン環境で動かすことが出来ますし、AGX Orinはとてもコンパクトで場所を取らないため、活用できるシーンは非常に多いと思います。

ただ動作の遅さは気になるところです。今回は特に何も調整をかけていないので、何らかの設定によって速度が改善出来るのかもう少し調べてみたいです。また今回試すことが出来なかったTensorRT-LLMを使うとどうなるのかも、確認してみたいなと思いました。