Upload 11 files
Browse files- .gitattributes +2 -0
- report/TEST-R16D-iL01e20-adw00-1024px.safetensors +3 -0
- report/TEST-R16D-iL01e20-emn00-1024px.safetensors +3 -0
- report/TEST-R16D-iL01e20-ena00-1024px.safetensors +3 -0
- report/TEST-R16D-iL01e20-ens00-1024px.safetensors +3 -0
- report/TensorBoard01.png +3 -0
- report/TensorBoard02.png +0 -0
- report/TensorBoard03.png +3 -0
- report/emonavi挙動まとめ.txt +63 -0
- report/report-vs-adamw(JPN).txt +51 -0
- report/xyz_grid-0001-1234.png +3 -0
- report/xyz_grid-0002-4321.png +3 -0
.gitattributes
CHANGED
|
@@ -113,3 +113,5 @@ AMP-compatible/logs/trec_gpt2_weight_pca_3panel.png filter=lfs diff=lfs merge=lf
|
|
| 113 |
AMP-compatible/logs/trec_weights_log.json filter=lfs diff=lfs merge=lfs -text
|
| 114 |
report/TensorBoard01.png filter=lfs diff=lfs merge=lfs -text
|
| 115 |
report/TensorBoard03.png filter=lfs diff=lfs merge=lfs -text
|
|
|
|
|
|
|
|
|
| 113 |
AMP-compatible/logs/trec_weights_log.json filter=lfs diff=lfs merge=lfs -text
|
| 114 |
report/TensorBoard01.png filter=lfs diff=lfs merge=lfs -text
|
| 115 |
report/TensorBoard03.png filter=lfs diff=lfs merge=lfs -text
|
| 116 |
+
report/xyz_grid-0001-1234.png filter=lfs diff=lfs merge=lfs -text
|
| 117 |
+
report/xyz_grid-0002-4321.png filter=lfs diff=lfs merge=lfs -text
|
report/TEST-R16D-iL01e20-adw00-1024px.safetensors
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:2b06087ee443220e5e6f1298306d63c80e1d1c522efb9a14deedb9d3bccda5fe
|
| 3 |
+
size 122021528
|
report/TEST-R16D-iL01e20-emn00-1024px.safetensors
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:cf899d8b5c8ba88bb0095d1e01cda0c70ffb3f8b90310bb81e7843dee2cf356a
|
| 3 |
+
size 122021528
|
report/TEST-R16D-iL01e20-ena00-1024px.safetensors
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:a40d9391b94f77dde32c5c51d637aab7378b9a14b8f6fc7824bf2d0fb8b3316d
|
| 3 |
+
size 122021528
|
report/TEST-R16D-iL01e20-ens00-1024px.safetensors
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:c1fbec661d8b74ce4c993aa9073fbd5ab5c520a0fb54ad1fb79a7bae696a8b5c
|
| 3 |
+
size 122021528
|
report/TensorBoard01.png
ADDED
|
Git LFS Details
|
report/TensorBoard02.png
ADDED
|
report/TensorBoard03.png
ADDED
|
Git LFS Details
|
report/emonavi挙動まとめ.txt
ADDED
|
@@ -0,0 +1,63 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
EmoNAVI(第一世代)の挙動について
|
| 2 |
+
|
| 3 |
+
学習開始時、2つのemaは十分な履歴を持たないため、shadow-systemは停止状態です
|
| 4 |
+
およそ 50~150 stepくらいになると、2つのemaの履歴は"差分"を生じるようになります
|
| 5 |
+
開始直後は差分はなく、差分が生じるようになると以下の補正を開始します
|
| 6 |
+
|
| 7 |
+
v1.0では、スカラー±0.3以上からshadow-systemのブレンド(常時30%)を開始します、
|
| 8 |
+
スカラー+0.6以上になると強いブレンド(82~90%)を動的スカラーに基づきを行います、
|
| 9 |
+
(スカラー-0.6以下は弱いブレンド(常時10%)を行います)
|
| 10 |
+
|
| 11 |
+
v2.0からはスカラー±0.1以上からshadow-systemのブレンド(10~60%)を開始します、
|
| 12 |
+
スカラー±0.6以上になると強いブレンド(60~100%)を動的スカラーに基づきを行います、
|
| 13 |
+
(v2.0からは"負"-値への対応を別にせず、常に±どちらの領域も等しくしました)
|
| 14 |
+
|
| 15 |
+
これらはすべて動的スカラーに基づきブレンドを適用します(v2.0からは全指定領域で線形です)
|
| 16 |
+
|
| 17 |
+
では実際には、emaの監視するLoss値はどのくらいになるか? 短期3~7stepくらいで、
|
| 18 |
+
スカラー:±0.1 / loss_val:±0.07 増加している時
|
| 19 |
+
スカラー:±0.3 / loss_val:±0.21 増加している時 (lossが4step続けて1.0以上になるくらい)
|
| 20 |
+
スカラー:±0.6 / loss_val:±0.48 増加している時 (lossが3step続けて1.4以上になるくらい)
|
| 21 |
+
これで shadow-system のリアルな姿を感じて頂けるでしょうか、皆さんのガーディアンですよね!
|
| 22 |
+
|
| 23 |
+
|
| 24 |
+
shadow-systemの成長とlerp計算と収束
|
| 25 |
+
state['shadow'].lerp_(p, 0.05)は、線形補間(Linear Interpolation)を行う関数です
|
| 26 |
+
この式は、shadowパラメータを現在のパラメータ(p)に0.05の割合で近づけることを意味します
|
| 27 |
+
|
| 28 |
+
勾配のパラメータは徐々に成長します、元の情報(過去値)に対し5%づつ"現在値"を混ぜていきます
|
| 29 |
+
これは先ほどのブレンドを行うのと同時に行われます(安全のため事実上の信頼値を判定していますが)
|
| 30 |
+
|
| 31 |
+
基本的に、これらは学習の、序盤、中盤、に適用されます、つまり勾配更新が一定以上の強度をもつ時のみです
|
| 32 |
+
学習の段階に関わらず、小さな更新のときは、shadow-systemは働きません、自動停止になる仕組みです
|
| 33 |
+
|
| 34 |
+
では終盤はどうなるのか?
|
| 35 |
+
概算で、2000~3500stepくらいになると、shadow-systemは成熟します、
|
| 36 |
+
これは、shadow-systemのもつ各パラメータのほぼ全域で、概ね現在値に置き換わることを意味します
|
| 37 |
+
(ここでもし過適合や発散の傾向を感知した場合は、現在値に戻すことになります)
|
| 38 |
+
|
| 39 |
+
このあたりでは既にlossは常に安定していると予想されますので、shadow-systemは無用になります
|
| 40 |
+
そして実際に、安定状態ではshadow-systemは自動停止状態です
|
| 41 |
+
|
| 42 |
+
この状態ではつまり、純粋なAdam的な更新のみ"継続"されています
|
| 43 |
+
スカラー値が大ブレするほどの"持続的かつ大きな揺れ"が生じないかぎり純粋なAdam的更新のみ行われます
|
| 44 |
+
この純粋なAdam的更新が進行することで、やがて"学習完了"になります
|
| 45 |
+
|
| 46 |
+
こうした"深い安定期"になると、Early Stop機能による"外部への静けさ信号"が送出されます
|
| 47 |
+
ただしこれは"静けさの予兆"を知らせるだけで、学習の自動停止等は外部の仕組みに依存します
|
| 48 |
+
|
| 49 |
+
ここまでが emonavi 世代の"挙動"そのものです、つまり学習自体は常に進行します、
|
| 50 |
+
重大な事態(過適合や崩壊の傾向)のときは、それまでの学習を維持するために強固に守りますし、
|
| 51 |
+
中程度の揺れには、ほんの少し揺れを減少させるサスペンションのような働きをします、
|
| 52 |
+
|
| 53 |
+
Adafactor、Lion、系を更新ロジックにもつバリエーションは、Adamのところを置き換えてください
|
| 54 |
+
つまり emo系は、常に"安定"するよう自動的に判断しています。
|
| 55 |
+
|
| 56 |
+
shadow-system による書き戻し、という言葉だけでは "常に学習を妨げるのではないか?" との懸念を
|
| 57 |
+
持たれてしまうと思うのですが、スカラーの部分だけ見てもその存在の意味はご理解を頂けると思います
|
| 58 |
+
|
| 59 |
+
|
| 60 |
+
最後に重要なことを伝えますと、このemo系は、過適合や崩壊を抑制します、がしかし!
|
| 61 |
+
それを完全になくす、までは対応しないようにしています。つまり"学習設定の誤りを正す"まではしません。
|
| 62 |
+
そういう過剰な設定状態のまま学習を進めても結果は悪いだろう、という想定です、
|
| 63 |
+
ですから"学習設定の誤りはユーザーの修正に委ねる"ことにしています、どうかご了��ください。
|
report/report-vs-adamw(JPN).txt
ADDED
|
@@ -0,0 +1,51 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
TensorBoard
|
| 2 |
+
黄色:AdamW、橙色:emonavi、緑色:emosens、紫色:emoairy
|
| 3 |
+
グラフのとおりです。Loss は emonavi / sens は AdamW より少しだけ下(0.003程差)を進行します
|
| 4 |
+
|
| 5 |
+
VRAM使用量と進行結果
|
| 6 |
+
AdamW:9.0~9.8
|
| 7 |
+
steps: 100%|█| 780/780 [20:00<00:00, 1.54s/it, Average key norm=0.132
|
| 8 |
+
emonavi:8.8~9.1
|
| 9 |
+
steps: 100%|█| 780/780 [20:37<00:00, 1.59s/it, Average key norm=0.294
|
| 10 |
+
emosens:8.8~9.1 --optimizer_args "use_shadow=False"
|
| 11 |
+
steps: 100%|█| 780/780 [21:44<00:00, 1.67s/it, Average key norm=0.305
|
| 12 |
+
emoairy:8.4~8.7 --optimizer_args "use_shadow=False"
|
| 13 |
+
steps: 100%|█| 780/780 [24:10<00:00, 1.86s/it, Average key norm=0.00669
|
| 14 |
+
|
| 15 |
+
xyz-grid
|
| 16 |
+
adw00(AdamW)、emn00(navi)、ens00(sens)、ena00(airy)
|
| 17 |
+
どうでしょう傾向として2つに分けられるかも。AdamWとAiry、naviとsens、
|
| 18 |
+
元モデルに寄せて覚えるのはAiryかも(キャラ学習は向かないかも)
|
| 19 |
+
emo系は細部もキレイな気がしますが好みの違いかもしれません
|
| 20 |
+
|
| 21 |
+
主要パラメータ(統一条件です)
|
| 22 |
+
LR:2e-4(層別50%=1e-4)、フルLoRA(c3lier)、R16a8、20epoch/780step、解像度:1024px
|
| 23 |
+
cosine with restart(2回)、bf16、huber-snr:0.1、GC(Gradient-Checkpoint)
|
| 24 |
+
LoRA学習モデル:Illustrious-XL-v0.1、LoRA適用モデル:Illustrious-XL-v0.1
|
| 25 |
+
emo系はすべてv2.0です
|
| 26 |
+
|
| 27 |
+
<試験結果>
|
| 28 |
+
emonavi、AdamW、ほとんど同じだといえます。
|
| 29 |
+
Q:詳細や細部を覚えるか? A:AdamW相当(emo系キレイかも)
|
| 30 |
+
Q:色移りや色抜けするか? A:AdamW相当(AiryはAdamWに近い)
|
| 31 |
+
Q:飽和すると覚えなくなるか? A:AdamW相当(他とも同じ)
|
| 32 |
+
|
| 33 |
+
Q:わざわざemo系をつかう理由なさそうだよね?
|
| 34 |
+
A:いいえ、追加学習等の面倒なハイパーパラメータは不要になります
|
| 35 |
+
過学習傾向や発散傾向にあるとき自動修復機能を働かせます
|
| 36 |
+
スケジューラに依存せず収束します(使うのもOKです/ご自由に)
|
| 37 |
+
特殊な学習環境における"同期"等も不要です
|
| 38 |
+
|
| 39 |
+
Q:emo系の欠点は?
|
| 40 |
+
A:あります!AdamWと比べて実績がありません(実績や普及度ではAdamW優位)
|
| 41 |
+
(信頼性や安定性に欠けるのではなく、単純にAdamWほど使われてないだけ)
|
| 42 |
+
ただしこの欠点だけで上記のメリットを享受できます
|
| 43 |
+
|
| 44 |
+
<最終結論>
|
| 45 |
+
emo系を選んでもいいし、選ばなくてもいいし、みんな自由だ!
|
| 46 |
+
ただし「自律的な収束」「過学習の自動修復」「VRAM効率の良さ」など、
|
| 47 |
+
従来のOptimizerにはないメリットを得られます
|
| 48 |
+
|
| 49 |
+
<謝意/ライセンス>
|
| 50 |
+
LoRAは商用利用不可でお願いします
|
| 51 |
+
2025/08/20 最新版
|
report/xyz_grid-0001-1234.png
ADDED
|
Git LFS Details
|
report/xyz_grid-0002-4321.png
ADDED
|
Git LFS Details
|