vllm0.5.0的v1/completions各参数说明

一、调用示例

curl -X 'POST' \'http://ip:8001/v1/completions' \-H 'accept: application/json' \-H 'Content-Type: application/json' \-d '{"model": "qwen-api","prompt": ["讲个中文笑话"],"best_of": 1,"n": 1,"use_beam_search": false,"echo": false,"frequency_penalty": 0.3,"presence_penalty": 0.3,"repetition_penalty": 1.2,"max_tokens": 600,"seed": 0,"stop": "[。!?]","include_stop_str_in_output": true,"stream": false,"temperature": 0.2,"top_p": 0.7,"user": "tmp" 
}'

二、参数介绍

基本参数

  • model: 指定使用的语言模型名称或标识符。
  • prompt: 提供给模型的输入文本,是字符串或字符串数组。
  • stream: 是否流式返回生成的结果。
  • stream_options: 流式响应的额外选项。
  • temperature: 控制输出随机性的参数,值越低,输出越确定。
  • top_p: 核采样,只从累积概率达到此值的最小集合中选择下一个词。
  • use_beam_search: 是否使用束搜索算法进行解码。
  • top_k: 只考虑最高概率的k个词汇。
  • user: 用户ID或其他标识符,可用于跟踪或限制API使用。
  • best_of: 从多个候选输出中选择最佳的一个。如果设置为0,则此功能被禁用。
  • echo: 默认为false。如果为true,返回结果将包含输入的提示文本。
  • 三个惩罚参数

  • frequency_penalty: 默认是0.范围[-2, 2],设置为0.2

      对重复出现的 token 施加惩罚,以减少重复性。

作用:对已经生成的 token 的频率施加惩罚,以减少重复性。

工作原理:当某个 token 在生成的文本中出现得越频繁,它的惩罚就越大,从而降低该 token 再次被选中的概率。

适用场景:适用于希望减少某些 token 过度重复的情况,比如避免生成过于冗长或单调的文本。

  • presence_penalty: 默认为0.范围[-2, 2],设置为0.2

       对已经出现在文本中的新token施加惩罚,以鼓励多样性。

      作用:对新出现的 token 施加惩罚,鼓励模型选择新的 token 而不是已经在文本中出现过的 token。

    工作原理:一旦某个 token 出现了一次,它就会受到惩罚,不论其频率如何。这可以促使模型探索更多的词汇,增加文本多样性。

     适用场景:适用于需要提高文本多样性,避免过多使用相同词汇的情况,特别是在短文本生成中。

  • repetition_penalty: 默认为0,范围(0, 2],设置为1.2

     在generation_config.json中的值为1.05

     对已生成的单词施加惩罚,避免重复。

     作用:对所有已生成的 token 施加惩罚,特别是那些已经生成过一次或多次的 token。

     工作原理:与 frequency_penalty 类似,但它不仅考虑 token 的频率,还更加强调避免重复,即使 token 只出现了一次也会受到惩罚。

适用场景:特别适合用于防止生成的文本中含有明显的重复片段,如句子或短语的重复。

frequency_penalty 和 presence_penalty 都是为了增加生成文本的多样性,但它们侧重不同:前者关注的是 token 的频率,而后者关注的是 token 是否已经出现过。

repetition_penalty 更像是两者的结合体,它更加严格地惩罚任何已经出现过的 token,有助于避免生成文本中的重复现象。

实际应用中的选择

在实际应用中,您可能需要根据具体的需求和生成文本的特点来调整这些参数。例如:

如果您发现生成的文本中有某些单词或短语反复出现,可以尝试增加 repetition_penalty。

如果生成的文本显得单调且缺乏变化,可以通过适当增加 frequency_penalty 和 presence_penalty 来提升多样性。

对于不同的任务类型(如诗歌创作、新闻摘要等),您可能需要微调这些参数以获得最佳效果。

对理解模型很重要的参数

  • logprobs: 如果指定一个正整数值n,将在每个生成的token上返回最可能的n个token及其对数概率。

注:正式环境设置为0,非正式环境用于获取生成文本中每个token的选择依据及其可能的替代选项。这对于分析模型决策过程、调试或理解模型行为非常有用。

token数量

  • max_tokens: 模型生成的最大token数量。

1.长度不够导致的结束。因此max_tokens能设置太小,尽量设置大一些,但不要超过模型的最大值。

Finish_reason输出内容标识,说明:
· normal:输出内容完全由大模型生成,未触发截断、替换
· stop:输出结果命中入参stop中指定的字段后被截断
· length:达到了最大的token数,根据EB返回结果is_truncated来截断
· content_filter:输出内容被截断、兜底、替换为**等

min_tokens: 最少生成的token数量。

建议,不要设置min_tokens的值,否则模型生成的后半部分内容会乱说。

