Merge pull request #3843 from unslothai/fix-grpo-version-compat

Unify Version usage and fix TRL version handling
This commit is contained in:
Daniel Han 2026-01-05 06:07:41 -08:00 committed by GitHub
commit a50f0e1a75
8 changed files with 30 additions and 18 deletions

View file

@ -24,7 +24,7 @@ from .utils import (
is_cdna,
)
from transformers.models.llama.modeling_llama import logger
from packaging.version import Version
from unsloth_zoo.utils import Version
from unsloth_zoo.loss_utils import (
patch_loss_functions as _patch_loss_functions,

View file

@ -15,7 +15,7 @@
from .llama import *
from ._utils import __version__
from unsloth_zoo.hf_utils import dtype_from_config
from unsloth_zoo.utils import _get_dtype
from unsloth_zoo.utils import _get_dtype, Version
from ..utils.packing import get_packed_info_from_kwargs
from ..utils.attention_dispatch import (
AttentionConfig,
@ -35,8 +35,6 @@ try:
repeat_kv,
)
except:
from packaging.version import Version
transformers_version = Version(transformers_version)
if not transformers_version >= Version("4.42"):
raise ImportError(

View file

@ -14,7 +14,7 @@
from .llama import *
from ._utils import __version__
from unsloth_zoo.utils import _get_dtype
from unsloth_zoo.utils import _get_dtype, Version
from unsloth_zoo.hf_utils import dtype_from_config
from ..utils.packing import (
build_sdpa_packed_attention_mask,
@ -34,8 +34,6 @@ try:
repeat_kv,
)
except:
from packaging.version import Version
transformers_version = Version(transformers_version)
if not transformers_version >= Version("4.38"):
raise ImportError(

View file

@ -14,7 +14,7 @@
from .llama import *
from ._utils import __version__
from unsloth_zoo.utils import _get_dtype
from unsloth_zoo.utils import _get_dtype, Version
from unsloth_zoo.hf_utils import dtype_from_config
from ..utils.packing import get_packed_info_from_kwargs
from ..utils.attention_dispatch import (
@ -41,8 +41,6 @@ try:
repeat_kv,
)
except:
from packaging.version import Version
transformers_version = Version(transformers_version)
if not transformers_version >= Version("4.42"):
raise ImportError(

View file

@ -15,7 +15,7 @@
from .llama import *
import os
from ._utils import __version__
from unsloth_zoo.utils import _get_dtype
from unsloth_zoo.utils import _get_dtype, Version
from unsloth_zoo.hf_utils import dtype_from_config
from ..utils.packing import get_packed_info_from_kwargs
from ..utils.attention_dispatch import (
@ -41,8 +41,6 @@ try:
GraniteForCausalLM,
)
except:
from packaging.version import Version
transformers_version = Version(transformers_version)
if not transformers_version >= Version("4.45.0"):
raise ImportError(

View file

@ -28,7 +28,6 @@ from .mapper import (
)
# https://github.com/huggingface/transformers/pull/26037 allows 4 bit loading!
from packaging.version import Version
from transformers import __version__ as transformers_version
from unsloth.models._utils import TorchAOConfig
from unsloth_zoo.utils import Version

View file

@ -43,10 +43,31 @@ torch_compile_options = {
"triton.cudagraphs": False,
}
from trl import __version__ as trl_version
# vLLM compatibility shim (TRL expects GuidedDecodingParams even if vLLM doesn't provide it)
try:
import vllm.sampling_params as _unsloth_vllm_sp
if not hasattr(_unsloth_vllm_sp, "GuidedDecodingParams"):
class GuidedDecodingParams:
def __init__(self, **kwargs):
self.kwargs = kwargs
_unsloth_vllm_sp.GuidedDecodingParams = GuidedDecodingParams
except Exception:
pass
from trl import __version__ as trl_version_raw
from importlib.metadata import version as importlib_version
from unsloth_zoo.utils import Version
trl_version = Version(trl_version)
try:
trl_version = Version(trl_version_raw)
except Exception:
try:
trl_version = Version(importlib_version("trl"))
except Exception:
trl_version = Version("0.0.0")
def vLLMSamplingParams(**kwargs):

View file

@ -211,7 +211,7 @@ def _backwards_compatible_trainer(trainer_class, config_class):
if "processing_class" in trainer_params and "tokenizer" in kwargs:
kwargs["processing_class"] = kwargs.pop("tokenizer")
if ("args" in kwargs) and (Version(trl.__version__) >= Version("0.13.0.dev0")):
if ("args" in kwargs) and (Version(trl) >= Version("0.13.0.dev0")):
training_args = kwargs.pop("args", None)
# Get parameters that Trainer.__init__ actually expects
@ -412,7 +412,7 @@ def _patch_trl_trainer():
if hasattr(trl, "__UNSLOTH_BACKWARDS_COMPATIBLE__"):
return
if Version(trl.__version__) <= Version("0.11.0"):
if Version(trl) <= Version("0.11.0"):
return
import trl.trainer