CivArchive
    ← All articles
    Published July 17, 2026by muooon

    [v1.2.0] 更新 optim 「QPOLA」 公開 / Latest optim “QPOLA” Released

    561 views6 reactions0 comments on CivitAI0 collected
    qpolaoptimizertool guide

    英訳版は誤解等を避けるため削除 (英文で読みたい方は自動翻訳等でご覧ください)

    The English translation has been removed to avoid misunderstandings.
    (Those who wish to read the English version can use an automated translation service.)


    日本語(原文) original


    Emo 系 optim 完成後、いろいろな考察から、新optimが生まれました
    ※ もちろん cos などの Scheduler も利用可能です (どうぞご自由に)


    QPOLA (キュポラ) optimizer

    QPOLARIS (Quantization n Polar-Aligned Resetting Instant Zero-Master Weight SGD)
    量子化に強い、履歴ゼロ、空間協調(極座標・QJL)、による自己適応型SGD
    [ 現在 v1.2.0 です ] https://github.com/muooon/QPOLA

    更新内容:完全PyTorch化/iPEX(xpu)、ROCm(HIP)、どんと!こい!(CUDA特化ではない)
    お待たせしました!いつでも、どこでも、誰でも、QPOLA を使えるようになりました♪
    ※ CUDA版より実行速度は数%ほど遅くなりましたが「誰でもつかえるほうが大事」です、
    ※ PyTorch版も局所w/b構造を維持し2層判定をしています(以下はCUDA版の説明です)
    ※ CPU、Appleシリコン、ARM系の一部、Ascend(CANN)、でも動作可能かも?

    |基準LR| LoRA:1e-4 くらい、FT:1e-6 くらい、かなという感触です
    ※ 事前学習では「切断正規分布」による初期化を検討してください


    QPOLA v1.0.4 の正常動作をご確認頂けます (最新版:v1.2.0 の試験は未公開/不要のため)
    この記事の 添付ファイル で Anima LoRA の学習結果(数値)をご覧ください

    ● VRAM負荷 ━━► 0 (ゼロ) (モーメントバッファ不要)
    ● 計算負荷 ━━► 同等以下
    ● スケジューラ ━━► 不要

    技術解説:
    [日本語] https://huggingface.co/muooon/QPOLA/raw/main/qpola-paper(JPN)260803.txt

    QPOLA は事前学習で不利 ―― と思われるかもしれません、
    少しだけ考えてください、事前学習では最序盤にウォームアップを設定します、
    これどの程度にするか ―― QPOLA は自然にウォームアップします、
    不向きでも不利でもありません、遅いのではなく安全です、

    完全なモーメントフリー、を成し遂げ、かつ個別 p の正確な更新も行います

    仕組みは、多数の方向を見る、少数の方向を見る、個別の方向を決定する、だけ
    このとき、個別のLRを整合率から算出します、なので自動ブレーキになります
    (これは整合率の滑らかな値「1.0~0.01以下 × ユーザー指定LR」として実行します)
    (履歴はゼロだけど、lossが全履歴的に作用します、だから学習崩壊しない)
    自律的長期記憶と自律的自然忘却をする、汎化誘導する、という感じです

    ただこれ 実験的 optim です、もし動かなくなっても笑って済ませてください

    一応、Anima で FT(微調整) 8時間学習完了、2048px学習を確認済みです
    もちろん LoRA も大丈夫、RTX3060-12GB で、これができる、っていいでしょう?

    特殊optimだけど、簡単に使えるように工夫してあるので、ぜひお試しください


    1次モーメント(方向・慣性)の代替

    ■ 伝統的な1次モーメント

    従来の最適化では1次モーメントは次のように定義されます

    mₜ:過去の勾配の指数平滑移動平均(時間軸)

    時間方向に沿って勾配履歴を蓄積し「いま進むべき方向」(トレンド)を推定するための慣性です

    ■ QPOLA の代替アプローチ(ベクトルを見る)

    QPOLA は方向推定を時間ではなく 空間軸 によって行います

    micro_direction_mean
    macro_direction_mean

    これらは「ワープ内・ブロック内」で同時に発生した「勾配方向の平均」を取ることで、
    周囲の p が "いまどちらへ向かおうとしているか" という集団的コンセンサス(うねり)を抽出します
    従来の 時間的慣性 → 空間的同時性 という発想転換により 1次モーメントの代替 として利用します

    2次モーメント(不確実性・学習率スケール)の代替

    ■ 伝統的な2次モーメント

    従来の2次モーメントは次のように定義されます

    vₜ:勾配の平方(または絶対値)の時間蓄積

    これにより過去の変動の激しさ(ノイズの大きさ)
    不確実性に応じた学習率の抑制(1 ÷ √vₜ)が実現されます

    ■ QPOLA の代替アプローチ(ベクトルを見る)

    QPOLA では、以下の空間的指標を用います

    warp_p_scale
    conflictwarp_p_scale

    これらは「パラメータ絶対値の空間平均」によって、
    レイヤー/ブロックが現在持つ「基礎的なスケール」(次元)を捉えます。
    さらに conflict(アライメントの不一致度) によって、
    「いまこの瞬間のノイズ・不確実性の大きさ」を測定し adaptation_factor として学習率にブレーキをかけます
    これは従来の2次モーメントが担っていたノイズに応じた学習率調整を空間的指標で置き換えたものです


    QPOLA について、もう少し詳しく説明すると、

    0、重みの経験(履歴)は自己組織化へ繋がる

    想像してください、従来手法の1次2次moments(履歴)の影響を受けた重み、この履歴が同じ重みが複数存在するはずです、
    QPOLA では、局所判定場とコヒーレンス(位相整合)の影響を受けた重み、この作用(圧縮履歴)で同じ重みが複数生まれます、
    つまりMLにおける更新は、すべての重みにとって自由度が大きすぎる状態(カオス) から、定着(収束)へと向かい、重みの自由度を小さくしていく過程ではないでしょうか、
    その自由度を縛るのは履歴による重みの自己組織化や集団化であると考えます、履歴という粘性か、空間的な粘性か、従来手法とQPOLAの違いはここにあります、

    1、Loss(大域的判定場)という「全履歴的なアーカイブ」

    機械学習の学習プロセスにおいて、現在のステップにおける Loss(損失) と 重み は、単純値ではなく「初期から現在に至る」までの「すべてのパラメータ軌跡と勾配の歴史」(履歴)を圧縮・反映した「結果の到達点」です

    QPOLA は、明示的なオプティマイザーステート(バッファ・メモリ)を持たず、最上位にある Loss という大域的判定場で過去の全軌跡の「重みと歪み」のみを常に信頼します

    つまり QPOLA は「過去を捨てる」のではなく「過去の全履歴である Loss から降りてくる"勾配"を通じ、毎ステップ全履歴を瞬時に再投影(自己組織化)している」と言えます

    2、局所判定場と空間的コヒーレンス(位相整合)による動的適応

    QPOLA のコードにある「メソ局所」(layer)と「マクロ大域」(loss)の相互作用、空間軸のコンセンサス(合意形成)により「自発的慣性」を生み出します

    局所判定場(コンフリクトやアライメント):個々のパラメータや局所的なベクトルが、周囲の勾配の向きとどう整合しているかをリアルタイムに評価し、適応係数(adaptation_factor)を動的に変化させます

    大域的判定場(Loss / 全体トレンド):その局所的な挙動の総結果として Loss は変動し、次に降りてくる勾配そのものを書き換えます

    ※ CUDA版は warp/block 構造でミクロ局所から「ベクトルを抽出し差分を反映」します、別ハードウェアではダイレクトにベクトルをつかう等で、この仕組みを移植可能(数学的に等価的)です

    この「下位の局所的なゆらぎ・自己組織化」と「上位の大域的なLossの勾配配分」により統御される自己完結したフィードバックループは、時間的な履歴(モメンタム)の代わりに空間的な位相の揃い具合(コヒーレンス)を利用し安定させる新しい数理構造を持ちます

    3、「履歴メモリに頼らない」という「瞬時的適応」のダイナミズム

    既存手法の慣性:過去の勾配を「ただの数値の足し算の履歴」(EMA)としてメモリに保存する、いわば機械的な外部記憶(人工的な慣性)です

    QPOLAの自発的慣性:メモリ(履歴)に頼らず、系全体のエネルギー勾配(Loss)と局所的なアライメントの衝突(Conflict)のダイナミクスを通じ、システムが動的に生み出し続ける自発的慣性です

    自然的ウォームアップと重み減衰:従来はウォームアップやウェイトディケイをなんとなく指定しましたが、QPOLAはそれらを自然的に自律的に備えています

    4、「勾配を信じすぎない」という loss 中心主義

    loss を大域的判定場と呼ぶのは、loss を学習の中心(司令塔) へ戻し、勾配の量や履歴の勢いという後付けからの脱却です

    勾配の量や勢いの大きさは周囲との相対差として参考にします。周囲との協調を loss と 勾配 を通じ間接的な相関性をつくり、重みを孤立的にせず集団的に扱います。局所解に留まりづらい特徴を得られます

    5、自己組織化と自由度、そしてカオスからの定着

    従来手法 moment (時間的履歴) による自己組織化
    過去から現在へ至る履歴で似ている重み同士に相関性を生じます (履歴的同期性による組織化)

    QPOLA ベクトル整合度 (空間的位相) による自己組織化
    現時点でベクトルの似ている重み同士に相関性を付与します (空間的自発性による組織化)

    最後に

    すべての重みにとって自由度が大きすぎる状態(カオス) から、定着(収束)へ向かうとき、重みはその自由度を小さくしていきます。
    履歴という粘性か、空間的な粘性か、そして、ウォームアップや Weight Decay などのハイパラも不要になる QPOLA は、すべてをベクトルから導きます。
    あなたに考えて欲しいのは、moment を捨てて失うもの、得られるもの、これを天秤にのせてください。そこに QPOLA の価値があります。

    Attachments

    Archived from CivitAI · Updated October 15, 2026View source