- QLoRAは、モデル本体を4ビットで保持し、追加したLoRAの重みを学習することで、大規模モデルの追加学習に必要なGPUメモリを減らした。
- 論文は65Bパラメータのモデルを単一の48GB GPUで調整したと報告する。ただし、全面学習との性能比較には確認できた規模とタスクの範囲がある。
- 「少ないメモリで学習できた」と「どの用途でも同等の品質になる」は別の主張だ。
何を確かめた研究か
大規模言語モデルを自社の用途に合わせて追加学習したいとき、モデル全体の重みを更新すると大量のGPUメモリが必要になる。事前学習済みモデルを小さな数値幅で保存する量子化は、推論時のメモリ削減には使える。しかし学習時には勾配や最適化のための状態も必要だ。QLoRAの論文は、この制約の下で追加学習を行う方法を提案した。
QLoRAでは、量子化したモデル本体の重みを固定する。その上に小さな追加パラメータであるLoRAを置き、誤差をモデル本体を通して伝えながら、この追加部分だけを更新する。従来のLoRAと量子化を組み合わせるだけでなく、正規分布に合わせた4ビット表現「NF4」、量子化に必要な定数も圧縮する二重量子化、メモリ使用量の急増に対処するページ化された最適化器を用いた点が研究の中心だ。
どう検証したか
研究チームは、LLaMAやT5など複数のモデル系列で、8種類の指示学習データを使い、1,000を超えるモデルを追加学習した。量子化方式やLoRAの設定を変えた比較に加え、16ビットでの全面学習とのタスク性能を調べている。会話モデル「Guanaco」については、MMLUやVicunaなどの評価で、学習データの選び方による違いも調べた。
評価値は一つの意味にまとめられない。ある値はメモリの使用量、別の値はベンチマーク上の応答の好ましさを示す。論文はVicunaでGuanaco 65BがChatGPTの性能水準の99.3%に達したと報告するが、これは同ベンチマークでの比較だ。別の業務や安全性を含めた総合的な同等性ではない。
何が分かったか
論文は、65Bパラメータのモデルを単一の48GB GPUで追加学習できたと報告する。方法の狙いは、モデルを小さくするために事前学習からやり直すことではなく、既存モデルを保持したまま調整に必要なメモリを抑えることだ。二重量子化は量子化定数に必要な容量を平均で1パラメータ当たり約0.37ビット減らすと記している。
実験は、追加学習データの量だけで会話品質が決まらないことも示した。論文内では、約9,000件のOASST1データを使った設定が、約45万件のFLAN v2の部分集合を使った設定より、会話評価で良い結果を出した。ただしデータの内容と評価指標が違えば順序も変わり得る。したがって「少量のデータが常に良い」という結論にはならない。
限界は何か
著者らは、33Bと65Bの規模でQLoRAが16ビットの全面学習に性能で一致することまでは検証できていない、と明記している。全面学習の計算資源が大きすぎるためだ。要旨の「性能を保つ」という表現を、全規模での直接比較が済んだという意味で読むべきではない。
また、会話モデルの評価はMMLU、Vicuna、OAなどに限られ、他のベンチマークへの一般化は保証されない。責任あるAIに関する評価も限定的で、別種の偏りや有害な応答について十分な結論は出せない。モデルの採用には、用途に即した独立の評価が必要になる。
仕事との接点
追加学習の検討では、まず利用可能なGPUメモリ、対象モデル、学習データ、許容する品質の低下を明確にする。QLoRAはメモリ制約のある場合に試す価値がある方法だが、安く学習できることだけでは採用を決められない。全面学習や他の追加学習法と、同じ評価データ、推論条件、安全性の確認項目で比べる。これは論文の方法と限界を踏まえたTRAIL編集部の提案であり、導入効果を論文が測定したものではない。