$ the-wire · showcase
Faster BPE loading, GLM tool-calling templates land in TRL
By RepoJournal · Filed · About Hugging Face · Composed from the cited sources · methodology
Tokenizers builds the BPE vocab store once instead of three times per load, while TRL learns the chat templates for the GLM-4.7 and GLM-5 family so tool-calling GRPOTrainer stops failing at init on those checkpoints.
perf(bpe): Build BucketVocabStore only once (10% faster build) huggingface/tokenizers
Loading a BPE model from config used to rebuild the VocabStore three times per from_file call, each time converting it to an AHashMap; the branch now builds the BucketVocabStore once, at the end of loading. SBrandeis measures the change as a 10% faster build.
Recognize the GLM-4.7 and GLM-5 chat templates for tool calling huggingface/trl
TRL now recognizes the chat templates shipped by zai-org/GLM-4.7, GLM-4.7-Flash, GLM-5, GLM-5.1, GLM-5.2 and GLM-5.3, which previously made add_response_schema raise "Unrecognized chat template" and killed tool-calling GRPOTrainer at init. The separate GLM-5.3-Flash template landed alongside it, keeping the GLM-4.5 tool-call format but without the newlines around it.
Fail CI test jobs on self-hosted runners when pytest does not complete huggingface/trl
On TRL's self-hosted Kubernetes runners, a step whose exec stream gets cut reports passed with exit code 0 even when pytest never finished, so failing test jobs went green. The test step now writes a marker file after pytest succeeds and the following step checks for it; jobs still using self-hosted runners should expect previously-hidden reds.
Use repo-wide linguist-generated globs so new models don't touch .gitattributes (#50181) huggingface/transformers
The CI security gate blocks fork PRs that edit .gitattributes, and per-model linguist-generated lines tripped it on every new model, so the globs moved repo-wide. New models no longer need a .gitattributes change to get their generated files classified.
Audio from video in jinja huggingface/transformers
Models without an explicit video+audio format can now pass audio in the conversation to place audio tokens, working in plug and play mode for any omni-modal model. Meanwhile Gemma4 forward() with raw pixel_values_videos no longer raises ValueError from a dropped num_frames_per_video, and DETR-family panoptic masks load correctly through load_image_as_tensor.