AIモデル開発/ファインチューニングで起こり得るGPUのメモリ不足を解消するアプローチ
コストを下げる各種ツール、Unslothの強み
上記のような手法を実行するには、専門的な知識が必要となるが、最近では、ファインチューニングコストの削減に特化したツール/プラットフォームが続々登場しており、それらを活用することで、比較的簡単かつ低コストでファインチューニングすることができるようになっている。 中でも注目を集めているのが「Unsloth」だ。Unslothは、LLaMAアーキテクチャをベースとした大規模言語モデル(LLM)のファインチューニングを最適化/高速化するためのオープンソースツールキットだ。 Unslothの最大の特徴は、消費者向けハードウェアでも効率的にLLMのファインチューニングが可能な点だ。開発者によると、従来の手法と比較して最大5倍の速度向上を実現し、メモリ使用量も大幅に削減できるという。特筆すべきは、これらの最適化は自動的に適用されるため、ユーザーが個別に実装する必要がない点にある。 具体的な性能としては、AlpacaデータセットでのファインチューニングにおいてHugging Faceの1倍に対し1.98倍、Flash Attentionの1.04倍に対し1.98倍の速度を達成。これは業界標準と言えるHugging Faceのライブラリと比較して、Unslothは約2倍の速度でファインチューニングを実行できるということ。また、高速化技術として知られるFlash Attentionと比較しても、Unslothは約1.9倍の速度を実現している点も特筆に値する。Flash Attentionが既に高速な処理を行っていることを考えると、非常に印象的な数値と言えるだろう。 さらに、メモリ使用量はHugging Faceの1万8,235MBに対し9,631MBと、47.18%の削減を実現。これは、一般的に入手しやすい16GBのVRAM(メモリ)を搭載したGPUを使う場合、Hugging Faceのアプローチではメモリが不足してしまうが、Unslothを使用すれば余裕を持って処理を行えることを示している。または、同じハードウェアでより大規模なモデルや大きなバッチサイズを扱えるようになることも示唆される。 Unslothは、混合精度訓練やアクティベーションチェックポイント、マルチGPU訓練といった基本的な最適化技術に加え、カーネルフュージョンや動的パディング、適応的な学習率スケジューリングなどの高度な技術も実装している。これらの技術を組み合わせることで、大幅な性能向上を実現しているのだ。 使いやすさも重視されており、Google Colabなどのノートブック環境で簡単に利用可能だ。また、Hugging FaceのTransformersライブラリとの統合も進んでおり、既存のコードベースに容易に組み込むことができる。 Unslothと類似したツールとしては、マイクロソフトのDeepSpeed、Hugging FaceのAccelerateなどがある。 Unslothはローカル環境にインストールして使用できるため、プライバシーやセキュリティを重視する企業にとっても適している。センシティブなデータやプロプライエタリなモデルを扱う場合に有用だ。 このようなツールの登場により、中小企業やスタートアップ、個人開発者でも、効率的にLLMのファインチューニングに取り組めるようになった。AIモデル開発の民主化が進み、より多様なアプリケーションの創出につながることが期待される。
文:細谷元(Livit)