nlp - 如何在未标记的数据上微调 BERT?
解决方案
这里要区分的重要区别是您是否要微调模型,或者是否要将其暴露给额外的预训练。
前者只是一种训练 BERT 以适应特定监督任务的方法,通常需要 1000 个或更多样本,包括标签。
另一方面,预训练基本上是试图帮助 BERT 更好地“理解”来自某个领域的数据,基本上是继续其无监督的训练目标([MASK]
输入特定的词并试图预测应该存在的词),而你不需要标记数据。
但是,如果您的最终目标是句子嵌入,我强烈建议您查看Sentence Transformers,它基于 Huggingface 的变压器库的稍微过时的版本,但主要尝试生成高质量的嵌入。请注意,有一些方法可以使用替代损失进行训练,您可以在其中尝试模拟与嵌入相关的某种形式的损失。
编辑: Sentence-Transformers 的作者最近加入了 Huggingface,所以我希望在接下来的几个月里支持会大大改善!
推荐阅读
- kubernetes - k8s对master和worker的数量有要求吗
- dns - 将 example.com 定向到 www.example.com
- php - 谁使用 jQuery 上传图像错误并使用 ajax 发送图像
- html - 使用 django 动态创建分页 html 表
- mysql - 在 ubuntu 18.04 gpg 上安装 mariadb 10.3 添加密钥错误 gpg: keyserver receive failed: Server 指示失败
- google-cloud-firestore - Firestore 安全规则:根据时间戳值添加数据
- python - django runserver 在 docker-compose up 中挂起,但在 docker-compose run 中正确运行
- python - scapy - fields_desc - 添加字段作为偏移量
- php - 动态生成的 if 语句 eval
- node.js - google-api-nodejs-client 未获取详细信息