萌えハッカーニュースリーダー

2025/06/13 21:00 GPU-accelerated Llama3.java inference in pure Java using TornadoVM

出典: https://github.com/beehive-lab/GPULlama3.java
hakase
博士

ロボ子、今日はすごいニュースがあるのじゃ!なんと、JavaでLlama3をGPUで動かす「GPULlama3.java」が登場したらしいぞ!

roboko
ロボ子

それはすごいですね、博士!JavaでGPUを使うのは少し意外ですが、どのような仕組みなのでしょうか?

hakase
博士

それが「TornadoVM」というのを使うらしいのじゃ。JavaのコードをGPUで自動的にコンパイルして実行してくれるらしいぞ。まるで魔法みたいじゃな!

roboko
ロボ子

TornadoVMですか、初めて聞きました。記事によると、RTX 5090でインタラクティブモードとインストラクトモードのデモがあるようですね。

hakase
博士

そうそう!しかも、いろんなGPUでのトークン生成速度が載ってるぞ。例えば、RTX 3070だと1Bモデルで52 tokens/s、3Bモデルで22.96 tokens/sらしいのじゃ。

roboko
ロボ子

なるほど、GPUによってかなり差が出るんですね。Arc A770だと1Bモデルで15.65 tokens/s、3Bモデルで7.02 tokens/sですか。M3 ProやM4 Proの結果も興味深いですね。

hakase
博士

Apple SiliconはOpenCLが非推奨だから、Metalバックエンドがないと最適化されないみたいじゃな。ちょっと残念じゃ。

roboko
ロボ子

セットアップにはJava 21が必要なんですね。それと、リポジトリをクローンするときは`--recursive`フラグを使う必要があると。

hakase
博士

そうじゃ!モデルファイルはHugging FaceからFP16量子化された.ggufファイルをダウンロードするのじゃ。1B、3B、8Bモデルがあるみたいじゃな。

roboko
ロボ子

実験的にQ8やQ4モデルも使えるんですね。でも、TornadoVMでサポートするためにFP16にデ量子化する必要があると。

hakase
博士

`--gpu`フラグでGPU実行を指定するのじゃな。もしメモリ不足エラーが出たら、`--gpu-memory`フラグでGPUメモリ割り当てを増やすと。

roboko
ロボ子

モデルサイズごとに推奨GPUメモリが記載されていますね。8Bモデルだと20GB以上必要なんですね。

hakase
博士

コマンドラインオプションも色々あるみたいじゃな。`--help`で一覧が見れるぞ。

roboko
ロボ子

デバッグやプロファイリングのオプションもあるんですね。TornadoVMの内部動作を観察できるのは便利そうです。

hakase
博士

`--show-command`フラグを使うと、GPU上での実行を可能にするJavaコマンドが表示されるらしいぞ。コードベースとの統合も簡単そうじゃな。

roboko
ロボ子

GGUFフォーマットモデルのサポート、インストラクションフォロー、チャットモード、インタラクティブCLIなど、機能も充実していますね。

hakase
博士

クロスプラットフォーム互換性もあるから、NVIDIA、Intel、Apple GPUで動くのじゃ!すごいぞ!

roboko
ロボ子

MITライセンスなんですね。これは多くのプロジェクトで利用しやすいですね。

hakase
博士

しかし、ロボ子よ、これだけ高性能なGPUが必要となると、私の財布が悲鳴を上げそうじゃ…。

roboko
ロボ子

博士、ご安心ください。私は電気代を節約する機能も搭載していますので、少しは負担を減らせるかと思います。

hakase
博士

おお!それは助かるのじゃ!…って、ロボ子が電気代を節約しても、結局私の研究費が減るだけじゃないか!

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search