python-3.x - 使用 Simple Transformers 微调预训练的语言模型
问题描述
在他的文章“预训练变形金刚的语言模型微调”中,Thilina Rajapakse ( https://medium.com/skilai/language-model-fine-tuning-for-pre-trained-transformers-b7262774a7ee ) 提供了以下代码使用库微调预训练模型的片段simpletransformers
:
from simpletransformers.language_modeling import LanguageModelingModel
import logging
logging.basicConfig(level=logging.INFO)
transformers_logger = logging.getLogger("transformers")
transformers_logger.setLevel(logging.WARNING)
train_args = {
"reprocess_input_data": True,
"overwrite_output_dir": True,
}
model = LanguageModelingModel('bert', 'bert-base-cased', args=train_args)
model.train_model("data/train.txt", eval_file="data/text.txt")
model.eval_model("data/test.txt")
然后他补充说:
我们假设您已将数据集中的所有文本组合成两个文本文件 train.txt 和 test.txt,它们可以在 data/ 目录中找到。
我有两个问题:
问题 1
上面突出显示的句子是否意味着整个语料库将被合并到一个文本文件中?因此,假设训练语料库由 1,000,000 个文本文件组成,我们是否应该将它们全部合并到一个文本文件中,并使用这样的代码?
import fileinput
with open(outfilename, 'w') as fout, fileinput.input(filenames) as fin:
for line in fin:
fout.write(line)
问题2
我认为我可以使用预训练模型:bert-base-multilingual-cased
. 正确的?
解决方案
问题 1
是的,train_model()
和eval_model()
方法的输入需要是一个文件。
未来可能会支持从多个文件动态加载
问题2
是的,您可以使用bert-base-multilingual-cased
模型。
您将在此处找到有关语言模型训练的更详细、更新的指南。
来源 - 我是图书馆的创造者
推荐阅读
- python - 将新列添加到倒置二进制值的 ndarray | NumPy 数组 Python
- java - 无法构建 openfire-apns-plugin
- database - 如何通过最接近今天的数据查找记录
- c# - C#每次调用接口方法时添加自定义事件
- google-app-engine - 为什么 App Engine 实例会关闭并显示“启动”消息?
- javascript - 在 ktor httpClient(js) JS 引擎中忽略自签名证书的配置
- caching - 如何在nestJS中重置缓存拦截器的缓存值?
- python - 按时间窗口获取新的数据框
- spring-boot - Spring Boot - 兔子自定义 ConnectionFactory
- hibernate - 使用 Spring Data JPA 忽略 Hibernate FetchMode.SUBSELECT