deepseek学习记录

frequency_penalty

frequency_penalty 是 DeepSeek(以及其他类似的语言模型)中的一个参数,用于控制生成文本时对重复内容的惩罚程度。它的作用是影响模型生成文本的多样性和创造性。

英
ˈpenəlti --派呢提
美
ˈpenəlti

n.
(因违反法律、规定或合同而受到的)处罚,刑罚;(行为、环境带来的)不利后果,苦难;(体育运动中对犯规者的)判罚,处罚;(足球、橄榄球及类似运动中的)罚球;(桥牌)(叫牌者未完成定约时的)罚分

具体作用
降低重复性:当 frequency_penalty 设置为一个正数时,模型会尽量避免生成重复的词语或短语,从而让文本更加多样化。

提高创造性:适当增加 frequency_penalty 可以让模型生成更有创意、更不常见的表达方式。

控制文本风格:如果你希望文本更加简洁、避免啰嗦,可以适当调高这个值。

参数范围
通常,frequency_penalty 的取值范围是 [0, 1] 或 [0, 2],具体取决于模型实现。

0:无惩罚,模型可能会生成重复内容。

1 或更高:惩罚力度逐渐增强,文本会更加多样化。

示例
假设让模型生成一段描述:
如果 frequency_penalty 较低,可能会生成类似“这是一个美丽的日子,日子非常美丽”的重复内容。
如果 frequency_penalty 较高,可能会生成“这是一个阳光明媚的日子,天空湛蓝,微风轻拂”这样更丰富的描述。

注意
过高的 frequency_penalty 可能会导致文本不连贯或偏离主题。
需要根据具体任务调整这个值,找到平衡点。

presence_penalty

number
nullable
Possible values: >= -2 and <= 2
Default value: 0

介于 -2.0 和 2.0 之间的数字。如果该值为正,那么新 token 会根据其是否已在已有文本中出现受到相应的惩罚,从而增加模型谈论新主题的可能性。

英
ˈprez(ə)ns
美
ˈprez(ə)ns

n.
出席,存在;<正式>(某人的)所在地方;<文>感觉中的存在物(如鬼魂);驻扎部队,驻扎的警力;风度,气质;(公司在某地的)工人(或产品),势力

一次请求中模型生成 completion 的最大 token 数

在单次请求中,模型能够生成的最大文本长度,以 token 为单位。token 是模型处理文本的基本单位,可以是一个单词、符号或子词。

具体来说:
Token:模型将输入和输出文本分割为 token 进行处理。例如,英文中一个单词可能是一个 token,而中文中一个汉字通常是一个 token。

最大 token 数:这是指在一次请求中,模型生成文本的 token 数量上限。如果生成的文本超过这个限制,模型会截断输出或返回错误。

影响:这个限制决定了单次请求中模型能生成文本的长度。较长的文本可能需要多次请求或分块处理。

总结:该参数限制了模型在单次请求中生成文本的最大长度,超过限制可能导致截断或错误。

stop

object
nullable

一个 string、或者最多包含 16 个 string 的 list,在遇到这些词时,API 将停止生成更多的 token。
(既可以是一个string,也可以是一个string list)

temperature

number
nullable
Possible values: <= 2
Default value: 1

采样温度,介于 0 和 2 之间。更高的值,如 0.8,会使输出更随机,而更低的值,如 0.2,会使其更加集中和确定。

通常建议可以更改这个值或者更改 top_p,但不建议同时对两者进行修改。

top_p

number
nullable
Possible values: <= 1
Default value: 1

作为调节采样温度的替代方案,模型会考虑前 top_p 概率的 token 的结果。所以 0.1 就意味着只有包括在最高 10% 概率中的 token 会被考虑。

通常建议修改这个值或者更改 temperature,但不建议同时对两者进行修改。

temperature 和 top_p 区别

在 DeepSeek 或其他语言模型中,temperature 和 top_p 是两个重要的参数,用于控制生成文本的多样性和创造性

Temperature(温度)

作用:控制生成文本的随机性和多样性
取值范围:通常是一个大于 0 的浮点数(如 0.1 到 2.0)

工作原理:
低温度(如 0.1):模型会更倾向于选择概率最高的 token,生成结果更确定、保守,适合需要准确性和一致性的任务
高温度(如 1.0 或更高):模型会更随机地选择 token,生成结果更多样化、创造性,但也可能包含不相关或不合理的内容

适用场景:
低温度:用于事实性回答、代码生成等需要准确性的任务
高温度:用于创意写作、故事生成等需要多样性的任务

Top-p(核采样,Nucleus Sampling)

作用:控制生成文本时 token 选择的概率范围
取值范围:0 到 1 之间的浮点数(如 0.1 到 1.0)

工作原理:
模型会从概率最高的 token 开始累加,直到达到 top_p 设定的概率阈值,然后只从这些 token 中随机选择
低 top_p(如 0.1):只选择概率最高的少量 token,生成结果更确定
高 top_p(如 0.9):选择更多 token,生成结果更多样化

适用场景:
低 top_p:用于需要严格控制生成内容的场景
高 top-p:用于需要一定多样性的场景

Temperature 和 Top-p 的区别