下面是设置了min_tokens为300,max_tokens为500的场景。

响应格式

  • response_format: 默认为text.定义响应格式的结构。支持json_object、text两种格式。

以json_object格式返回,容易出现不满足效果情况

Stop

  • stop: 当生成的文本中遇到这个字符串时停止生成。

含义:指定一个或多个字符串(通常是标点符号、特殊标记或句子结尾),当生成的文本中遇到这些字符串时,生成过程将停止。

作用:主要用于基于字符或字符串匹配来决定生成文本的结束位置。它直接在生成的文本内容上进行匹配,因此非常适合用来标识常见的结束符号,如句号 (.)、换行符 (\n) 或特定的结束标记(例如 [END])。

应用场景:

当您希望生成的文本在遇到特定的短语或句子结构时结束。

适用于需要精确控制文本结束位置的情况,尤其是当结束标志是明确的字符串时。

其他

  • logit_bias: 对特定 token 的 logits 应用偏差值,影响它们的选择概率。
  • n: 要生成的完成次数(回复的数量)。
  • seed: 随机种子,确保结果可复现。
  • min_p: 最小累积概率阈值,与top_p相似但不是基于比例而是绝对概率。
  • length_penalty: 默认为1.0.对长序列施加惩罚或奖励。
  • early_stopping: 如果设置为true,在达到某个条件时提前终止生成过程。
  • stop_token_ids: 停止生成的特殊token ID列表。
  • ignore_eos: 忽略结束符号(EOS),继续生成直到满足其他停止条件。
  • skip_special_tokens: 是否跳过特殊token在最终输出中。
  • spaces_between_special_tokens: 特殊token之间是否插入空格。
  • truncate_prompt_tokens: 输入提示的最大长度,超过则截断。truncate_prompt_tokens必须大于1
  • include_stop_str_in_output: 是否在输出中包括停止字符串。
  • suffix: 在每次完成的末尾添加的文本。
  •       注:不支持,可以理解改参数无效

三、chat/completions与completions对照

序号v1/chat/completionsv1/completions备注
文本对话例子文本续写例子
1  "messages": [  "prompt": [
2    {  ],
3      "content": "string",
4      "role": "system",
5      "name": "string"
6    },
7    {
8      "content": "string",
9      "role": "user",
10      "name": "string"
11    },
12    {
13      "content": "string",
14      "role": "assistant",
15      "name": "string",
16      "function_call": {
17        "arguments": "string",
18        "name": "string"
19      },
20      "tool_calls": [
21        {
22          "id": "string",
23          "function": {
24            "arguments": "string",
25            "name": "string"
26          },
27          "type": "function"
28        }
29      ]
30    },
31    {
32      "content": "string",
33      "role": "tool",
34      "name": "string",
35      "tool_call_id": "string"
36    },
37    {
38      "content": "string",
39      "role": "function",
40      "name": "string"
41    },
42  ],
43  "model": "string",qwen-api  "model": "string",指定使用的语言模型名称或标识符
44  "max_tokens": 0,  "max_tokens": 16,不能设置太小,否则容易导致句子不完整。
45  "frequency_penalty": 0,  "frequency_penalty": 0,
46  "presence_penalty": 0,  "presence_penalty": 0,
47  "repetition_penalty": 1,  "repetition_penalty": 1,在generation_config.json中的值为1.05。
范围(0, 2],设置为1.2。
48  "stream": false,  "stream": false,
  "temperature": 0.7,  "temperature": 1,
  "top_p": 1,  "top_p": 1,
  "top_k": -1,  "top_k": -1,
  "min_tokens": 0,  "min_tokens": 0,
49  "stream_options": {  "stream_options": {
50    "include_usage": true    "include_usage": true
51  },  },
52  "seed": 0,  "seed": 0,随机种子,确保结果可复现。默认为0,表示随机
53  "stop": "string",谢谢  "stop": "string",谢谢当生成的文本中遇到这个字符串时停止生成。不能为空。
生成时停止生成的字符串列表。
返回的输出将不包含停止字符串。
指定一个字符串(通常是标点符号、特殊标记或句子结尾),当生成的文本中遇到这些字符串时,生成过程将停止
  "stop_token_ids": [  "stop_token_ids": [
00
  ],  ],
  "best_of": 0,  "best_of": 0,best_of 必须大于或等于 n
  "use_beam_search": false,  "use_beam_search": false,是否使用束搜索算法进行解码。当 use_beam_search 设置为 True 时,best_of 参数实际上定义了束搜索的宽度。束宽度决定了在每个时间步骤中保留多少个最有可能的候选序列。较大的束宽度可以提高生成文本的质量,但也增加了计算成本。
