vllm server 启动的推理框架进行模型调用参数说明

curl -X POST "http://localhost:8000/v1/completions" -H "Content-Type: application/json" --data "{
    
    \"model\":\"defog/sqlcoder-70b-alpha\",\"prompt\":\"\\n### Instructions:\\nConvert the following question into a SQL query using the given PostgreSQL database schema.\\n\\nRules:\\n1. **Only output the SQL query**: Do not include any explanations, descriptions, comments, or additional text.\\n2. **The SQL query must be valid and syntactically correct**: It should directly answer the question using the provided schema.\\n3. **For each column in the SELECT statement, use the \AS\ syntax to include Chinese annotations**: Use the \COMMENT\ provided in the schema as the Chinese alias. For example, if the column is \facility_id\, the output should be \facility_id AS '设施ID'\.\\n4. **Ensure that each selected column has a corresponding Chinese alias**: Do not omit any alias.\\n5. **Return only the columns relevant to the question**: Exclude any columns that are not directly requested.\\n\\n### Question:\\n设���ID等于123的设备列表\\n\\n### Schema:\\nCREATE TABLE government_maintenance (facility_id VARCHAR(255) COMMENT '设施ID', type VARCHAR(255) COMMENT '设施类型', installation_date DATE COMMENT '安装日期', lastMaintenance_date DATE COMMENT '最后维护日期', maintenance_content VARCHAR(255) COMMENT '维护描述', maintenance_cost FLOAT(12) COMMENT '维护费用', city VARCHAR(255) COMMENT '城市', district VARCHAR(255) COMMENT '行政区', street VARCHAR(255) COMMENT '街道', detailed_address VARCHAR(255) COMMENT '详细地址') COMMENT = 'c9b2b0b1-bb8b-43d9-9630-75de02efe128';\\n\\n### Response:\\nGenerate the SQL query based on the above question and schema, ensuring that each column in the SELECT statement includes its Chinese alias; Based on your instructions, here is the SQL query I have generated to answer the question '设备ID 等于123的设备列表'\"}"

在使用 vllm server 启动的推理框架进行模型调用时,你可以根据不同的需求和问题,调整多个参数来优化结果的质量和性能。以下是你可以考虑的常用参数:

1. Temperature

  • 作用:控制生成文本的多样性。较低的温度(如0.2)会使模型更保守,生成更确定的输出,而较高的温度(如0.8或1.0)会使输出更具创意和多样性。
  • 适用场景:如果你希望模型生成稳定、标准的SQL查询,温度设置较低(如0.2或0.3)可能更好;如果希望模型生成更多创新或多样化的输出,则可以适当增大温度。

示例

"temperature": 0.3

2. Top-p (Nucleus Sampling)

  • 作用:限制模型的生成空间,确保生成的文本来自于最有可能的概率分布。top_p 是控制生成过程中保留的词汇概率的累积值。例如,设置为0.9表示保留累计概率为90%的词汇。
  • 适用场景:可以与 temperature 配合使用,使生成的文本更加流畅和自然,同时避免过多的随机性。

示例

"top_p": 0.9

3. Top-k

  • 作用:设置从前K个最可能的词汇中进行采样。较小的 top-k 可以使输出更加集中,较大的 top-k 使输出更具多样性。
  • 适用场景:通常与 temperature 配合使用,控制生成的随机性。如果你需要更稳定且准确的SQL生成,可以使用较低的 top-k

示例

"top_k": 40

4. Max Tokens

  • 作用:限制返回的最大令牌数量。控制生成输出的长度。
  • 适用场景:如果你的输出超过了模型的限制,可以设置 max_tokens 来确保生成的内容不会被截断。

示例

"max_tokens": 200

5. Stop Tokens

  • 作用:指定一个或多个停止符号,模型生成到这些符号时会停止输出。这对于截断过长的生成结果或确保输出格式符合要求非常有用。
  • 适用场景:你可以设置停止符号(如"SELECT"";")来确保模型生成的输出是一个完整的SQL查询。

