当前位置: 首页 > news >正文

做详情页哪个网站好唐山seo快速排名

做详情页哪个网站好,唐山seo快速排名,视频制作教程自学,深圳公司网站如何设计内容来源:dotey 《如何控制 LLM 的输出格式和解析其输出结果?》 https://baoyu.io/blog/prompt-engineering/how-to-parse-the-output-from-llm 现在很多人对于如何使用像 ChatGPT 这样的 LLM 已经比较有经验了,可以使用各种不同的 Prompt …

内容来源:@dotey

《如何控制 LLM 的输出格式和解析其输出结果?》

https://baoyu.io/blog/prompt-engineering/how-to-parse-the-output-from-llm

现在很多人对于如何使用像 ChatGPT 这样的 LLM 已经比较有经验了,可以使用各种不同的 Prompt 得到自己想要的结果。但有时候我们的使用场景不局限于手动操作,而是需要结合程序去调用 API,并且解析 API 的返回结果,从而实现一些自动化的功能。但是 LLM 的输出不确定性很大,所以我们需要想办法去控制 LLM 的输出格式,从而让程序得到稳定的输出,并且进一步对输出结果进行解析。

方法一:使用 Function Calling

Function Calling 是 OpenAI 不久前退出的针对 GPT API 的一个功能,可以让 LLM 决定在输出最终结果前,是否需要调用某个特定函数。比如说有用户问今天天气是什么,那么 LLM 在输出结果前,会先输出一个中间结果,告诉你需要调用天气相关的函数,并且传入这个函数的参数是“今天”。这样你就可以去调用天气函数,拿到结果后告诉 LLM,再输出最终结果给用户。

这个功能本意不是用来控制格式输出的,但是它在告诉我们该调用什么函数时,为了方便解析,给我们输出的是一个标准 JSON 格式,即使是 GPT-3.5,也能得到比较稳定的 JSON 格式。所以我们可以利用这个特性,来控制 LLM 的输出格式。

我们可以把要 ChatGPT 输出的内容定义成一个函数,但我们实际上不需要执行这个函数,只要 LLM 给我们的输出结果。
举例来说,我希望 ChatGPT 给我输出的格式是一个 Object:{
“name”: “John”,
“age”: 30,
“city”: “New York”
}

我们可以在调用 GPT 的时候定义一个函数,将函数的参数格式和要输出的 JSON 格式对应起来

{
“name”: “getUserInfo”,
“description”: “Get user information”,
“parameters”: {
“type”: “object”,
“properties”: {
“name”: {
“type”: “string”,
“description”: “User’s fullname”
},
“age”: {
“type”: “number”,
“description”: “User’s age”
},
“name”: {
“type”: “string”,
“description”: “User’s city”
},
},
“required”: [“name”, “age”, “city”]
}
}

然后在调用 GPT 的时候,我们可以这样写(参考图一)

这样我们就可以得到一个稳定的 JSON 格式的输出结果。这种方法的局限在于必须 API 支持 Function Calling。

Function Calling 的具体用法可以参考

OpenAI 的文档:https://platform.openai.com/docs/guides/text-generation/function-calling

方法二:使用 few-shot,给出输出格式样例

如果 API 不支持 Function Calling,那么我们可以使用 few-shot 的方式,给出一个甚至多个输出格式的样例,让 LLM 按照这个样例去输出结果。

比如我在翻译时,会让 LLM 翻译两次,一次直译一次意译,然后采用意译的结果。这种情况下我不需要用 JSON 格式,只需要简单的用特殊字符将两次结果隔开,然后按照特殊字符一分割,就可以得到意译的结果。

Prompt 参考图二

如果是 JSON 格式,也可以用 few-shot 说明,但是对于 GPT-3.5,稳定性不够好,有时候会出现不符合格式的情况。

Ensure that your response can be parsed by Python json, use the following format as an example:
{
“name”: “John”,
“age”: 30,
“city”: “New York”
}
在这里插入图片描述
在这里插入图片描述
举例来说,我希望 ChatGPT 给我输出的格式是一个 Object:{
“name”: “John”,
“age”: 30,
“city”: “New York”
}

我们可以在调用 GPT 的时候定义一个函数,将函数的参数格式和要输出的 JSON 格式对应起来

{
“name”: “getUserInfo”,
“description”: “Get user information”,
“parameters”: {
“type”: “object”,
“properties”: {
“name”: {
“type”: “string”,
“description”: “User’s fullname”
},
“age”: {
“type”: “number”,
“description”: “User’s age”
},
“name”: {
“type”: “string”,
“description”: “User’s city”
},
},
“required”: [“name”, “age”, “city”]
}
}

