一般的なノートPCに搭載されたGPUでも大規模言語モデルをファインチューニングできるオープンソースツール「Soup」が公開されています。開発者による検証ではVRAMが4GBのGPUを使い、80億パラメーターの「Llama 3.1 8B Instruct」をファインチューニングできたとのことです。
Soup CLI — Build, expect, train, x-ray, merge, bisect, ship — one CLI
https://trysoup.dev/
GitHub – MakazhanAlpamys/Soup: Fine-tune LLMs from one YAML. Layer streaming trains an 8B model on a 4 GB laptop GPU. · GitHub
https://github.com/MakazhanAlpamys/Soup
大規模言語モデルのファインチューニングとは、既存のAIモデルに追加のデータを学習させ、特定の質問に答えやすくしたり決まった文体で文章を書かせたりする作業です。ただし規模の大きなモデルを学習させるには大量のVRAMが必要になるため、高性能なGPUを搭載したPCやクラウドサービスを用意するのが一般的でした。
Soupは学習中に変更しない基盤モデルのデコーダー層をメインメモリに置き、計算に必要なデコーダー層を1層ずつVRAMへ送る「レイヤーストリーミング」という手法を採用。VRAMの使用量を減らせるため、従来はメモリ不足になりやすかったノートPC向けGPUでも8Bモデルをファインチューニングできる可能性があるというわけです。
実際、開発者はVRAM 4GBのGeForce RTX 3050 Laptop GPUを使い、Metaの「Llama 3.1 8B Instruct」をNF4形式に量子化し、LoRAでファインチューニングすることに成功したとのこと。1回に処理する文章の長さが512トークン、バッチサイズ1の条件ではピーク時のVRAM使用量が3.32GB、処理速度が毎秒119.6トークンだったと報告されています。同じNF4形式のモデル全体をGPU上に保持した場合と計算結果がビット単位で一致することも確認したとしています。
もちろん、VRAM容量の少ないGPUで動作させる場合はCPUのメインメモリなどを併用するため、モデル全体をGPUのVRAMに常駐させる方法より学習時間が長くなります。どのような設定でも動作するわけではなく、1回に処理する文章の長さやバッチサイズによってはVRAMが不足する可能性もあるとのこと。
なお、Soupはもともと用途に合わせた学習データを指定してコマンドを実行するだけでファインチューニングを始められる点が売りのコマンドラインツールで、バージョン0.72のアップデートでレイヤーストリーミングに対応した形です。ツール全体としては大規模言語モデルのファインチューニング作業をまとめて扱うことができ、GPUの検出やバッチサイズの調整なども自動化されているため、複雑な学習環境を一から組み立てる手間を減らせるほか、学習したモデルとの対話や利用する実行環境に合わせた形式への変換にも対応しているなどの特徴があります。
Soupのレイヤーストリーミング機能は記事作成時点でベータ版です。開発者は検証に使用した条件や結果をGitHubで公開しているため、失敗例や誤りと判明した前提、測定後に採用されなかった数値を含む完全な測定記録を確認できるとのことです。
ソース元はコチラ
この記事は役に立ちましたか?
もし参考になりましたら、下記のボタンで教えてください。


