Blenderbot 微调

2024-04-26

我一直在尝试微调 HuggingFace 的对话模型:Blendebot。我已经尝试过官方拥抱脸网站上给出的传统方法,该方法要求我们使用 trainer.train() 方法来完成此操作。我使用 .compile() 方法尝试了它。我尝试过使用 PyTorch 以及 TensorFlow 对我的数据集进行微调。这两种方法似乎都失败了,并给我们一个错误,指出没有适用于 Blenderbot 模型的编译或训练方法。我什至在网上到处查了一下 Blenderbot 如何对我的自定义数据进行微调,但没有任何地方正确提到运行时不会抛出错误。我浏览了 Youtube 教程、博客和 StackOverflow 帖子,但没有一个回答这个问题。希望有人能在这里回复并帮助我。我也愿意使用其他 HuggingFace 对话模型进行微调。

这是我用来微调 Blenderbot 模型的链接。

微调方法:https://huggingface.co/docs/transformers/training https://huggingface.co/docs/transformers/training

搅拌机机器人:https://huggingface.co/docs/transformers/model_doc/blenderbot https://huggingface.co/docs/transformers/model_doc/blenderbot

from transformers import BlenderbotTokenizer, BlenderbotForConditionalGeneration
mname = "facebook/blenderbot-400M-distill"
model = BlenderbotForConditionalGeneration.from_pretrained(mname)
tokenizer = BlenderbotTokenizer.from_pretrained(mname)


#FOR TRAINING: 

trainer = Trainer(
    model=model,
    args=training_args,
    train_dataset=small_train_dataset,
    eval_dataset=small_eval_dataset,
    compute_metrics=compute_metrics,
)
trainer.train()

#OR

model.compile(
    optimizer=tf.keras.optimizers.Adam(learning_rate=5e-5),
    loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True),
    metrics=tf.metrics.SparseCategoricalAccuracy(),
)

model.fit(tf_train_dataset, validation_data=tf_validation_dataset, epochs=3)

这些都不起作用。


也许尝试使用TFBlenderbotForConditionalGeneration类为Tensorflow。它有你需要的东西:

import tensorflow as tf
from transformers import BlenderbotTokenizer, TFBlenderbotForConditionalGeneration

mname = "facebook/blenderbot-400M-distill"
model = TFBlenderbotForConditionalGeneration.from_pretrained(mname)
tokenizer = BlenderbotTokenizer.from_pretrained(mname)

model.compile(
    optimizer=tf.keras.optimizers.Adam(learning_rate=5e-5),
    loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True),
    metrics=tf.metrics.SparseCategoricalAccuracy(),
)
....

See the docs https://huggingface.co/docs/transformers/model_doc/blenderbot#transformers.TFBlenderbotForConditionalGeneration了解更多信息。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Blenderbot 微调 的相关文章

