Scribble at 2026-07-05 10:14:50 Last modified: 2026-07-05 10:23:09

添付画像

Bayesian Sparse Low-Rank Adaptation for Large Language Model Uncertainty Estimation

現状の生成 AI は、その動作原理となっているディープ・ラーニングがどうして有効なのか、実際には理論家も正確には分かっていない。そのため、結果から仮説の妥当性を推定するアブダクションという推論方法によって拡散モデルが評価される。いまでは評価そのものも生成 AI に委ねている場合があるから、これはこれで系統的な誤謬やエコー・チェインバーのリスクはあるが、やれるところまで突き詰めてやってみるというコミットメントも、いまのところ多くの企業ですら実行できる学術研究の強みであるから、営利企業で学者の実験みたいなことがやれているあいだはやればいいというのが僕の意見だ。確かに、それに付き合わされている一般の利用者にもリスクはあるけれど、そこは各企業で一定の線引きをしているし、実際に Claude や ChatGPT の最新モデルが公開を規制されているようなことも起きる。こういうわけで、本論文で取り上げられている LoRA のような、3年前の Stable Diffusion XL (SDXL) にも応用されていた仕組みですら、いまでも改善や向上の余地が色々とある。

LoRA は、PEFT(Parameter-Efficient Fine-Tuning)と呼ばれている手法の一つであり、これは大規模モデルを、できるだけ少ない追加パラメータで効率よく微調整するための手法という意味だ。既にご存じの方も多いと思うが、たとえば画像生成 AI で特定のアニメ・キャラや風景や物体などを描けるようにしたいとき、何枚かの教師画像とメタ・データを用意して LoRA の形式で特徴量の補正データとなるモデルを作成すれば、トリガーとなるタグをプロンプトで使うだけで目的の対象が描写できる。必ずしも正確な描写ではないし、描写してくれるよう強調しすぎると構図などのバランスが失われてしまうリスクもあるから、LoRA の作成も使い方にも一定のバランスが必要となるが、その有効性は高く評価されている。画像生成、とりわけローカル・マシンで画像を生成するユーザにとって、現在のメイン・ストリームと言える SDXLは、進展の早い業界にあって3年前にリリースされた「古典的」と言ってもいい拡散モデルの一つだが、これをベースに追加学習されたモデル、中でも Illustrious XL と派生モデルには、膨大な数の LoRA が公開されている(もっとも、その多くがアニメのキャラなどをトレーニングして作成した、法的にはかなり問題のあるモデルだが)。当サイトでも、僕自身の写真を使って学習した LoRA で作った画像をご紹介したこともあるが、慣れてくれば僅かな枚数の画像で1時間もあれば LoRA を作成できる。

LoRA が強力だと思える理由はいくつかあるが、まずこれが画像の生成を少ないデータで補正するという仕組みをもっていることだ。つまり、原理的には元の画像の品質が悪くても解像度や描き込みや構図などを補完したり、場合によっては新しく描き込んだりして、高品質な画像に変換してしまえる。もちろん、複数の LoRA を組み合わせすぎると補正のプロセスで矛盾が生じたりして破綻した画像が出来上がったり、真っ黒な画像が仕上がるというリスクもあるにはある。しかし、バランスよく適用すると有効なツールであることは明白だ。それ以降の最新モデルもたくさんリリースされているが、それらのモデルが描き出す画像の品質や解像度がどれだけ高かろうと、それを SDXL と LoRA の適用によって、なかば高度な画像生成 AI のプロセスを古い画像生成 AI が LoRA の助けを借りてシミュレートしてしまえるのである。要するに、コンピュータ・グラフィクスとして僕らが扱って眺めている画像ファイルというものは、しょせん色情報をもつピクセル・データの集まりであって、高度な画像生成 AI の画像と古い、あるいは低いレベルの開発段階にあった画像生成 AI がつくる画像とで違っているのは、それら特定の色情報をもつピクセル・データの配置状況にすぎない。別に、古い画像生成 AI モデルだからといって、色情報が古いわけでもなければ、ピクセル・データの配列が古いわけでもないのだ。そもそも、色情報に古いも新しいもないし、ピクセル・データの並び方に古いも新しいもない(こういう取り違えを、分析哲学では「カテゴリー・ミステイク」と呼んでいる。簡単に言えば英語のコロケーション間違いのようなものであり、「空が左折する」とか「著しいウナギ」みたいな、詩の一部にはなりえても通常は辻褄の合わない表現のようなものだ)。

で、ようやく本稿の話題に入ると、本稿で提案されている DALorRA という技術は、LoRA の「ランク」そのものにベイズ的な不確実性を導入する。従来の LoRA ベースの不確実性推定は A/B 行列の重みに対してベイズ化するため重くなるのだが、DALorRA はランク次元に Bernoulli マスクを学習することで、過剰なモデル容量を自動的に削減し、推論時には複数マスクのアンサンブルで高い校正性能を実現して、LoRA とほぼ同等の軽さでベイズ的な効果を得るという特徴を持つという。

まず、LoRA を作成すること、つまり学習なりトレーニングについて説明すると、どのような拡散モデルを補正するかを特定して、学習データとなる教師画像や音源や膨大なテキストやメタデータの一式を用意するところから始まる。LoRA は軽量な補正モデルだが、データを学習するときに network rank というパラメータを固定する必要があるため、低データの領域で過学習が起きやすい。実際には、トレーニングのタスクによって必要となる network rank は違うのだが、これを適宜調整できないからだ。よって、LoRA は "low rank adaptor" という名前のとおり元の拡散モデルがもつ高ランクなテンソルの次元を低ランクな次元の行列に縮約して効率的な補正を行う技術ではあるが、これでもまだ強すぎるのであって、元のテンソルに含まれる多様性を保つための色々な要素、あるいは偶然に混入したノイズなどにも、画一的に補正を適用してしまうため、LoRA の仕組みでも補正として強すぎるのだ。これは、そもそも LoRA の方が少ない学習データを使うので、元の拡散モデルがもつ LoRA で補正すべき個所と放っておいても良いノイズとの区別が十分ではなく、ノイズも含めて補正するように触れてしまい、過学習を起こしやすくなっているからだ。

これは LoRA を作成した経験からも言える。写実的な画像を生成するために写真などを教師画像としてトレーニングする場合は、network rank を32ていどに設定しないと、特徴量をうまく学習してくれなくて学習不足の LoRA が出来やすいけれど、いま埋蔵文化財のコンテンツに使うためのマスコット・キャラクターとして制作しているイラストのキャラなどを作る場合は、肌の質感とか皮膚の凹凸などの微細な特徴は学習する必要がないため、network rank は16か8でもよい。実際、LoRA が公開されている Civitai のようなサイトでも、的確な条件でトレーニングしている LoRA だと、アニメのキャラなどは network rank が8ていどだと思われるファイル・サイズ(50 MB 前後)になっている。逆に、network rank が32や64に設定されてトレーニングされたと思われる、ファイル・サイズが 128 MB を超えるような LoRA だと、アニメや漫画のキャラを描くには補正が強すぎるので、LoRA の適用ウェイトを 0.7 以下に落とす必要がある。

ただ、ウェイトの調整や処理ステップを落として過剰に LoRA が適用される前に止めるといった手法では限界がある。これらは画一的な制御であるため、rank ごとに必要な補正を残したり削ったりはできないからだ。これに対して、本稿でのベイズ的な事後確率を利用する手法が有効なのかもしれない。

  1.  
  2. >> もっと古いノート

冒頭に戻る