示例

"stop": [";"]

6. Presence Penalty

  • 作用:控制模型是否重复输出相同的词或短语。较高的惩罚值可以减少输出中的重复内容。
  • 适用场景:如果你不希望生成重复的SQL部分,可以增加此参数。

示例

"presence_penalty": 0.6

7. Frequency Penalty

  • 作用:控制模型生成的单词是否频繁出现。此值越高,模型会倾向于避免使用已经在上下文中出现过的单词。
  • 适用场景:适用于减少重复出现的列名、表名等。

示例

"frequency_penalty": 0.5

8. Logprobs

  • 作用:控制返回生成过程中每个词的概率信息。设置为 logprobs 可以帮助了解生成过程中的决策过程。
  • 适用场景:如果你需要检查或分析生成文本的决策过程。

示例

"logprobs": 5

9. Echo

  • 作用:如果设置为 true,则返回的结果中会包含输入的内容(即请求的 prompt)。
  • 适用场景:可以帮助调试,确认模型生成的内容是否符合期望。

示例

"echo": true

10. Stream

  • 作用:控制是否以流模式返回生成的结果。如果设置为 true,模型会逐步返回生成的内容,而不是一次性返回完整的文本。
  • 适用场景:当你希望逐步获得输出结果时,尤其是生成较长的内容时。

示例

"stream": true

例子:添加参数到你的 curl 请求中

假设你想要优化结果的生成,避免过多的重复,增加多样性,并限制最大输出长度。你可以像这样修改 curl 请求:

curl -X POST "http://localhost:8000/v1/completions" \
-H "Content-Type: application/json" \
--data '{
  "model": "defog/sqlcoder-70b-alpha",
  "prompt": "\n### Instructions:\nConvert the following question into a SQL query using the given PostgreSQL database schema.\n\nRules:\n1. **Only output the SQL query**: Do not include any explanations, descriptions, comments, or additional text.\n2. **The SQL query must be valid and syntactically correct**: It should directly answer the question using the provided schema.\n3. **For each column in the SELECT statement, use the `AS` syntax to include Chinese annotations**: Use the `COMMENT` provided in the schema as the Chinese alias. For example, if the column is `facility_id`, the output should be `facility_id AS '设施ID'`.\n4. **Ensure that each selected column has a corresponding Chinese alias**: Do not omit any alias.\n5. **Return only the columns relevant to the question**: Exclude any columns that are not directly requested.\n\n### Question:\n设备ID等于123的设备列表\n\n### Schema:\nCREATE TABLE government_maintenance (\n  facility_id VARCHAR(255) COMMENT '设施ID', type VARCHAR(255) COMMENT '设施类型', installation_date DATE COMMENT '安装日期', lastMaintenance_date DATE COMMENT '最后维护日期', maintenance_content VARCHAR(255) COMMENT '维护描述', maintenance_cost FLOAT(12) COMMENT '维护费用', city VARCHAR(255) COMMENT '城市', district VARCHAR(255) COMMENT '行政区', street VARCHAR(255) COMMENT '街道', detailed_address VARCHAR(255) COMMENT '详细地址') COMMENT = 'c9b2b0b1-bb8b-43d9-9630-75de02efe128';\n\n### Response:\nGenerate the SQL query based on the above question and schema, ensuring that each column in the SELECT statement includes its Chinese alias; Based on your instructions, here is the SQL query I have generated to answer the question '设备ID 等于123的设备列表'",
  "max_tokens": 200,
  "temperature": 0.3
}'

总结

你可以通过调整以上的参数来控制模型生成的结果,包括输出的长度、多样性、准确性等。对于你的场景,建议重点调整 max_tokenstemperaturetop_p 参数,以确保生成有效且合适的SQL查询。

猜你喜欢

转载自blog.csdn.net/sunyuhua_keyboard/article/details/143569440