TRL 文档
模型工具
并获得增强的文档体验
开始使用
模型工具
clone_chat_template
trl.clone_chat_template
< 源码 >( model: PreTrainedModel tokenizer: PreTrainedTokenizer source_tokenizer_path: str resize_to_multiple_of: typing.Optional[int] = 64 ) → 模型 (PreTrainedModel
)
参数
- model (
PreTrainedModel
) — 需要更新的模型。 - tokenizer (
PreTrainedTokenizer
) — 需要更新的 tokenizer。 - source_tokenizer_path (
str
) — 要克隆的预训练 tokenizer 的路径或标识符。 - resize_to_multiple_of (
int
或None
, 可选, 默认为64
) — 嵌入层将被调整到新的词汇表大小。如果此值不为None
,它会将新的词汇表大小向上取整到该值的最近倍数。
返回
模型 (PreTrainedModel
)
更新后的模型,其 token 嵌入已调整大小,并且 EOS token 已配置。 tokenizer (~transformers.PreTrainedTokenizer
):应用了聊天模板和特殊 token 的更新后 tokenizer。 added_tokens (list[int]
):从源 tokenizer 添加到 tokenizer 的 token 列表。
将聊天模板从源 tokenizer 克隆到目标 tokenizer,并相应地更新模型。
该函数
- 将聊天模板从源 tokenizer 复制到目标 tokenizer。
- 将源 tokenizer 中的任何新 token 添加到目标 tokenizer。
- 在 tokenizer 和模型中设置并同步 EOS token。
- 调整模型的 token 嵌入以匹配新的词汇表大小,可选择将其向上取整到指定值的倍数。在这种情况下,会向 tokenizer 添加虚拟 token,以确保词汇表大小与嵌入维度相匹配。
示例
from transformers import AutoModelForCausalLM, AutoTokenizer
from trl import clone_chat_template
model = AutoModelForCausalLM.from_pretrained("meta-llama/Llama-3.2-1B")
tokenizer = AutoTokenizer.from_pretrained("meta-llama/Llama-3.2-1B")
model, tokenizer, added_tokens = clone_chat_template(model, tokenizer, "Qwen/Qwen3-0.6B")
get_act_offloading_ctx_manager
trl.models.get_act_offloading_ctx_manager
< 源码 >( model: Module use_pin_memory: bool = True use_streams: bool = True min_offload_size: int = 1024 max_fwd_stash_size: int = 5 warn_if_no_head: bool = True ) → contextlib.ContextDecorator
参数
- model (
nn.Module
) — 使用激活卸载上下文管理器包装的模型。 - use_pin_memory (
bool
, 可选, 默认为True
) — 是否将卸载的张量放置在 CPU 的固定内存中。固定内存允许张量更快地移回 GPU,但它是一种有限的资源。 - use_streams (
bool
, 可选, 默认为True
) — 是否使用流进行性能优化,使通信与计算重叠。需要 torch-2.5.0 之后的 torch 版本。 - min_offload_size (
int
, 可选, 默认为1024
) — 张量符合卸载条件的最小字节数。如果张量太小,我们不希望浪费带宽和资源将其移至 CPU 再移回。 - max_fwd_stash_size (
int
, 可选, 默认为5
) — 前向存储区的最大大小,或在前向传递期间保持活动的连续激活的最大数量。此数字必须至少为 1。保持更多激活可能会允许通信和计算流之间有更多的重叠,但会增加内存使用。保持较少激活会节省内存,但可能会导致流之间的重叠不佳,从而增加运行时间。 - warn_if_no_head (
bool
, 可选, 默认为True
) — 是否在未检测到输出头时发出警告。如果设置为False
,则在未检测到输出头时不会引发警告。
返回
contextlib.ContextDecorator
模型的激活卸载上下文管理器。
返回模型的激活卸载上下文管理器。每一步中除了最后一个线性输出层之外的所有激活都将被卸载。
如果启用了激活卸载,我们返回 OffloadActivations 上下文管理器。如果禁用了激活卸载,我们返回一个 NoOpManager 上下文管理器。