【AI大模型】Transformers大模型库(十):repetition_penalty惩罚系数

 

目录​​​​​​​

一、引言 

二、惩罚系数repetition_penalty

2.1 概述

2.2 使用说明

2.3 使用示例

三、总结


一、引言 

 这里的Transformers指的是huggingface开发的大模型库,为huggingface上数以万计的预训练大模型提供预测、训练等服务。

🤗 Transformers 提供了数以千计的预训练模型,支持 100 多种语言的文本分类、信息抽取、问答、摘要、翻译、文本生成。它的宗旨是让最先进的 NLP 技术人人易用。
🤗 Transformers 提供了便于快速下载和使用的API,让你可以把预训练模型用在给定文本、在你的数据集上微调然后通过 model hub 与社区共享。同时,每个定义的 Python 模块均完全独立,方便修改和快速研究实验。
🤗 Transformers 支持三个最热门的深度学习库: Jax, PyTorch 以及 TensorFlow — 并与之无缝整合。你可以直接使用一个框架训练你的模型然后用另一个加载和推理。

本文重点介绍惩罚系数repetition_penalty

二、惩罚系数repetition_penalty

2.1 概述

repetition_penalty是在使用预训练语言模型进行文本生成时,用于控制生成文本中重复词或短语的惩罚系数。这个参数在 Hugging Face Transformers 库中被引入,以帮助减少生成文本中的重复和循环模式,提高生成文本的多样性和连贯性

2.2 使用说明

  • repetition_penalty 参数影响模型在生成文本时对已生成词的偏好。在默认情况下,模型在生成下一个词时,会根据训练数据中词的频率和上下文来预测下一个词的概率。然而,这种机制有时会导致模型生成重复的词或短语,特别是在长文本生成中。
  • 当设置 repetition_penalty 参数时,模型在计算下一个词的概率时,会降低已生成词的概率,从而减少重复。具体来说,如果一个词已经被生成过,它的概率会被乘以 repetition_penalty 的倒数。例如,如果 repetition_penalty 设置为 1.2,那么一个已经生成过的词的概率将被乘以 1/1.2,即 0.833,从而降低其被再次选择的概率。

2.3 使用示例

from transformers import AutoModelForCausalLM, AutoTokenizer

model = AutoModelForCausalLM.from_pretrained("model_name")
tokenizer = AutoTokenizer.from_pretrained("model_name")

input_text = "Hello, how are you?"
input_ids = tokenizer(input_text, return_tensors="pt").input_ids

# 使用 repetition_penalty 参数
output = model.generate(input_ids, max_length=100, repetition_penalty=1.2)

在这个例子中,repetition_penalty设置为1.2,意味着模型在生成文本时会轻微惩罚重复的词组,以增加生成文本的多样性。 

  • 如果repetition_penalty大于1,减少重复词的生成概率。
  • 如果repetition_penalty等于1,保持原有生成策略。
  • 如果repetition_penalty小于1,增加重复词的生成概率。

三、总结

本文先对大语言模型生成参数repetition_penalty进行讲解,希望可以帮助到您。

如果您还有时间,可以看看我的其他文章:

《AI—工程篇》

AI智能体研发之路-工程篇(一):Docker助力AI智能体开发提效

AI智能体研发之路-工程篇(二):Dify智能体开发平台一键部署

AI智能体研发之路-工程篇(三):大模型推理服务框架Ollama一键部署

AI智能体研发之路-工程篇(四):大模型推理服务框架Xinference一键部署

AI智能体研发之路-工程篇(五):大模型推理服务框架LocalAI一键部署

《AI—模型篇》

AI智能体研发之路-模型篇(一):大模型训练框架LLaMA-Factory在国内网络环境下的安装、部署及使用

AI智能体研发之路-模型篇(二):DeepSeek-V2-Chat 训练与推理实战

AI智能体研发之路-模型篇(三):中文大模型开、闭源之争

AI智能体研发之路-模型篇(四):一文入门pytorch开发

AI智能体研发之路-模型篇(五):pytorch vs tensorflow框架DNN网络结构源码级对比

AI智能体研发之路-模型篇(六):【机器学习】基于tensorflow实现你的第一个DNN网络

AI智能体研发之路-模型篇(七):【机器学习】基于YOLOv10实现你的第一个视觉AI大模型

AI智能体研发之路-模型篇(八):【机器学习】Qwen1.5-14B-Chat大模型训练与推理实战

AI智能体研发之路-模型篇(九):【机器学习】GLM4-9B-Chat大模型/GLM-4V-9B多模态大模型概述、原理及推理实战

《AI—Transformers应用》

【AI大模型】Transformers大模型库(一):Tokenizer

【AI大模型】Transformers大模型库(二):AutoModelForCausalLM

【AI大模型】Transformers大模型库(三):特殊标记(special tokens)

【AI大模型】Transformers大模型库(四):AutoTokenizer

【AI大模型】Transformers大模型库(五):AutoModel、Model Head及查看模型结构

最近更新

  1. TCP协议是安全的吗?

    2024-06-17 20:24:03       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-06-17 20:24:03       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-06-17 20:24:03       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-06-17 20:24:03       20 阅读

热门阅读

  1. MySQL触发器基本结构

    2024-06-17 20:24:03       8 阅读
  2. jingxiang制作

    2024-06-17 20:24:03       6 阅读
  3. 使用Spring Boot设计对象存储系统

    2024-06-17 20:24:03       7 阅读
  4. 在php中的序列化与反序列化

    2024-06-17 20:24:03       10 阅读
  5. 谈吐的艺术

    2024-06-17 20:24:03       8 阅读
  6. Mariadb/MySQL挂了且重启失败

    2024-06-17 20:24:03       7 阅读
  7. 软设之白盒测试

    2024-06-17 20:24:03       6 阅读
  8. 时区设置函数【man 3 tzset】

    2024-06-17 20:24:03       5 阅读