
葡萄牙语NLP高效精调模型的详细解析
研究展示了如何在有限资源下使用Hugging Face和fastai v2对英语GPT-2进行精调,构建出葡萄牙语语言模型。该模型基于GPT-2 small,经过一天训练获得37.99%的准确率和23.76的困惑度,显示了其在葡萄牙语文本生成及其他NLP任务中的表现。研究指出,迁移学习可在任何语言的前沿语言模型开发中发挥作用。
GPorTuguese-2(葡萄牙语GPT-2 small)是一个用于葡萄牙语文本生成及其他自然语言处理(NLP)任务的尖端语言模型。它基于GPT-2 small模型,主要针对葡萄牙语维基百科进行训练。通过迁移学习和微调技术,在不到一天的时间内完成了训练,使用的是一块NVIDIA V100 32GB显卡和略高于1GB的训练数据。这一项目证明了即使在低资源的情况下,也能够实现高水平的语言模型。
模型的微调基于英语预训练的GPT-2 small,利用了Hugging Face的Transformers和Tokenizers库,并结合了fastai v2的深度学习框架。详细信息和请求请访问"Faster than training from scratch — Fine-tuning the English GPT-2 in any language with Hugging Face and fastai v2"。
| 模型名 | 参数量 | 模型文件(pt/tf) | 架构 | 训练/验证数据(文本) |
|---|---|---|---|---|
gpt2-small-portuguese | 124M | 487M / 475M | GPT-2 small | 葡萄牙语维基百科(1.28 GB / 0.32 GB) |
在超过一天的时间(我们只使用了一块NVIDIA V100 32GB显卡;通过分布式数据并行训练模式,可将时间缩短至10小时,仅需两块显卡),我们得到了3.17的损失,37.99%的准确率和23.76的困惑度。
| 经过 ... 轮次 | 损失 | 准确率 (%) | 困惑度 | 每轮次时间 | 累积时间 |
|---|---|---|---|---|---|
| 0 | 9.95 | 9.90 | 20950.94 | 00:00:00 | 00:00:00 |
| 1 | 3.64 | 32.52 | 38.12 | 5:48:31 | 5:48:31 |
| 2 | 3.30 | 36.29 | 27.16 | 5:38:18 | 11:26:49 |
| 3 | 3.21 | 37.46 | 24.71 | 6:20:51 | 17:47:40 |
| 4 | 3.19 | 37.74 | 24.21 | 6:06:29 | 23:54:09 |
| 5 | 3.17 | 37.99 | 23.76 | 6:16:22 | 30:10:31 |
GPT-2是一个基于Transformer架构的模型,在一个非常大的英语数据集上进行自监督训练。这意味着,模型在没有人工标记的数据集上进行训练,主要任务是预测句子中的下一个词。这种训练方式利用了广泛的公开数据,通过自动化过程生成输入和标签。
GPT-2内部使用了一种掩码机制,确保每个词元的预测仅依赖于它之前的输入而不是以后。通过这种方式,模型学到了英语语言的内部表示法,这对后续的任务提取有益。
以下代码段展示了如何使用PyTorch:
from transformers import AutoTokenizer, AutoModelWithLMHead import torch tokenizer = AutoTokenizer.from_pretrained("pierreguillou/gpt2-small-portuguese") model = AutoModelWithLMHead.from_pretrained("pierreguillou/gpt2-small-portuguese") # 获取最大序列长度为1024 tokenizer.model_max_length=1024 model.eval() # 禁用dropout(或保留在训练模式以进行微调)
# 输入序列 text = "Quem era Jim Henson? Jim Henson era um" inputs = tokenizer(text, return_tensors="pt") # 模型输出 outputs = model(**inputs, labels=inputs["input_ids"]) loss, logits = outputs[:2] predicted_index = torch.argmax(logits[0, -1, :]).item() predicted_text = tokenizer.decode([predicted_index]) # 结果 print('输入文本:', text) print('预测文本:', predicted_text) # 输入文本: Quem era Jim Henson? Jim Henson era um # 预测文本: homem
# 输入序列 text = "Quem era Jim Henson? Jim Henson era um" inputs = tokenizer(text, return_tensors="pt") # 使用Top-k采样文本生成方法的模型输出 sample_outputs = model.generate(inputs.input_ids, pad_token_id=50256, do_sample=True, max_length=50, # 可设置所需的词元数 top_k=40, num_return_sequences=1) # 生成的序列 for i, sample_output in enumerate(sample_outputs): print(">> 生成的文本 {}\n\n{}".format(i+1, tokenizer.decode(sample_output.tolist()))) # >> 生成的文本 # Quem era Jim Henson? Jim Henson era um executivo de televisão e diretor de um grande estúdio de cinema mudo chamado Selig, # depois que o diretor de cinema mudo Georges Seuray dirigiu vários filmes para a Columbia e o estúdio。
以下代码段展示了如何使用TensorFlow:
from transformers import AutoTokenizer, TFAutoModelWithLMHead import tensorflow as tf tokenizer = AutoTokenizer.from_pretrained("pierreguillou/gpt2-small-portuguese") model = TFAutoModelWithLMHead.from_pretrained("pierreguillou/gpt2-small-portuguese") # 获取最大序列长度为1024 tokenizer.model_max_length=1024 model.eval() # 禁用dropout(或保留在训练模式以进行微调)
# 输入序列 text = "Quem era Jim Henson? Jim Henson era um" inputs = tokenizer.encode(text, return_tensors="tf") # 使用Top-k采样文本生成方法的模型输出 outputs = model.generate(inputs, eos_token_id=50256, pad_token_id=50256, do_sample=True, max_length=40, top_k=40) print(tokenizer.decode(outputs[0])) # >> 生成的文本 # Quem era Jim Henson? Jim Henson era um amigo familiar da família. Ele foi contratado pelo seu pai # para trabalhar como aprendiz no escritório de um escritório de impressão, e então começou a ganhar dinheiro
该模型的训练数据来自葡萄牙语维基百科,包含了大量未过滤的网络内容,可能存在偏见。正如OpenAI团队在其模型卡中指出的:
由于像GPT-2这样的大规模语言模型不能区分事实与虚构,因此我们不支持需要生成文本为真的用例。此外,它们反映了训练数据中的固有偏见,因此在用于与人类互动的系统前,应开展针对性偏见研究。我们没有发现性别、种族和宗教偏见的显著差异,提示对于所有版本的GPT-2,在敏感偏见的应用场合中应采取警惕态度。
葡萄牙语GPT-2 small由Pierre GUILLOU训练与评估,感谢其所属的巴西利亚大学AI实验室提供的GPU计算能力,以及教授Fabricio Ataides Braz和Nilton Correia da Silva在NLP策略定义方面的参与。
如使用我们的工作,请引用:
@inproceedings{pierre2020gpt2smallportuguese, title={GPorTuguese-2 (Portuguese GPT-2 small): a Language Model for Portuguese text generation (and more NLP tasks...)}, author={Pierre Guillou}, year={2020} }


