前面两篇说了几个规则概念,下面对上面几个概念做一个总结吧
prompt
这个概念以前我也不懂,最近查了一些资料总结了一下,他其实是一个集合,相当于你发给模型的文本内容,其中包括了system(由程序控制,每次发给大模型的),然后就是user(用户问题),然后就是assistant(由程序控制,每次发给大模型的)。temperature/top_p/max_tokens更准确来说,应该叫生成参数。 (这是说,这些参数也会在每次请求都发给大模型,由程序控制,每次发给大模型的),如果你开发的是一个智能体,那这个事情就是智能体去做的,所有LLM总体要做的其实是接收信息,然后返回信息而已。
上下文管理
之前一篇说过上下文窗口,那个是非常浅显的理解,如果真的要做AI应用,还需要设计到上下文的管理,因为每次调用模型的时候,都要把历史记录发送给大模型去看,模型本身是不会有记忆的,上下文窗口又有限,除非你有很高的算力,不然你全部一股脑的全部发过去,花费的token高,模型理解回答也慢,信息多了,模型回答的也不准,一般情况下,都是需要对上下文进行裁剪,然后发送给大模型去回答。
针对不同场景,可能需要提取的关键信息不同,比如针对智能客服类,你需要提取的就是用户的身份信息,关键订单信息、用户已经给过的固定规则、以及本次对话的目的。
一般情况下,上下文的裁剪,第一个原则是保留最近N轮对话数据+关键字段卡片,也可只保留最近N轮对话,这个根据具体情况而定
如果需要长期记忆的话,就需要走RAG查询,这个后面会介绍到。
其他需要注意的点
- 输出控制和可用性:这个主要是模型返回数据结构化输出,方便前端渲染,后端处理
- 引用/证据:要求模型回答的时候,都有据可依,降低胡编乱造
- 拒答/提示信息:要求模型要学会拒绝,不知道的问题要回答不知道,然后提示用户下一步应该去怎么做,去自己查还是说去联系人工客服之类的提示建议。
企业里面一般怎么分工
到这里,可能还是有点模糊,我是搞后端的,我主要负责干嘛?其实把大模型抛开,企业里面一般分为这些角色,大概的吧,不一定准:
- 后端/平台开发:实现对话管理(存储、裁剪、摘要、token控制、限流、日志)
- 算法/AI应用工程师:设计prompt、策略、评估集,调参,设计 RAG/Agent 流程
- 产品/业务:定义"哪些信息是关键""哪些规则必须遵守""输出格式长什么样"
如果是小团队,可能就是一个人做