muooon commited on
Commit
0c2074c
·
verified ·
1 Parent(s): 692cc67

Upload 11 files

Browse files
.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

  • SHA256: bca74119ba5995b01a260ebadf62332d84bfa7b41a926f99e0440eedbdfad0cf
  • Pointer size: 131 Bytes
  • Size of remote file: 109 kB
report/TensorBoard02.png ADDED
report/TensorBoard03.png ADDED

Git LFS Details

  • SHA256: 7bea541d3bc55775c861e4687bf3399dc5f434de0d68028b609cd507f2b4b5b6
  • Pointer size: 131 Bytes
  • Size of remote file: 108 kB
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

  • SHA256: 9808a0d7587b4b9c44b9c6ebf9e0a5804aef028f6165f5de36be5bc9347498dd
  • Pointer size: 133 Bytes
  • Size of remote file: 15.3 MB
report/xyz_grid-0002-4321.png ADDED

Git LFS Details

  • SHA256: 5fa0e48718344bb07313f32b2fc6dbf94c76ba37db6401223fb522e1ef15b28b
  • Pointer size: 133 Bytes
  • Size of remote file: 18.8 MB