Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
25 changes: 23 additions & 2 deletions nemo_rl/models/policy/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -55,13 +55,34 @@ def _patch_transformers_tokenizer_class_set():
"Check if the upstream fix now applies and remove this patch if so."
)

from transformers import AutoTokenizer
from transformers.models.auto.tokenization_auto import (
MODELS_WITH_INCORRECT_HUB_TOKENIZER_CLASS,
TOKENIZER_MAPPING_NAMES,
)

MODELS_WITH_INCORRECT_HUB_TOKENIZER_CLASS.discard("deepseek_v3")
TOKENIZER_MAPPING_NAMES.pop("deepseek_v3", None)
_original_from_pretrained = AutoTokenizer.from_pretrained

def _patched_from_pretrained(pretrained_model_name_or_path, *args, **kwargs):
try:
# DSV3 goes here: the transformers blocklist routes its
# tokenizer.json around LlamaTokenizerFast.__init__'s Llama-specific
# post-processing, which would corrupt DSV3 special tokens.
return _original_from_pretrained(
pretrained_model_name_or_path, *args, **kwargs
)
except Exception:
# Moonlight goes here: it ships no tokenizer.json (only
# tiktoken.model + remote-code TikTokenTokenizer), so the blocklist
# prevents loading. Strip deepseek_v3 from the registries so
# trust_remote_code / auto_map takes over.
MODELS_WITH_INCORRECT_HUB_TOKENIZER_CLASS.discard("deepseek_v3")
TOKENIZER_MAPPING_NAMES.pop("deepseek_v3", None)
return _original_from_pretrained(
pretrained_model_name_or_path, *args, **kwargs
)

AutoTokenizer.from_pretrained = _patched_from_pretrained


_patch_transformers_tokenizer_class_set()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,8 @@ exit_if_max_steps_reached
cd $PROJECT_ROOT
uv run examples/run_grpo.py \
--config $CONFIG_PATH \
grpo.num_prompts_per_step=64 \
grpo.num_generations_per_prompt=8 \
grpo.num_prompts_per_step=32 \
grpo.num_generations_per_prompt=16 \
grpo.max_num_steps=$MAX_STEPS \
policy.model_name=$NRL_DEEPSEEK_V3_BF16_CKPT \
policy.tokenizer.name=$NRL_DEEPSEEK_V3_BF16_CKPT \
Expand Down
Loading