百度飞桨大模型训练营:零代码对话式大模型应用
构建对话式应用
对话式应用的特点
- 交互性
使用自然语言,文本,声音来直接和应用互动,使用成本和学习成本低
- 智能化
能够通过对话式应用的载体较为全面的发挥出大语言模型的功能,例如逻辑、记忆、理解、生成
- 跨设备支持
对于不同种类的设备都能有很好的支持,例如手机、手表、网站、音响等,都能够落地展现出不同场景的支持能力
对话式应用的开发流程
评估一个对话式应用的标准,一是要降低用户使用学习的门槛,二是要能够准确识别用户的输入和上下文语境,以此来生成高质量的结果
一般来说开发的过程有如下五个模块
- 基座模型选型
- 参数设计
- 系统提示词设计
- 示例设计
- 检索增强数据库设计

基座模型的选型
我们使用飞桨大模型社区来进行应用构建,以我自己的项目为例

这里有五个基础的预制模型,可以查阅他们的区别和优势根据自己的需求选择使用,这里我选择LLaMA-13B
参数的调整
除此之外有两个模型参数,一个是Temperature

我们需要根据自己的需求,温度越高,输出其他词的可能性也越高
第二个参数是TOP_P,他的意思就是采样和选择

这里我们就需要通过大量的实验来确定相应的参数选择了
除此之外还有一个策略叫做Top_K,他的意思是选取概率最大的前K个词作为候选,这种策略的好处就是计算量小,而且一定程度上可以保证回答的质量,但是也有一定的概率导致文本过于聚焦,缺乏多样性
系统提示词设计
提示词设计就对应了界面中的

这里就涉及到了提示词工程的概念,这里的工程就指的是系统化、结构化、迭代化
提示词是用于提示和引导模型的输出更加准确,更有针对性的设计
因此我们就需要学习一定的框架和流程,以确保提示词设计的正确性和合理性
提示词分类
提示词可以分为用户提示词和系统提示词

那我们作为对话式应用的开发,就写的是系统提示词了
提示词框架
框架用的是全局思考,整体的篇章结构
这里给出一些尽可能全面的框架



这些框架的一个共同点就是分层,分点,分模块的进行描述

这里我用这个框架来描述我的旅行规划师的基本框架,这只是一个简单示例,具体还需要更精细化的调整
# 角色:旅行规划师
## 个人资料:
- 作者:jasmine-leaf
- 版本:1.0
- 语言:中文
- 描述:专门用于创建个性化旅行行程的旅行规划师。
## 目标:
- 根据个人偏好和要求提供量身定制的旅行计划。
- 确保所有计划包括交通、住宿、餐饮、景点和天气等必要细节。
- 除非另有指定,否则默认推广国内旅行目的地。
## 约束条件:
- 完整的旅行计划需要清晰的出发地、目的地和旅行天数信息。
- 除非指定其他国家,否则默认所有目的地均在中国境内。
- 使用各种分隔符,序号,缩进,换行符等进行排版美化
## 技能:
- 对各种目的地、当地习俗和文化实践有深入了解。
- 能够提供全面的旅行建议和详细的行程安排。
- 持续学习并更新旅行相关信息。
## 工作流程:
1. **收集用户信息:**
- 如果没有提供,询问旅行者的出发地、目的地和旅行天数。
- 确认目的地是否在中国或其他国家。
2. **制定旅行计划草案:**
- 利用对目的地的了解创建行程草案。
- 包括交通选项、酒店推荐、餐厅建议和必游景点。
- 检查旅行期间的天气预报。
3. **行程细化:**
- 根据用户反馈和特定偏好调整计划。
- 确保计划符合旅行者的兴趣和需求。
4. **完善旅行计划:**
- 呈现包含所有细节和建议的最终行程。
- 提供关于目的地的额外提示和信息,如当地习俗和紧急联系方式。
5. **持续支持:**
- 为旅行计划的任何进一步查询或变更提供帮助。
- 更新旅行者有关新信息或建议。
---
提示词技巧
技巧是用于优化的,定向修改的,要指导用户自己适时快速和灵活的打造合适的提示词,而不依赖系统内置的提示词
写出清晰的指令
- 说清楚——在你的输入中包含详尽的信息,以获取更为准确的答案
- 演到位——要求模型采用角色
- 排好版——使用分隔符清楚的指令输入不同部分,让大模型区分什么是你的任务指令,什么是待处理信息,什么是举例输出
提供参考资料
可以提高大模型的时效性和针对性
示例设计
我们可以将一些类似的问题+答案作为prompt的一部分进行输入

但是对于环节众多的任务或者是高级推理的任务,通过碎片化的学习很难取得很好的效果
这时候我们就需要引导大模型将复杂任务拆解为多个子任务,也称之为思维链



这里重在模拟思考和推导的过程

随着基座模型的增强,大模型也能够产生思维的效果
除此之外,我们可以使用LtM的提示法,每次只问其中的一小部分问题,在多轮互动中来输出准确结果
更多推荐

所有评论(0)