ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

从一篇新闻到一句话摘要:T5摘要微调实操(CNN/Daily Mail)

从一篇新闻到一句话摘要:T5摘要微调实操(CNN/Daily Mail) 从一篇新闻到一句话摘要T5摘要微调实操CNN/Daily Mail【免费下载链接】Transformers-TutorialsThis repository contains demos I made with the Transformers library by HuggingFace.项目地址: https://gitcode.com/GitHub_Trending/tr/Transformers-Tutorials在 Transformers-Tutorials 仓库里你能拿到一个端到端跑通的 T5 摘要模型输入一篇完整新闻输出生成的抽象式摘要。T5/ 目录下有一个现成的完整 notebook.ipynb)用 HuggingFace Accelerate 在 Colab TPU 上微调 t5-base数据集是荷兰语版 CNN/Daily Mail。动手前整个流程可以拆成三个问题数据以什么格式喂给模型训练怎么分发到 8 个加速核推理时怎么产出可用的摘要问题一怎么让 T5听懂这是摘要任务结论先行两件事给输入加任务前缀notebook 用的是荷兰语 Vat samen: 即摘要把摘要编码成 labels并把填充位置掩掉。T5 把所有任务统一成文本到文本模型靠前缀区分任务类型而 labels 里的 padding 必须置为 -100否则 CrossEntropyLoss 会把填充位置也算进损失。prefix Vat samen: # 任务前缀让模型知道在做摘要 inputs tokenizer([prefix a for a in articles], max_length512, paddingmax_length, truncationTrue) labels tokenizer(summaries, max_length64, paddingmax_length).input_ids # 关键padding token 替换为 -100损失计算时忽略注意这里 padding 用的是固定 max_length 而不是 batch 内最长。这是 TPU 的硬性要求——TPU 不喜欢动态形状在 GPU 上训练应改成 pad 到 batch 内最长更省显存。问题二TPU 上的训练循环怎么搭训练循环是原生 PyTorch 写的和 GPU 代码的差异只有一个对象Accelerator。它负责把模型、优化器和 DataLoader 一起分发到 8 个 TPU coreaccelerator.backward(loss)替代原来的loss.backward()其余逻辑不变。accelerator Accelerator() model T5ForConditionalGeneration.from_pretrained(flax-community/t5-base-dutch) optimizer AdamW(model.parameters(), lr1e-4) # 一次性 prepare模型、优化器、dataloader 全部分发到 TPU model, optimizer, train_dl, val_dl accelerator.prepare( model, optimizer, train_dl, val_dl)超参上有两处值得抄batch size 写 2因为这是每个 core 的值有效 batch 是 2×8验证集上用 patience3 的早停。如果你只有 GPU这段可以直接换成 Seq2SeqTrainer上面的数据预处理代码原样适用。问题三推理时怎么稳定产出摘要 微调完的模型推理时前缀一个都不能少。notebook 里用的是采样模式生成generated model.generate(input_ids, do_sampleTrue, max_length50, top_k0, temperature0.7) summary tokenizer.decode(generated.squeeze(), skip_special_tokensTrue)max_length50 和训练时 64 的 target 长度对齐留出特殊 token 的空间别设太大否则模型会写出摘要篇幅之外的内容。出问题的自查顺序摘要重复先查是不是漏了任务前缀截断太早再查 max_length 是否设小了。边界说明这个方案覆盖不了什么示例数据是荷兰语版 CNN/Daily Mailml6team/cnn_dailymail_nl。换成英文 t5-base流程完全一致前缀改为 summarize: 即可——英文摘要本来就在 T5 预训练任务里前缀更管用。TPU 训练需要 Colab TPU 或 GCP 环境本地 GPU 请去掉 Accelerator直接用 Trainer。数据预处理前缀 截断 -100 掩码是三种场景通用的核心先读懂这段再动训练代码。下一步克隆仓库后直接打开 T5/ 目录下的 notebook 跑起来想对比 GPU Trainer 路线可以把本文的数据预处理段直接迁移到 Seq2SeqTrainer 里验证。【免费下载链接】Transformers-TutorialsThis repository contains demos I made with the Transformers library by HuggingFace.项目地址: https://gitcode.com/GitHub_Trending/tr/Transformers-Tutorials创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表