54  "n": 1,  "n": 1,
57  "logit_bias": {  "logit_bias": {
58    "additionalProp1": 0,    "additionalProp1": 0,
59    "additionalProp2": 0,    "additionalProp2": 0,
60    "additionalProp3": 0    "additionalProp3": 0
61  },  },
62  "logprobs": false,  "logprobs": 0,默认为0,想了解模型预测情况,可以设置1以上得值,不要超过3,值太大容易导致速度过慢,会体现在返回结果中。
64  "user": "string",  "user": "string", 用户ID或其他标识符,可用于跟踪或限制API使用
67  "min_p": 0,  "min_p": 0,
68  "ignore_eos": false,  "ignore_eos": false,
70  "echo": false,  "echo": false,默认为false如果为true,返回结果将包含输入的提示文本
71  "length_penalty": 1,  "length_penalty": 1,
72  "early_stopping": false,  "early_stopping": false,
76  "skip_special_tokens": true,  "skip_special_tokens": true,
77  "spaces_between_special_tokens": true,  "spaces_between_special_tokens": true,
78  "include_stop_str_in_output": false,  "include_stop_str_in_output": false,
79  "guided_json": "string",  "guided_json": "string",
80  "guided_regex": "string",  "guided_regex": "string",
81  "guided_choice": [  "guided_choice": [
82    "string"    "string"
83  ],  ],
84  "guided_grammar": "string",  "guided_grammar": "string",
85  "guided_decoding_backend": "string",  "guided_decoding_backend": "string",
86  "guided_whitespace_pattern": "string"  "guided_whitespace_pattern": "string"
87  "response_format": {  "response_format": {默认为text.定义响应格式的结构。支持json_object、text两种格式。
以json_object格式返回,容易出现不满足效果情况。
88    "type": "text"    "type": "text"
89  },  },
90
91  "add_generation_prompt": true,  "truncate_prompt_tokens": 0,
92  "add_special_tokens": false,  "suffix": "string",不支持,不可设置该参数
93  "top_logprobs": 0,
94  "tools": [
95    {
96      "type": "function",
97      "function": {
98        "name": "string",
99        "description": "string",
100        "parameters": {}
101      }
102    }
103  ],
104  "tool_choice": "none",

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/486656.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java项目实战II基于微信小程序的作品集展示(开发文档+数据库+源码)

目录 一、前言 二、技术介绍 三、系统实现 四、核心代码 五、源码获取 全栈码农以及毕业设计实战开发,CSDN平台Java领域新星创作者,专注于大学生项目实战开发、讲解和毕业答疑辅导。获取源码联系方式请查看文末 一、前言 随着移动互联网技术的飞速…

物联网入门-Arduino的下载与配置教程(以ESP32为例)-2024

教程介绍 本次教程主要讲述如何下载与配置Arduino,以及开发版对应驱动的下载安装 原文链接:物联网入门-Arduino的下载与配置教程(以ESP32为例)-2024 步骤概述 1:下载Arduino 2:安装Arduino 3:下载安装驱动 4&am…

13.在 Vue 3 中使用OpenLayers加载鹰眼控件示例教程

在 WebGIS 开发中,鹰眼控件 是一个常用的功能,它可以为用户提供当前地图位置的概览,帮助更好地定位和导航。在本文中,我们将基于 Vue 3 的 Composition API 和 OpenLayers,创建一个简单的鹰眼控件示例。 效果预览 在最…

Flink如何基于数据版本使用最新离线数据

业务场景 假设批量有一张商户表,表字段中有商户名称和商户分类两个字段。 批量需要将最新的商户名称和分类的映射关系推到hbase供实时使用。 原实现方案 a.原方案内容 为解决批量晚批问题,批量推送hbase表时一份数据产生两类rowkey:T-1和…

从GCC源码分析C语言编译原理——源码表层分析(脚本篇)

目录 一、目录结构 二、有意思的小功能 三、install脚本 脚本变量和设置 程序名称变量 模式和命令 参数解析 主要逻辑 四、主要功能脚本 ------------------------------------------------------------------------------------------------------------------------…

Latex转word(docx)或者说PDF转word 一个相对靠谱的方式

0. 前言 投文章过程中总会有各种各样的要求,其中提供word格式的手稿往往是令我头疼的一件事。尤其在多公式的文章中,其中公式转换是一个头疼的地方,还有很多图表,格式等等,想想就让人头疼欲裂。实践中摸索出一条相对靠…

挑战用React封装100个组件【010】

Hello,大家好,今天我挑战的组件是这样的! 今天这个组件是一个打卡成功,或者获得徽章后的组件。点击按钮后,会弹出礼花。项目中的勋章是我通过AI生成的,还是很厉害的哈!稍微抠图直接使用。最后面…

企业实践|广州新华学院携手泰迪智能科技开展大数据开发企业实践圆满结束

