LLM参数 llm_kwargs

大多数开源LLM框架中,都会需要指定LLM参数。这些参数通常是用一个词典—— llm_kwargs 来存储。

使用案例

answer_generator = LLMChain(
    llm=MY_LLM, 
    prompt=PROMPT,
    llm_kwargs={
        "max_new_tokens": 512,
        "top_p": 0.9,
        "temperature": 0.6,
        "repetition_penalty": 1.2,
        "do_sample": True,
    }
)

常用参数列表

(参考LangChain官网:langchain_community.llms.huggingface_endpoint.HuggingFaceEndpoint — 🦜🔗 LangChain 0.1.12

参数名参数类型 = 默认值

(HuggingFace)

描述

temperature

Optional[float] = 0.8较低的温度会使LLM更加诚实,较高的温度会更加有创造力(范围0-1)如果是0,则给定相同输入,每次输出结果不变。

(HuggingFace 默认值 0.8,LangChain默认值0.7)

max_new_tokensint = 512最大生成的tokens数量。
top_pOptional[float] = 0.95采样涉及的百分比(top percentage)只考虑前百分之多少进行采样。(范围0-1)
top_kOptional[int] = None只采样排名前k个词,根据likelihood scores 来采样。(范围1-正无穷)如果取值为1,则和greedy decoding 效果一样。
repetition_penaltyOptional[float] = None

重复生成的惩罚。惩罚之前生成过的token。降低该token的概率。(范围1-正无穷) 取值为1.0意味着不惩罚。

论文:https://arxiv.org/pdf/1909.05858.pdf

do_samplebool = False是否激活概率采样,能激活的采样可以是:多项式抽样、束搜索多项式抽样、Top-K抽样和Top-p抽样。(temperature、top_p、top_k都是基于概率采样的方式,所以要求do_sample=True才可以起作用)

Top_p 通常设置为一个较高的值(如 0.75),目的是限制低概率选项。同时使用 top_k 和 top_p ,则意味着:既满足 top_k 又满足 top_p。如果同时启用 k 和 p,top_p 将在 top_k 之后起作用。

参考文献(推荐阅读)

LLM的decoding策略:https://towardsdatascience.com/decoding-strategies-that-you-need-to-know-for-response-generation-ba95ee0faadc

 Hugging Face 文本生成策略以及对应的参数设置:

https://huggingface.co/docs/transformers/generation_strategies

top_k 和 top_p 的区别:

Predictable Outputs

  • 36
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值