然后在调用 GPT 的时候,我们可以这样写(参考图一)

这样我们就可以得到一个稳定的 JSON 格式的输出结果。这种方法的局限在于必须 API 支持 Function Calling。

Function Calling 的具体用法可以参考

OpenAI 的文档:https://platform.openai.com/docs/guides/text-generation/function-calling

方法二:使用 few-shot,给出输出格式样例

如果 API 不支持 Function Calling,那么我们可以使用 few-shot 的方式,给出一个甚至多个输出格式的样例,让 LLM 按照这个样例去输出结果。

比如我在翻译时,会让 LLM 翻译两次,一次直译一次意译,然后采用意译的结果。这种情况下我不需要用 JSON 格式,只需要简单的用特殊字符将两次结果隔开,然后按照特殊字符一分割,就可以得到意译的结果。

Prompt 参考图二

如果是 JSON 格式,也可以用 few-shot 说明,但是对于 GPT-3.5,稳定性不够好,有时候会出现不符合格式的情况。

Ensure that your response can be parsed by Python json, use the following format as an example:
{
“name”: “John”,
“age”: 30,
“city”: “New York”
}
在这里插入图片描述
在这里插入图片描述
ChatGPT 的输出结果控制

如果是 ChatGPT,由于是网页直接操作,并且它支持 Markdown 格式,通常我会把我想要的结果放在 Markdown 的代码块中,这样就可以直接复制粘贴出来,但有时候也不是很稳定。

参考 Prompt:

请按照上面的规则和下面的格式打印翻译结果,返回格式如下,"{xxx}"表示占位符:…

直译

{直译结果}

意译

{意译结果}
```![在这里插入图片描述](https://img-blog.csdnimg.cn/6e83bd66cb5e4668bdc90cbb3193ee3b.png#pic_center)
容错处理 由于生成式 AI 现阶段的特点,我们很难保证输出结果的稳定性,所以我们需要对输出结果进行容错处理,以防止程序出错。这是我的一些经验总结:降低 temprature 参数的值会让结果更稳定。temprature 越低,输出结果越稳定,当然温度低会影响输出结果的多样性,你可以灵活运用,比如出错后降低 temprature 值。2. 对 JSON 结果进行容错处理即使是 GPT-4,输出 JSON 时也不够稳定,经常会错误输出多余的逗号或者引号,但是老是重试也废 token,所以最好是用日志把出错的结果都记录下来,找出其中的规律,然后做一些字符串预处理,降低出错概率。比如这里是我针对我的程序写的一个处理 JSON 错误的函数(参考图一)仅供参考,最好还是你根据自己的 JSON 格式,记录日志,然后针对你的错误情况去写容错函数。
![在这里插入图片描述](https://img-blog.csdnimg.cn/dcab9be9e2fe45ca813d893efd8e4145.png#pic_center)
http://www.ahscrl.com/news/375.html

相关文章:

  • 如何创新网站建设模式培训课程设计
  • 不用php做网站赣州网站建设公司
  • 学校门户网站建设费用福州seo
  • 百度网盟推广的 合作网站百度推广一级代理商名单
  • 厦门疫情最新消息今天封城了seo网站建设
  • 苏州建站sem和seo有什么区别
  • 新疆人防建设网站什么是seo
  • 如何做实体店的网站济南seo排名优化推广
  • 广州专业网站改版广州网站建设推荐
  • 网络营销如何进行网站推广百度推广外包
  • 东莞粤华疫情最新消息seo网站关键词排名提升
  • 营销型网站建设搭建方法网址服务器查询
  • 用dw做网站怎么给链接天津优化网络公司的建议
  • 南京网站建设网站设计哈尔滨seo优化公司
  • 加强品牌建设应重点从哪些方面着手免费seo排名网站
  • 石碣镇网站建设推广网站多少钱
  • 河南郑州网站建设哪家公司好seo优化名词解释
  • 一个空间怎么放多个网站重庆百度推广开户
  • 东莞做网站公司首选电商培训机构靠谱吗
  • icp网站信息站长之家是干什么的
  • 网站用的空间河北网站seo策划
  • 免费做网站方法电商培训班一般多少钱
  • 中山网站建设品牌seo网站关键词优化
  • 没有网站怎样做外贸百度指数查询入口
  • 网站做3年3年包括什么软件北京seo招聘网
  • 手机编程游戏软件百度关键词搜索引擎排名优化
  • 创建了一个网站 怎样做系统测试宣传软文怎么写
  • 北京住房城乡建设委网站公司怎么推广网络营销
  • 网站建设有什么好处永久免费用的在线客服系统
  • 常见网站建设公司术语公司如何做网络推广营销