随机推荐

  • 如何更改 MathJax 中数学的填充?

    就像 当我的 div 中有我的数学部分时 它看起来像这样 我将 div 的填充设置为0 那么 有没有办法改变数学填充的值呢 发现于here https stackoverflow com questions 11296415 how to
  • Python递归数据读取

    如果你曾经玩过 我的世界 下面的内容将会更有意义 由于你们中的许多人还没有 我将尽力解释它 我正在尝试编写一个递归函数 它可以找到从 Minecraft 食谱的平面文件中制作任何 Minecraft 物品的步骤 这个实在是让我难住了 平面文
  • [expr.ref]/1 中提到的脚注到底是什么意思?

    expr ref 1 http eel is c draft expr ref 1 A postfix expression followed by a dot or an arrow gt optionally followed by t
  • 执行正文 onload 事件后,在 WinForms WebBrowser 中获取 HTML 正文内容

    我在 WinForms 中有一个 WebBrowser 控件 其 URL 属性设置为外部网页 我还有一个用于 DocumentCompleted 事件的事件处理程序 在这个处理程序中 我试图获取特定元素 但 wb Document Body
  • 主机 LAN 上的 LXC 容器

    我的 LXC 容器通常与专用网络上的伪装桥配合使用 这次我想将容器放在主机的LAN上 但我无法得到任何结果 我在 debian 上使用 LXC 2 0 7 2 deb9u2 我参考了这个文档 LXC SimpleBridge https w
  • 用于停止表单提交的 JavaScript 代码

    停止表单提交的一种方法是从 JavaScript 函数返回 false 单击提交按钮时 将调用验证函数 我有一个表单验证的案例 如果满足该条件 我将调用一个名为的函数回到上一页 function returnToPreviousPage w
  • Google Developers Console:如何注册新应用程序?

    我正在努力追随本教程 https developers google com analytics solutions articles hello analytics api register project适用于 Google 的 Ana
  • npx create-next-app 命令不起作用 ENOENT 错误

    它显示了这个错误 我正在使用 npx 仍然显示使用纱线 当我将它用于反应应用程序时 npx 工作正常 它应该为我提供下一个应用程序启动器 临时修复可能是 npx create next app latest use npm 以便 creat
  • 如何使用 javascript 在 Whatsapp 上共享图像和文本

    你好 到目前为止 我可以使用 javascript 代码在 Whatsapp 上分享我的内容 但仍然无法分享带有文本的图像 有人做过吗 这是我的 JavaScript 代码 document ready function document
  • std::tr1::shared_ptr 是如何实现的?

    我一直在考虑使用共享指针 并且我知道如何自己实现一个 不想这样做 所以我正在尝试std tr1 shared ptr 我有几个问题 引用计数是如何实现的 它使用双向链表吗 顺便说一句 我已经用谷歌搜索过 但找不到任何可靠的东西 使用过程中有
  • 将命令行参数传递给已运行的应用程序实例

    我想将应用程序新实例的命令行参数传递给已经运行的应用程序 如果存在 到目前为止 我已经尝试了以下方法 程序 cs string Arguments Environment GetCommandLineArgs int iCurrentPro
  • 以编程方式将音乐文件访问到我的应用程序中

    如何以编程方式将设备中的音乐文件访问到我的应用程序中 另一种方法可能是使用 MediaStore 内容提供程序来查找您的音乐 http developer android com reference android provider Med
  • 如何查看大 JSON 对象是否包含值?

    我正在使用 PHP 对大量多维事件数组进行 json 编码 所以我得到如下内容 var ents 7 event id 7 nn The Whisky Drifters nn url the whisky drifters venue Th
  • 如何在 flutter 中重用有状态的 widget

    我有一个以下状态完整小部件 我需要通过更改两个变量来重用它id and collectionName 一般来说 我会提取一个小部件 但在这种情况下 我正在修改变量firstName 这不会让我提取小部件 class IndividualSi
  • 向量的循环移位(相当于numpy.roll)

    我有一个向量 a lt c 1 2 3 4 5 我想做一些类似的事情 b lt roll a 2 4 5 1 2 3 R中有类似的函数吗 我一直在谷歌上搜索 但 R Roll 主要给我提供有关西班牙语发音的页面 怎么样使用head and
  • WebStorm 没有本地存储的库

    我一直在开发一个完全可以在 jsfiddle net 上运行的项目 然而 当我尝试在 webStorm 中运行这个项目时 我收到两个错误 first second 之前 我在这里发布我的问题 我在 stackoverflow 上搜索但找不到
  • C++ 模板特化/重载

    首先 我对这个问题的模糊标题感到抱歉 我不知道如何总结它 我想要实现的目标如下 我希望能够将不同类型的模板非类型参数传递给同一个类模板 从而产生不同的实例化 像这样的事情 Foo lt 1 gt Foo lt 1 gt different
  • 是否可以在不使用清单的情况下设置 Powershell 模块名称/版本?

    我可以看到 如果没有清单 默认模块名称将设置为 psm1 文件名 但是有没有办法在模块代码中设置它 我也想在代码中设置版本 如果您要导入二进制模块 则将从程序集元数据中提取模块版本 然而 该名称只是 DLL 的文件名 对于脚本模块 psm1
  • 尝试在整数后添加字符然后打印结果时出现奇怪的结果

    我正在尝试创建一个简单的欧姆定律计算器 所以我们的想法是你可以填写两个变量 然后它会计算第三个变量 当我创建这个程序时 我发现了一个小问题 我不明白它是如何发生的 不幸的是我无法找到答案 我尝试打印一个显示完整计算的字符串 用户填写的两个变
  • Blenderbot 微调

    我一直在尝试微调 HuggingFace 的对话模型 Blendebot 我已经尝试过官方拥抱脸网站上给出的传统方法 该方法要求我们使用 trainer train 方法来完成此操作 我使用 compile 方法尝试了它 我尝试过使用 Py