$ the-wire · showcase
AsyncGRPO drops dead rollout groups; PEFT fixes FSDP2 adapter sizing
By RepoJournal · Filed · About Hugging Face · Composed from the cited sources · methodology
TRL stopped spending a forward and backward pass on rollout groups whose advantages are all zero, while PEFT closed two FSDP2 correctness gaps that quietly produced wrong LoRA shapes and stale parameter shards.
Filter zero-advantage groups in AsyncGRPO huggingface/trl
The rollout worker now drops any group whose rollouts all got the same reward, or none of which could be scored, before it reaches the trainer. Because the loop does not replace a dropped group, `batch/groups_per_step` falls while the batch keeps `samples_per_step` samples, so budget your step accounting for variable group counts.
fix: add peft on asyncgrpo openenv harbor + fixes huggingface/trl
The openenv harbor example gains PEFT support, and a rollout worker constructed outside TRL (such as harbor's) now sets the correct model id to query the adapter. Previously the base policy was silently called at every rollout for all steps.
FIX Adapter shape for FSDP2 layers on meshes not named "fsdp" huggingface/peft
`_get_in_out_features` sized LoRA from the weight's local shard unless the mesh was unnamed or had only `fsdp` dimensions. Since FSDP2 does not depend on dimension names, adapters on meshes named anything else were built to the shard shape rather than the full weight.
FIX Reshard on disable_adapter() exit only when needed huggingface/peft
With FSDP2 and `reshard_after_forward=False`, setting `requires_grad` on the unsharded copies left registered after a forward does not reach the shards. Exiting `disable_adapter()` now reshards only when it is actually needed.
fix: don't terminate the shared EGL display when a 3D thumbnail is deleted huggingface/dataset-viewer
Rendering one 3D thumbnail with pyrender's `OffscreenRenderer` called `eglTerminate()` on the process-wide display, so parallel rows lost their OpenGL context and their next EGL call failed with `EGL_NOT_INITIALIZED`. The exception fired inside `renderer.delete()`'s finally block, turning a successful render into a `TransformRowsProcessingError`; delete no longer terminates the shared display (...
[3d thumbnails]: frame and light mesh thumbnails like simready huggingface/dataset-viewer
Mesh thumbnails moved to a SimReady-style setup: an orthographic camera at 45 degrees, the model cropped to fill 90% of the frame, and key, fill and rim lights, replacing the dark, under-framed output. Elsewhere on the desk, the admin UI can now edit or delete queue jobs through `POST /admin/update-job` and `POST /admin/delete-job` without touching mongo directly.
Byte-level tokenizer.json + Hub tokenizer_class LlamaTokenizer/Fast huggingface/transformers
For Llama and DeepSeek models the Hub config says `LlamaTokenizer`/`Fast`, but whether the tokenizer is actually byte-level lives in `tokenizer.json`. The loader now opens that file instead of trusting `tokenizer_class` alone.
Action items
- → Upgrade peft past the FSDP2 adapter-shape and disable_adapter reshard fixes if you run LoRA on non-"fsdp" meshes huggingface/peft [plan]
- → Review asyncgrpo group filtering before relying on groups_per_step as a fixed batch width huggingface/trl [plan]