Temperature 是通过调整概率分布的平滑程度来控制多样性
Top-p 是通过限制 token 选择的概率范围来控制多样性

通常两者可以结合使用:
使用 temperature 调整整体的随机性
使用 top_p 进一步限制 token 选择的范围

如何选择参数

需要确定性输出:
temperature 设置为较低值(如 0.1 到 0.5)
top_p 设置为较低值(如 0.1 到 0.5)

需要多样性输出:
temperature 设置为较高值(如 0.7 到 1.2)
top_p 设置为较高值(如 0.8 到 1.0)

实验调整:根据具体任务和需求,通过实验找到最佳参数组合

总结

temperature 控制生成文本的随机性
top_p 控制生成文本时 token 选择的概率范围
两者结合可以更好地控制生成文本的质量和多样性

示例

curl

curl -L -X POST 'https://api.deepseek.com/chat/completions' \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer sk-xxx' \
--data-raw '{
  "messages": [
    {
      "content": "我想要谈恋爱",
      "role": "user"
    }
  ],
  "model": "deepseek-chat",
  "frequency_penalty": 0,
  "max_tokens": 2048,
  "presence_penalty": 0,
  "response_format": {
    "type": "text"
  },
  "stop": null,
  "stream": false,
  "stream_options": null,
  "temperature": 1,
  "top_p": 1,
  "tools": null,
  "tool_choice": "none",
  "logprobs": false,
  "top_logprobs": null
}'

req

{
  "messages": [
    {
      "content": "我想要谈恋爱",
      "role": "user"
    }
  ],
  "model": "deepseek-chat",
  "frequency_penalty": 0,
  "max_tokens": 2048,
  "presence_penalty": 0,
  "response_format": {
    "type": "text"
  },
  "stop": null,
  "stream": false,
  "stream_options": null,
  "temperature": 1,
  "top_p": 1,
  "tools": null,
  "tool_choice": "none",
  "logprobs": false,
  "top_logprobs": null
}

resp

{
  "id": "xxxx-1a23-44b5-874b-a5ced0887dc3",
  "object": "chat.completion",
  "created": 1738766710,
  "model": "deepseek-chat",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "想要谈恋爱是一件很美好的事情!恋爱可以带来许多快乐、成长和美好的回忆。以下是一些建议,或许可以帮助你更好地准备和迎接一段恋爱关系:\n\n### 1. **了解自己**\n   - **明确自己的需求**:你希望在恋爱中得到什么?是陪伴、理解、支持,还是共同成长?了解自己的需求有助于找到合适的伴侣。\n   - **提升自我**:无论是外在形象还是内在修养,不断提升自己会让你更有吸引力。同时,自信的人更容易吸引到合适的对象。\n\n### 2. **扩大社交圈**\n   - **多参与活动**:参加一些你感兴趣的活动或社团,比如运动、读书会、志愿者活动等,这样可以认识更多志同道合的人。\n   - **利用社交平台**:如果你比较内向,可以尝试通过社交软件或交友平台认识新朋友。\n\n### 3. **主动出击**\n   - **勇敢表达**:如果你对某个人有好感,不妨主动一点,表达你的兴趣。不要害怕被拒绝,恋爱本身就是一种冒险。\n   - **保持真诚**:在追求爱情的过程中,保持真诚和尊重是非常重要的。不要为了迎合对方而改变自己。\n\n### 4. **建立健康的恋爱观**\n   - **不要急于求成**:恋爱需要时间和耐心,不要因为寂寞或压力而急于进入一段关系。\n   - **保持独立**:即使恋爱了,也要保持自己的独立性和兴趣爱好。健康的恋爱关系是两个人共同成长,而不是互相依赖。\n\n### 5. **处理感情中的问题**\n   - **沟通是关键**:恋爱中难免会有摩擦和误解,学会有效沟通是维持关系的重要技能。\n   - **学会包容**:每个人都有自己的缺点和不足,学会包容和理解对方,才能让关系更加稳固。\n\n### 6. **享受过程**\n   - **不要过于焦虑**:恋爱是人生的一部分,但不是全部。享受恋爱的过程,不要给自己太大压力。\n   - **珍惜当下**:无论结果如何,每一段感情都会让你学到一些东西,珍惜每一个相处的瞬间。\n\n### 7. **保持开放心态**\n   - **接受多样性**:不要给自己设限,尝试去了解不同类型的人,或许你会发现意想不到的惊喜。\n   - **不要害怕失败**:恋爱中可能会遇到挫折和失败,但这都是成长的一部分。每一次经历都会让你更成熟。\n\n希望这些建议对你有所帮助!记住,恋爱是两个人的事情,找到那个愿意和你一起成长、分享生活的人是最重要的。祝你在恋爱的路上一切顺利,找到属于自己的幸福!💖"
      },
      "logprobs": null,
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 5,
    "completion_tokens": 520,
    "total_tokens": 525,
    "prompt_tokens_details": {
      "cached_tokens": 0
    },
    "prompt_cache_hit_tokens": 0,
    "prompt_cache_miss_tokens": 5
  },
  "system_fingerprint": "fp_3a5770e1xx"
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值