12月3日,新华学院健康学院携手广东泰迪智能科技股份有限公司联合开展大数据开发企业实践活动圆满结束,健康学院专业老师陈键聪及来自信息资源管理专业2023级24名学生参与此次活动结业仪式。泰迪智能科技董事长张良均、校企合作经理吴桂锋、钟秋平出席。 …

设计模式的艺术读书笔记

设计模式的艺术 面向对象设计原则概述单一职责原则开闭原则里氏代换原则依赖倒转原则接口隔离原则合成复用原则迪米特法则 创建的艺术创建型模式单例模式饿汉式单例与懒汉式单例的讨论通过静态内部类实现的更好办法 简单工厂模式 面向对象设计原则概述 单一职责原则 单一职责…

深度和法线纹理

屏幕后期处理效果的基本原理就是当游戏画面渲染完毕后通过获取到该画面的信息进行额外的效果处理 之前的边缘检测、高斯模糊、Bloom、运动模糊等效果都是基于获取当前屏幕图像中的像素信息进行后期处理的 如果仅仅根据像素信息来进行一些效果处理,存在以下问题&…

WPF编写工业相机镜头选型程序

该程序满足面阵和线阵的要求。 前端代码 <Window x:Class"相机镜头选型.MainWindow" Loaded"Window_Loaded"xmlns"http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x"http://schemas.microsoft.com/winfx/2006/xaml…

ORCA:基于持续批处理的LLM推理性能优化技术详解

大语言模型(LLMs)推理过程中的批处理优化面临显著挑战&#xff0c;这主要源于其推理过程的迭代特性。核心问题在于批处理中的各个请求完成时间存在差异&#xff0c;这导致资源释放和新请求整合的复杂性显著提高&#xff0c;特别是在处理不同完成阶段的请求时。当批处理中序列的…

pwndbg快速计算栈溢出大小

1.启动pwndbg 生成长度为300的字符串 2.把生成的字符串复制粘贴到 run之后的程序下 查看错误提示“Invalid address 0x62616164” 3.根据错误地址&#xff0c;查看溢出大小

C++_关于异常处理throw-try-catch

文章目录 作用1. 无异常捕获2. 有异常捕获 作用 简单说&#xff0c;异常处理机制主要作用是让程序能够继续执行&#xff0c;或者以一种可控的方式终止&#xff0c;而非让程序因为错误直接崩溃 一个简单的动态数组类&#xff0c;来看看有异常捕获和无异常捕获的区别 1. 无异常…

云原生基础设施指南:精通 Kubernetes 核心与高级用法

1. 云原生的诞生 随着互联网规模的不断增长&#xff0c;以及企业对敏捷开发、快速交付和高可用性的需求日益增强&#xff0c;传统的单体架构逐渐暴露出局限性&#xff0c;难以满足现代业务对动态扩展和高效迭代的要求。为此&#xff0c;云原生应运而生。 云原生是为云计算时代…

如何用python获取图像

方法一&#xff1a;利用PIL中的Image函数&#xff0c;这个函数读取出来不是array格式 这时候需要用 np.asarray(im) 或者 np.array()函数&#xff1b;区别&#xff1a;np.array() 是深拷贝&#xff0c;np.asarray() 是浅拷贝。 from PIL import Image import numpy as npI Im…

[机器学习] 监督学习之线性回归与逻辑回归

这里写目录标题 一、监督学习概述二、线性回归&#xff08;一&#xff09;模型表示&#xff08;二&#xff09;损失函数&#xff08;三&#xff09;梯度下降算法导入所需库生成模拟数据&#xff08;可替换为真实数据&#xff09;初始化参数并进行训练可视化损失函数随迭代次数的…

JavaScript柯里化和组合函数以及严格模式介绍

柯里化介绍 柯里化的结构 简化版本 让函数的职责单一 柯里化的复用 对某些逻辑进行复用 打印日志的柯里化 自动化柯里化函数 实现柯理化函数 1.柯里化函数是对函数进行处理的方法&#xff0c;所以参数就为一个函数&#xff0c;这里取名w为fn 2.定义一个函数curried&#xff0…

笔记04--零基础创建个人本地大模型知识库ollama+Dify

ollma安装 官网下载直接下一步下一步即可&#xff0c;没有魔法的朋友可以留言&#xff0c;文章中所用到的文件也给打包了&#xff0c;大家可以直接下载使用通过云盘下载使用。 链接: https://pan.baidu.com/s/12zF9MpQtg1bnMDAQayaSyg 提取码: n9rm 官网地址&#xff1a;http…

ACM:连数问题

任务内容 Description 设有n个正整数&#xff0c;将他们连接成一排&#xff0c;组成一个最大的多位整数。例如:n3 时&#xff0c;3个整数13,312,343,连成的最大整数为:34331213 又如:n4 时,4 个整数 7,13,4,246 连接成的最大整数为7424613 Input N N 个数 Output 连接成的多位数…