免费创建高清无水印Sora视频
Vora是一个免费创建高清无水印Sora视频的AI工具


最适合小白的AI自动化工作流平台
无需编码,轻松生成可复用、可变现的AI自动化工作流

大模型驱动的Excel数据处理工具
基于大模型交互的表格处理系统,允许用户通过对话方式完成数据整理和可视化分析。系统采用机器学习算法解析用户指令,自动执行排序、公式计算和数据透视等操作,支持多种文件格式导入导出。数据处理响应速度保持在0.8秒以内,支持超过100万行数据的即时分析。


AI辅助编程,代码自动修复
Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。


AI论文写作指导平台
AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台 可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。


AI一键生成PPT,就用博思AIPPT!
博思AIPPT,新一代的AI生成PPT平台,支持智能生成PPT、AI美化PPT、文本&链接生成PPT、导入Word/PDF/Markdown文档生成PPT等,内置海量精美PPT模板,涵盖商务、教育、科技等不同风格,同时针对每个页面提供多种版式,一键自适应切换,完美适配各种办公场景。


AI赋能电商视觉革命,一站式智能商拍平台
潮际好麦深耕服装行业,是国内AI试衣效果最好的软件。使用先进AIGC能力为电商卖家批量提供优质的、低成本的商拍图。合作品牌有Shein、Lazada、安踏、百丽等65个国内外头部品牌,以及国内10万+淘宝、天猫、京东等主流平台的品牌商家,为卖家节省将近85%的出图成本,提升约3倍出图效率,让品牌能够快速上架。


企业专属的AI法律顾问
iTerms是法大大集团旗下法律子品牌,基于最先进的大语言模型(LLM)、专业的法律知识库和强大的智能体架构,帮助企业扫清合规障碍,筑牢风控防线,成为您企业专属的AI法律顾问。


稳定高效的流量提升解决方案,助力品牌曝光
稳定高效的流量提升解决方案,助力品牌曝光


最新版Sora2模型免费使用,一键生成无水印视频
最新版Sora2模型免费使用,一键生成无水印视频
最新AI工具、AI资讯
独家AI资源、AI项目落地

微信扫一扫关注公众号