Skip to content
Merged

merge #3221

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
c2921dd
Round training metrics display precision
Sep 1, 2026
ebe3cb2
Merge pull request #3194 from bghira/fix/training-metrics-precision
bghira Sep 1, 2026
d0ab179
Allow mixed ConvRot groups in MiniMax H3 checkpoints
Sep 4, 2026
1f96812
Preserve activation dtype for ConvRot linears
Sep 4, 2026
a734a6c
Support fused QKV config inference for MiniMax H3
Sep 4, 2026
c99546d
Merge pull request #3202 from bghira/fix/minimax-h3-mixed-convrot-groups
bghira Sep 4, 2026
8b7f006
webshart: custom caption key(s) for multicaption support
Sep 6, 2026
19c558f
Fix conditioning masks in nested dataset directories (#3198)
Sep 6, 2026
c445c5a
Fix WebUI validation adapter config file paths
Sep 6, 2026
073ff59
Fix validation model-card labels after checkpoint filtering
Sep 6, 2026
7db826a
Keep metadata bucket keys consistent across cache refreshes
Sep 6, 2026
d91fbb2
Refresh training reports before external hooks (#3207)
Sep 6, 2026
d259e81
Merge pull request #3210 from bghira/fix/3198-nested-mask-paths
bghira Sep 6, 2026
b3fe6d2
Fix Webshart caption fixtures for the released metadata schema
Sep 6, 2026
a6cc6a0
Merge pull request #3208 from bghira/feature/webshart-multiple-captions
bghira Sep 6, 2026
1e137ad
Merge pull request #3211 from bghira/fix/3205-validation-adapter-config
bghira Sep 6, 2026
9fc5339
Merge pull request #3212 from bghira/fix/3201-validation-image-labels
bghira Sep 6, 2026
c22737e
Merge pull request #3213 from bghira/fix/3206-bucket-key-types
bghira Sep 6, 2026
ae0d751
Merge pull request #3214 from bghira/fix/3207-refresh-upload-report
bghira Sep 6, 2026
be64af2
Require Webshart 0.5.4 for custom index caption fields
Sep 6, 2026
647c063
Merge pull request #3215 from bghira/fix/webshart-0.5.4-caption-fields
bghira Sep 6, 2026
d3c99c1
Honor native attention backend selection in direct SDPA calls
Sep 7, 2026
dc4ea18
Fix checkpoint navigation in static training reports
Sep 7, 2026
e3ab9ec
Run post-upload hook after local validation completes
Sep 7, 2026
67816c7
fix: continue failed local jobs with their saved configuration
Sep 7, 2026
dc06f19
Honor low-disk policy before TorchInductor compilation
Sep 7, 2026
5356296
Merge pull request #3217 from bghira/investigate/3195-rdna2-training-…
bghira Sep 7, 2026
b962021
Merge pull request #3216 from bghira/fix/3200-static-report-step-navi…
bghira Sep 7, 2026
2eba665
Merge pull request #3219 from bghira/fix/3204-continue-failed-jobs
bghira Sep 7, 2026
1e2d014
Merge pull request #3220 from bghira/fix/3203-compile-disk-pressure
bghira Sep 7, 2026
eb78ea8
Merge pull request #3218 from bghira/fix/3199-manual-validation-uploa…
bghira Sep 7, 2026
5794e0b
Remove unused documentation images
Sep 7, 2026
afc31c3
Bump version from 4.9.1 to 4.9.2
bghira Sep 7, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file removed docs/images/timestep_sampling_offset/A1.jpg
Binary file not shown.
Binary file removed docs/images/timestep_sampling_offset/A2.jpg
Binary file not shown.
Binary file removed docs/images/timestep_sampling_offset/A3.jpg
Binary file not shown.
Binary file removed docs/images/timestep_sampling_offset/Q1.png
Binary file not shown.
Binary file removed docs/images/timestep_sampling_offset/Q2.png
Binary file not shown.
Binary file removed docs/images/timestep_sampling_offset/Q3.png
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file removed docs/images/timestep_sampling_offset/histogram.png
Binary file not shown.
1 change: 1 addition & 0 deletions documentation/DATALOADER.es.md
Original file line number Diff line number Diff line change
Expand Up @@ -1377,6 +1377,7 @@ Los datasets Webshart cargan shards tar estilo WebDataset mediante el paquete `w
- `metadata` es opcional y puede apuntar a metadatos separados con captions. Para repositorios Hugging Face de metadata como `webshart/conceptual-captions-12m-webdataset-metadata`, pasa el repo id; Webshart sigue el layout de subcarpetas del source, como `data/`.
- `metadata_backend` debe ser `webshart`; `caption_strategy` debe ser `webshart` o `instanceprompt`.
- `webshart.cache_dir` almacena la metadata de SimpleTuner y las caches de Webshart. `shard_cache_gb` y `parallel_downloads` se pasan a la cache de shards de Webshart; define `shard_cache_gb` como `0` para desactivar la cache de shards completos y mantener lecturas por rango indexadas.
- `webshart.caption_key` permite seleccionar campos de caption: usa `"long_caption"` para una clave o `["long_caption", "short_caption"]` para recopilar varias en el orden indicado. Las claves son nombres literales que se buscan en los metadatos JSON de la muestra, después en los metadatos del índice y, finalmente, en las entradas con nombre de sus respectivos diccionarios `captions`; se usa la primera ubicación que contiene la clave. Los valores de texto y listas se convierten en variantes de caption, sin concatenarse en un único prompt. Se ignoran los valores ausentes o vacíos; con `caption_strategy: "webshart"`, se omiten las muestras sin captions seleccionadas aunque tengan captions predeterminadas o un sidecar `.txt`. Omitir la opción conserva la búsqueda predeterminada. Se leen los sidecars JSON cuando su contenido no está en el índice. Las cachés de captions y buckets se separan según el selector configurado. En los ajustes Webshart de la WebUI, introduce una clave por línea.
- `webshart_optimize_captions` (grafía alternativa `webshart_optimise_captions`; también se acepta como `optimize_captions`/`optimise_captions` dentro del bloque `webshart`) sondea el layout de captions al arrancar y, cuando los captions residen en miembros tar sidecar `.txt`/`.json` en lugar del índice de metadata, los consolida una sola vez en la cache local de metadata de Webshart. Sin esta opción, los datasets con captions en sidecars (por ejemplo `laion/conceptual-captions-12m-webdataset`) pagan una lectura por rango por muestra cada vez que se enumeran los captions — al arrancar, al guardar checkpoints y al generar la model card. Los datasets cuya metadata ya incluye los captions omiten la consolidación automáticamente.

#### Optimizar captions por adelantado
Expand Down
1 change: 1 addition & 0 deletions documentation/DATALOADER.hi.md
Original file line number Diff line number Diff line change
Expand Up @@ -1377,6 +1377,7 @@ Webshart datasets `webshart` package के जरिए WebDataset-style tar sh
- `metadata` optional है और captions वाले separate metadata location को point कर सकता है। `webshart/conceptual-captions-12m-webdataset-metadata` जैसे Hugging Face metadata repos के लिए repo id दें; Webshart source shard के `data/` जैसे subfolder layout को follow करता है।
- `metadata_backend` को `webshart` होना चाहिए; `caption_strategy` `webshart` या `instanceprompt` हो सकता है।
- `webshart.cache_dir` SimpleTuner metadata और Webshart caches store करता है। `shard_cache_gb` और `parallel_downloads` Webshart shard cache को pass किए जाते हैं; whole-shard caching disable करने और indexed range reads बनाए रखने के लिए `shard_cache_gb` को `0` सेट करें।
- `webshart.caption_key` से caption फ़ील्ड चुन सकते हैं: एक कुंजी के लिए `"long_caption"` या कई कुंजियों को क्रम से लेने के लिए `["long_caption", "short_caption"]` दें। कुंजियाँ सीधे नाम के रूप में मिलाई जाती हैं: पहले sample के JSON metadata में, फिर indexed metadata में, और अंत में उनके `captions` dictionaries की नामित entries में। कुंजी जिस पहले स्थान पर मिलती है, वही उपयोग होता है। String और list के मान अलग caption विकल्प बनते हैं, एक prompt में जोड़े नहीं जाते। अनुपस्थित या खाली मान छोड़ दिए जाते हैं; `caption_strategy: "webshart"` के साथ चुने हुए captions न होने पर sample छोड़ दिया जाता है, भले ही उसमें default caption या `.txt` sidecar हो। यह विकल्प न देने पर default lookup बना रहता है। JSON सामग्री index में न होने पर JSON sidecar पढ़ा जाता है। Caption और bucket caches चुनी गई कुंजियों के अनुसार अलग रखे जाते हैं। WebUI की Webshart settings में हर पंक्ति पर एक कुंजी लिखें।
- `webshart_optimize_captions` (alternate spelling `webshart_optimise_captions`; `webshart` block के अंदर `optimize_captions`/`optimise_captions` भी accepted हैं) startup पर caption layout probe करता है और, जब captions metadata index की बजाय `.txt`/`.json` sidecar tar members में हों, उन्हें एक बार local Webshart metadata cache में fold कर देता है। इसके बिना, sidecar-caption datasets (जैसे `laion/conceptual-captions-12m-webdataset`) को हर बार captions enumerate होने पर — startup, checkpointing और model card generation में — प्रति sample एक range read की कीमत चुकानी पड़ती है। जिन datasets की metadata में captions पहले से embedded हैं, वे coalescing अपने आप skip कर देते हैं।

#### Captions को पहले से optimize करना
Expand Down
1 change: 1 addition & 0 deletions documentation/DATALOADER.ja.md
Original file line number Diff line number Diff line change
Expand Up @@ -1378,6 +1378,7 @@ Webshart データセットは `webshart` パッケージで WebDataset 形式
- `metadata` は任意で、captions を含む別 metadata location を指定できます。`webshart/conceptual-captions-12m-webdataset-metadata` のような Hugging Face metadata repo では repo id だけを渡します。Webshart は source shard の `data/` などのサブフォルダ構成に従います。
- `metadata_backend` は `webshart`、`caption_strategy` は `webshart` または `instanceprompt` にします。
- `webshart.cache_dir` は SimpleTuner metadata と Webshart caches を保存します。`shard_cache_gb` と `parallel_downloads` は Webshart の shard cache に渡されます。`shard_cache_gb` を `0` にすると、shard 全体の cache を無効にし、index 付き range read を維持します。
- `webshart.caption_key` でキャプションのフィールドを選択できます。1つなら `"long_caption"`、複数なら `["long_caption", "short_caption"]` を指定すると、その順で収集します。キーはパスではなくそのままの名前として、サンプルの JSON メタデータ、インデックスのメタデータ、それぞれの `captions` 辞書内の名前付き項目の順に検索し、最初にキーが見つかった場所を使います。文字列やリストの値は1つのプロンプトに連結せず、キャプション候補になります。欠落した値や空の値は無視されます。`caption_strategy: "webshart"` では、選択したキャプションがないサンプルは、既定のキャプションや `.txt` サイドカーがあってもスキップされます。省略すると既定の取得方法を維持します。JSON の内容がインデックスにない場合はサイドカーを読み込みます。キャプションとバケットのキャッシュは設定したキーに応じて分離されます。WebUI の Webshart 設定では1行に1つのキーを入力します。
- `webshart_optimize_captions`(別綴り `webshart_optimise_captions`。`webshart` ブロック内では `optimize_captions`/`optimise_captions` も受け付けます)は起動時に caption layout を probe し、captions が metadata index ではなく `.txt`/`.json` の sidecar tar member にある場合、それらをローカルの Webshart metadata cache に一度だけ統合します。このオプションがないと、sidecar caption の dataset(たとえば `laion/conceptual-captions-12m-webdataset`)は captions を列挙するたび — 起動時、checkpoint 時、model card 生成時 — にサンプルごとに 1 回の range read が発生します。metadata に captions が既に埋め込まれている dataset では、統合は自動的にスキップされます。

#### captions を事前に最適化する
Expand Down
1 change: 1 addition & 0 deletions documentation/DATALOADER.md
Original file line number Diff line number Diff line change
Expand Up @@ -1433,6 +1433,7 @@ Webshart datasets load WebDataset-style tar shards through the `webshart` packag
- `metadata_backend` must be `webshart`; it reads dimensions and captions from Webshart metadata.
- `caption_strategy` should be `webshart` to train from metadata captions, or `instanceprompt` to ignore stored captions.
- `webshart.cache_dir` stores SimpleTuner metadata plus Webshart metadata and shard caches. `shard_cache_gb` and `parallel_downloads` are passed to Webshart's shard cache; set `shard_cache_gb` to `0` to disable whole-shard caching and retain indexed range reads.
- `webshart.caption_key` optionally selects caption fields: use `"long_caption"` for one key or `["long_caption", "short_caption"]` to collect multiple keys in order. Keys are literal names, checked in the sample’s JSON metadata, then its indexed metadata, then named entries inside their `captions` dictionaries; the first location containing a key wins. String and list values become caption variants, rather than being joined into one prompt. Missing or empty values are ignored; with `caption_strategy: "webshart"`, samples with no selected captions are skipped, even if they have default captions or a `.txt` sidecar. Omitting the option keeps the default caption lookup. JSON sidecars are read when their contents are absent from the index. Caption and bucket caches are separated by the configured selector. In the WebUI’s Webshart settings, enter one key per line.
- `webshart_optimize_captions` (alt spelling `webshart_optimise_captions`; also accepted as `optimize_captions`/`optimise_captions` inside the `webshart` block) probes the caption layout at startup and, when captions live in `.txt`/`.json` sidecar tar members rather than the metadata index, folds them into the local Webshart metadata cache once. Without it, sidecar-caption datasets (for example `laion/conceptual-captions-12m-webdataset`) pay one range read per sample every time captions are enumerated — startup, checkpointing, and model card generation. Datasets whose metadata already embeds captions skip the coalescing automatically.

#### Optimizing captions ahead of time
Expand Down
1 change: 1 addition & 0 deletions documentation/DATALOADER.pt-BR.md
Original file line number Diff line number Diff line change
Expand Up @@ -1377,6 +1377,7 @@ Datasets Webshart carregam shards tar no estilo WebDataset pelo pacote `webshart
- `metadata` é opcional e pode apontar para metadados separados com captions. Para repos Hugging Face de metadata como `webshart/conceptual-captions-12m-webdataset-metadata`, passe o repo id; o Webshart segue o layout de subpastas do source, como `data/`.
- `metadata_backend` deve ser `webshart`; `caption_strategy` deve ser `webshart` ou `instanceprompt`.
- `webshart.cache_dir` armazena os metadados do SimpleTuner e os caches do Webshart. `shard_cache_gb` e `parallel_downloads` são passados ao cache de shards do Webshart; defina `shard_cache_gb` como `0` para desativar o cache de shards completos e manter leituras por intervalo indexadas.
- `webshart.caption_key` permite selecionar campos de caption: use `"long_caption"` para uma chave ou `["long_caption", "short_caption"]` para coletar várias na ordem indicada. As chaves são nomes literais, buscados nos metadados JSON da amostra, depois nos metadados do índice e, por fim, nas entradas nomeadas dos respectivos dicionários `captions`; vale o primeiro local que contém a chave. Valores de texto e listas tornam-se variantes de caption, sem serem concatenados em um único prompt. Valores ausentes ou vazios são ignorados; com `caption_strategy: "webshart"`, amostras sem captions selecionadas são ignoradas mesmo que tenham captions padrão ou um sidecar `.txt`. Omitir a opção mantém a busca padrão. Sidecars JSON são lidos quando seu conteúdo não está no índice. As caches de captions e buckets são separadas conforme o seletor configurado. Nas configurações Webshart da WebUI, insira uma chave por linha.
- `webshart_optimize_captions` (grafia alternativa `webshart_optimise_captions`; também aceito como `optimize_captions`/`optimise_captions` dentro do bloco `webshart`) sonda o layout de captions na inicialização e, quando os captions ficam em membros tar sidecar `.txt`/`.json` em vez do índice de metadados, consolida-os uma única vez no cache local de metadados do Webshart. Sem essa opção, datasets com captions em sidecars (por exemplo `laion/conceptual-captions-12m-webdataset`) pagam uma leitura por intervalo por amostra sempre que os captions são enumerados — na inicialização, nos checkpoints e na geração do model card. Datasets cujos metadados já embutem os captions pulam a consolidação automaticamente.

#### Otimizando captions com antecedência
Expand Down
1 change: 1 addition & 0 deletions documentation/DATALOADER.zh.md
Original file line number Diff line number Diff line change
Expand Up @@ -1377,6 +1377,7 @@ Webshart 数据集通过 `webshart` 包加载 WebDataset 风格的 tar shards。
- `metadata` 可选,可指向包含 captions 的独立 metadata location。对于 `webshart/conceptual-captions-12m-webdataset-metadata` 这样的 Hugging Face metadata repo,传 repo id 即可;Webshart 会跟随 source shard 的 `data/` 等子目录布局。
- `metadata_backend` 必须为 `webshart`;`caption_strategy` 应为 `webshart` 或 `instanceprompt`。
- `webshart.cache_dir` 存储 SimpleTuner metadata 与 Webshart caches。`shard_cache_gb` 和 `parallel_downloads` 会传给 Webshart 的 shard cache;将 `shard_cache_gb` 设为 `0` 可禁用整 shard cache,并保留基于索引的 range reads。
- `webshart.caption_key` 可用于选择字幕字段:单个键使用 `"long_caption"`,多个键使用 `["long_caption", "short_caption"]`,按列表顺序收集。键按字面名称匹配,依次检查样本的 JSON 元数据、索引元数据及两者 `captions` 字典中的命名条目;采用第一个包含该键的位置。字符串和列表值作为字幕候选,不会拼接成一个提示词。缺失或空值会被忽略;使用 `caption_strategy: "webshart"` 时,没有选中字幕的样本将被跳过,即使它有默认字幕或 `.txt` 伴随文件。省略此选项将保留默认查找方式。如果索引未包含 JSON 内容,则读取 JSON 伴随文件。字幕和分桶缓存按配置的键分别保存。在 WebUI 的 Webshart 设置中,每行输入一个键。
- `webshart_optimize_captions`(另一拼写 `webshart_optimise_captions`;在 `webshart` 块内也接受 `optimize_captions`/`optimise_captions`)会在启动时探测 caption 布局,当 captions 位于 `.txt`/`.json` sidecar tar 成员中而不是 metadata 索引中时,将它们一次性合并进本地 Webshart metadata cache。若不启用,sidecar caption 数据集(例如 `laion/conceptual-captions-12m-webdataset`)在每次枚举 captions 时——启动、checkpoint、生成 model card——都要为每个样本付出一次 range read。metadata 中已内嵌 captions 的数据集会自动跳过合并。

#### 提前优化 captions
Expand Down
6 changes: 4 additions & 2 deletions documentation/OPTIONS.es.md
Original file line number Diff line number Diff line change
Expand Up @@ -875,6 +875,7 @@ Muchas configuraciones se establecen a través del [dataloader config](DATALOADE

### `--post_upload_script`

- Tras cada validación integrada completada (manual desde la WebUI, programada o de referencia del modelo base), el script también se ejecuta si no hay un proveedor de publicación configurado. En este caso, `{local_checkpoint_path}` es `output_dir` (no se requiere un checkpoint) y `{remote_checkpoint_path}` está vacío. Los proveedores configurados mantienen un hook por subida exitosa, con las rutas devueltas; las subidas fallidas no activan un hook local. Las validaciones omitidas, fallidas o canceladas y los lanzamientos de scripts externos no activan este hook de finalización.
- **Qué**: Ejecutable opcional que se ejecuta después de que cada proveedor de publicación y la subida a Hugging Face Hub termina (subidas finales del modelo y de checkpoints). Se ejecuta de forma asíncrona para que el entrenamiento no se bloquee.
- **Marcadores**: Mismas sustituciones que `--validation_external_script`, además de `{remote_checkpoint_path}` (URI devuelta por el proveedor) para que puedas reenviar la URL publicada a sistemas downstream.
- **Notas**:
Expand Down Expand Up @@ -1989,10 +1990,11 @@ Mapeo de opciones upstream (LayerSync → SimpleTuner):

### `--disk_low_threshold`

- **Qué**: Espacio mínimo libre en disco requerido antes de guardar checkpoints.
- **Por qué**: Previene que el entrenamiento falle por errores de disco lleno al detectar espacio bajo tempranamente y tomar una acción configurada.
- **Qué**: Espacio mínimo libre en disco requerido antes de guardar checkpoints y compilar grafos con TorchInductor (incluida la recompilación).
- **Por qué**: Detecta poco espacio anticipadamente y aplica la acción configurada al sistema de archivos de los checkpoints o de la caché del compilador.
- **Formato**: Cadena de tamaño como `100G`, `50M`, `1T`, `500K`, o bytes simples.
- **Por defecto**: Ninguno (función desactivada)
- **Alcance**: Cada proceso que compila comprueba `TORCHINDUCTOR_CACHE_DIR` (o el valor predeterminado de PyTorch) y un `TRITON_CACHE_DIR` separado si está configurado. Es una comprobación previa, no una reserva: la compilación puede agotar el disco tras iniciarse y la inicialización del backend puede escribir antes de la comprobación. Elija un umbral suficiente para compilar. Estas comprobaciones no recuperan errores de memoria CUDA ni reintentan compilaciones fallidas.

### `--disk_low_action`

Expand Down
Loading
Loading