## 自我奖励语言模型
MetaAI 的自我奖励语言模型中提出的训练框架的实现
他们确实牢记了DPO 论文的标题。
该库还包含 SPIN 的实现,Teknium of Nous Research 对此表示乐观。
## 欣赏
- A16Z 开源 AI 资助计划 和 ? Huggingface 的慷慨赞助,以及我的其他赞助商,为我提供了开源当前人工智能研究的独立性
## 安装
`` 重击
$ pip install self-rewarding-lm-pytorch
````
## 用法
````蟒蛇
进口火炬
从 torch 导入张量
从 self_rewarding_lm_pytorch 导入(
自我奖励培训师,
创建模拟数据集
)
从 x_transformers 导入 TransformerWrapper、解码器
变压器 = TransformerWrapper(
代币数量 = 256,
最大序列长度 = 1024,
attn_layers = 解码器(
暗淡= 512,
深度 = 1,
头 = 8
)
)
sft_dataset = create_mock_dataset(100, lambda: (torch.randint(0, 256, (256,)), torch.tensor(1)))
Prompt_dataset = create_mock_dataset(100, lambda: '模拟提示')
defdecode_tokens(令牌:张量)->str:
解码令牌 = lambda 令牌:str(chr(max(32, 令牌)))
返回 ''.join(list(map(decode_token, tokens)))
defencode_str(seq_str: str) -> 张量:
返回张量(列表(map(ord,seq_str)))
训练师 = SelfRewardingTrainer(
变压器,
finetune_configs = 字典(
train_sft_dataset = sft_dataset,
self_reward_prompt_dataset=prompt_dataset,
dpo_num_train_steps = 1000
),
tokenizer_decode = 解码令牌,
tokenizer_encode = 编码_str,
Accelerate_kwargs = 字典(
中央处理器=真
)
)
教练(overwrite_checkpoints = True)
# 每个微调阶段后的检查点将保存到 ./checkpoints
````
SPIN 可以按如下方式进行训练 - 也可以将其添加到微调管道中,如自述文件中的最后一个示例所示。
````蟒蛇
进口火炬
从 self_rewarding_lm_pytorch 导入(
SPIN训练器,
创建模拟数据集
)
从 x_transformers 导入 TransformerWrapper、解码器
变压器 = TransformerWrapper(
代币数量 = 256,
最大序列长度 = 1024,
attn_layers = 解码器(
暗淡= 512,
深度 = 6,
头 = 8
)
)
sft_dataset = create_mock_dataset(100, lambda: (torch.randint(0, 256, (256,)), torch.tensor(1)))
spin_trainer = SPINTrainer(
变压器,
最大序列长度 = 16,
train_sft_dataset = sft_dataset,
检查点_每个 = 100,
spin_kwargs = 字典(
λ=0.1,
),
)
自旋训练器()
````
说你想要
开源推荐
morning
GitHub 热门项目: self-rewarding-lm-pytorch
摘要
GitHub项目:self-rewarding-lm-pytorch 仓库地址:https://github。
dataset
the
from
import
str
2026-05-26
1 阅读
GitHub Trending
GitHub 项目:self-rewarding-lm-pytorch
仓库地址:https://github.com/lucidrains/self-rewarding-lm-pytorch
星级:1409 | 作者:lucidrains
项目描述:MetaAI 自我奖励语言模型中提出的训练框架的实现
===================================================
自述文件内容:
## 自我奖励语言模型
MetaAI 的自我奖励语言模型中提出的训练框架的实现
他们确实牢记了DPO 论文的标题。
该库还包含 SPIN 的实现,Teknium of Nous Research 对此表示乐观。
## 欣赏
- A16Z 开源 AI 资助计划 和 ? Huggingface 的慷慨赞助,以及我的其他赞助商,为我提供了开源当前人工智能研究的独立性
## 安装
`` 重击
$ pip install self-rewarding-lm-pytorch
````
## 用法
````蟒蛇
进口火炬
从 torch 导入张量
从 self_rewarding_lm_pytorch 导入(
自我奖励培训师,
创建模拟数据集
)
从 x_transformers 导入 TransformerWrapper、解码器
变压器 = TransformerWrapper(
代币数量 = 256,
最大序列长度 = 1024,
attn_layers = 解码器(
暗淡= 512,
深度 = 1,
头 = 8
)
)
sft_dataset = create_mock_dataset(100, lambda: (torch.randint(0, 256, (256,)), torch.tensor(1)))
Prompt_dataset = create_mock_dataset(100, lambda: '模拟提示')
defdecode_tokens(令牌:张量)->str:
解码令牌 = lambda 令牌:str(chr(max(32, 令牌)))
返回 ''.join(list(map(decode_token, tokens)))
defencode_str(seq_str: str) -> 张量:
返回张量(列表(map(ord,seq_str)))
训练师 = SelfRewardingTrainer(
变压器,
finetune_configs = 字典(
train_sft_dataset = sft_dataset,
self_reward_prompt_dataset=prompt_dataset,
dpo_num_train_steps = 1000
),
tokenizer_decode = 解码令牌,
tokenizer_encode = 编码_str,
Accelerate_kwargs = 字典(
中央处理器=真
)
)
教练(overwrite_checkpoints = True)
# 每个微调阶段后的检查点将保存到 ./checkpoints
````
SPIN 可以按如下方式进行训练 - 也可以将其添加到微调管道中,如自述文件中的最后一个示例所示。
````蟒蛇
进口火炬
从 self_rewarding_lm_pytorch 导入(
SPIN训练器,
创建模拟数据集
)
从 x_transformers 导入 TransformerWrapper、解码器
变压器 = TransformerWrapper(
代币数量 = 256,
最大序列长度 = 1024,
attn_layers = 解码器(
暗淡= 512,
深度 = 6,
头 = 8
)
)
sft_dataset = create_mock_dataset(100, lambda: (torch.randint(0, 256, (256,)), torch.tensor(1)))
spin_trainer = SPINTrainer(
变压器,
最大序列长度 = 16,
train_sft_dataset = sft_dataset,
检查点_每个 = 100,
spin_kwargs = 字典(
λ=0.1,
),
)
自旋训练器()
````
说你想要
## 自我奖励语言模型
MetaAI 的自我奖励语言模型中提出的训练框架的实现
他们确实牢记了DPO 论文的标题。
该库还包含 SPIN 的实现,Teknium of Nous Research 对此表示乐观。
## 欣赏
- A16Z 开源 AI 资助计划 和 ? Huggingface 的慷慨赞助,以及我的其他赞助商,为我提供了开源当前人工智能研究的独立性
## 安装
`` 重击
$ pip install self-rewarding-lm-pytorch
````
## 用法
````蟒蛇
进口火炬
从 torch 导入张量
从 self_rewarding_lm_pytorch 导入(
自我奖励培训师,
创建模拟数据集
)
从 x_transformers 导入 TransformerWrapper、解码器
变压器 = TransformerWrapper(
代币数量 = 256,
最大序列长度 = 1024,
attn_layers = 解码器(
暗淡= 512,
深度 = 1,
头 = 8
)
)
sft_dataset = create_mock_dataset(100, lambda: (torch.randint(0, 256, (256,)), torch.tensor(1)))
Prompt_dataset = create_mock_dataset(100, lambda: '模拟提示')
defdecode_tokens(令牌:张量)->str:
解码令牌 = lambda 令牌:str(chr(max(32, 令牌)))
返回 ''.join(list(map(decode_token, tokens)))
defencode_str(seq_str: str) -> 张量:
返回张量(列表(map(ord,seq_str)))
训练师 = SelfRewardingTrainer(
变压器,
finetune_configs = 字典(
train_sft_dataset = sft_dataset,
self_reward_prompt_dataset=prompt_dataset,
dpo_num_train_steps = 1000
),
tokenizer_decode = 解码令牌,
tokenizer_encode = 编码_str,
Accelerate_kwargs = 字典(
中央处理器=真
)
)
教练(overwrite_checkpoints = True)
# 每个微调阶段后的检查点将保存到 ./checkpoints
````
SPIN 可以按如下方式进行训练 - 也可以将其添加到微调管道中,如自述文件中的最后一个示例所示。
````蟒蛇
进口火炬
从 self_rewarding_lm_pytorch 导入(
SPIN训练器,
创建模拟数据集
)
从 x_transformers 导入 TransformerWrapper、解码器
变压器 = TransformerWrapper(
代币数量 = 256,
最大序列长度 = 1024,
attn_layers = 解码器(
暗淡= 512,
深度 = 6,
头 = 8
)
)
sft_dataset = create_mock_dataset(100, lambda: (torch.randint(0, 256, (256,)), torch.tensor(1)))
spin_trainer = SPINTrainer(
变压器,
最大序列长度 = 16,
train_sft_dataset = sft_dataset,
检查点_每个 = 100,
spin_kwargs = 字典(
λ=0.1,
),
)
自旋训练器()
````
说你想要