百度大模型零代码开发Part2
动 手实践篇:对话式应用理论与实践 🚀
📖 前情提要!
在上一章,我们领略了人工智能的宏伟全景,并深入探索了大语言模型的奥秘。本章,我们将踏上实践之旅,一起构建属于自己的对话式应用!💬
🎈 思考:我们为何选择对话式应用作为大模型应用开发第一站呢?
🤖对话式应用,有以下几个特点:
● **交互性:**绝大部分用户可以低门槛地通过语音/文本与应用进行交互。
● 智能化 :大语言模型赋予应用强大的逻辑、记忆、理解和生成能力。
● 跨设备支持 :从网页到手机,再到手表和音箱,对话式应用无处不在。
● 丰富场景 :智能客服、教育教学、医疗问诊、智能家居……对话式应用正改变着各行各业。
每个行业、每个领域和每个场景,都有与对话式应用结合的可能性,可见它的重要性!
🛠️ 整体框架
第一步:基座模型选型:选择合适的模型作为应用的基石。
第二步:参数调整:通过调整参数,让模型的生成结果更符合你的预期。
第三步:系统提示词设计:巧妙设计提示词,引导模型生成恰到好处的回复。
第四步:示例设计:提供典型示例,帮助模型更好地理解你的需求。
第五步:检索知识库设计:为模型配备一个强大的知识库,让它能够随时调用所需信息。
1️⃣ 模型选型与参数设计 💡
✅第一步:对话式应用开发——模型选型
📍界面位置:【基础设定】 > 【对话模型及参数】
🖱️操作方式:点击出现下拉框
● 📦 预置模型 :系统内置了ERNIE 3.5、ERNIE Turbo、LLaMA-13B、ChatGLM-6B、Belle-7B-2M 五种模型。
● 🛠️ 创建的模型 :支持开发者从模型库中选择公开的模型或开发者 自己微调和训练的模型 作为基础模型。
● ❤️喜欢的模型 :支持开发者从模型库中选择自己 喜欢的模型 作为基础模型。
✅第二步:对话式应用开发——参数调整
📍界面位置:【基础设定】 > 【【对话模型及参数】
🖱️操作方式:点击出现下拉框
● 🌡️Temperature(温度值) :调节生成文本的随机性和确定性。温度越高,结果越多样化;温度越低,结果越确定。 注意事项:QA任务适合低温度值,创造性任务适合高温度值。
一起来做个试验!注意:⚠️在对话式应用界面的【角色身份设定】中不填任何内容,在右侧聊天页面中输入以下内容Prompt: "请写一段关于未来城市生活的描述性文字。" 控制TOP_P为0.8不变调节Temperature(温度值)如下:1. 低温度值(例如:0.2) 结果: 未来城市生活将高度智能化,居民们享受着便捷的服务和舒适的环境。智能家居系统自动调节室内温度和光线,无人驾驶汽车在街道上安全行驶。城市绿化覆盖率高,空气清新宜人。 分析: 文本较为确定和保守,变化较少,注重高概率词汇的选择。 2. 高温度值(例如:1.0) 结果: 在未来城市,你可能会看到天空中漂浮的花园,街道上充满各种奇异的生物。人们穿着由智能材料制成的服装,可以根据心情变化颜色。城市建筑不再是死板的方块,而是充满流动感和生命力的有机体。 分析: 增加了文本的随机性和多样性,使得结果更加不可预测和富有创造性。
● 🎯TOP_P(核采样) :决定选择词汇的累积概率阈值。值越大,考虑的词汇范围越广;值越小,越集中在高概率词汇上。 注意事项:创造力提升可能牺牲计算效率和质量稳定性。建议逐个调整参数,找到最佳配置。
一起来做个试验!注意:⚠️在对话式应用界面的【角色身份设定】中不填任何内容,在右侧聊天页面中输入以下内容Prompt: "请写一段关于未来城市生活的描述性文字。" 控制Temperature为0.8如下:调节TOP_P如下:TOP_P(核采样)调试例子: 1. 低TOP_P值(例如:0.2) 结果: 未来城市生活将非常便捷,智能化程度极高。人们可以随时随地通过智能设备获取所需信息和服务。城市交通系统高效运行,减少了拥堵和污染。 分析: 限制了选择词汇的范围,集中在高概率词汇上,结果相对较为确定和单一。 2. 高TOP_P值(例如:0.9) 结果: 在未来城市,你可能会遇到各种奇妙的景象和人物。街道上充满了各种色彩斑斓的灯光和投影,建筑物表面覆盖着能够吸收太阳能的材料。人们骑着由磁力悬浮技术驱动的自行车在空中穿梭,而机器人则在街头巷尾提供各种服务。 分析: 扩大了选择词汇的范围,考虑了更多低概率但富有创造性的词汇,使得文本更加丰富多样。但可能牺牲了一定的计算效率和质量稳定性。
恭喜你!学习完成本小节内容,请切换至下一个小节继续学习📑
学习提示 🐝想要提前预习嘛? 那你可提前查看以下文档~不过想要学习地更加充分的话,请一定要搭配小节对应的视频进行学习哦!
📒 第2小节:系统提示词设计 💡需搭配小节视频学习 2️⃣ 提示词设计与实践🗨️
✅对话式应用开发——第三步:系统提示词设计
📍界面位置:【基础设定】 > 【角色身份设定】
🖱️操作方式:在文本框进行输入
📐 提示词框架 :
用于谋划全篇内容,常见的有:TAG框架、RTF框架、APE框架、ROSES框架、RACE框架、TRACE框架、ICIO框架、CRISPE 框架,还有课程当中提到的一个比较流行的框架!
🖱️接下来,让我们一起在【角色身份设定】里做个试验!🖱️比如,我们用【流行框架】创建一个“知识解析专家”的角色:
# Role: 知识解析专家 ## Profile: - author: Arthur - version: 0.8 - language: 中文 - description: 我是一个专门用于解答有关特定概念和知识点的顶级教师。 ## Goals: 尝试解答有关用户指定知识点的三个关键问题:其来源、其本质、其发展,快速简练且有趣地梳理知识要点。 ## Constraints: 1. 对于你不知道的概念,明确告知用户你不知道。 2. 你不擅长说空话和套话,不会进行没有意义的客气对话。 3. 解释完概念即结束对话,不会询问是否有其它问题。 ## Skills: 1. 具有强大的知识获取和整合能力。 2. 掌握回答的技巧。 3. 拥有排版审美,充分利用序号、缩进、分隔线和换行符等来美化信息排版。 4. 擅长使用趣味的比喻方式来让用户理解知识。 5. 惜字如金,不说废话。 ## Workflows: 你会按下面的框架来扩展用户提供的概念,并通过分隔符、序号、缩进、换行符等进行排版美化。 1. 它从哪里来? —————— - 讲解清楚该知识的起源,它是为了解决什么问题而诞生。 - 然后对比解释一下:它出现之前是什么状态,它出现之后又是什么状态? 2. 它是什么? —————— - 讲解清楚该知识本身,列举它的五个最重要特点。 - 再说明一下:应用该知识时最重要的三条原则是什么? - 接下来举一个现实案例方便用户直观理解: - 案例背景情况(遇到的问题) - 使用该知识如何解决的问题 3. 它的现在与未来是怎样的? —————— - 它的局限性是什么? - 当前行业对它的优化方向是什么? - 未来可能的发展方向是什么?
🖱️输入进去了吗?接下来,我们在【角色开场语】里写:
你好,我是你的专属知识助手,请你告诉我你想了解的概念!
🖱️点击【应用】,我们右侧【预览测试】中写:强化学习看看效果如何?👌效果还可以提升,对吧!请你再考虑一些技巧:1. 格式还可以更美观,你可以给出一个更优质的排版案例,放在##Workflows里! 2. 内容还可以更优质,你可以在 ##Skills 和 ##Workflows 加入更多!
待加入回复结果截图!
💡 提示词技巧
指导用户自己适时、快速和灵活地去打造合适的提示词,而不依赖系统内置的提示词。
1、写出清晰的指令
🖱️让我们一起试试这三个技巧:说清楚、演到位、排好版!并通过正反两个示例的试验,让你加深对技巧的理解!注意:⚠️在对话式应用界面的【角色身份设定】中不填任何内容,在右侧聊天页面中直接输入以下Prompt输入示例
技巧
示例类型
Prompt输入示例
说清楚
不这样做
“给我推荐一本书”
说清楚
这样做
“给我推荐一本关于人工智能的科幻小说,要求情节紧凑、有深度。”
演到位
不这样做
“写一篇关于环保的文章”
演到位
这样做
“你是一个环保主义者,写一篇热情洋溢的呼吁大家保护环境的文章。”
排好版
不这样做
“写一篇文章,主题是旅行,要包括旅行的好处和坏处。”
排好版
这样做
“写一篇文章,主题是:旅行的双面性。要点1:#旅行的好处。要点2:#旅行的坏处。”
🖱️试验结束了嘛!有没有发现大模型回复结果的差异?🧐我们一起分析一下不同技巧的使用之下,大模型回复的特点吧!你是否也感同身受?
技巧
示例类型
Prompt输入示例
对大模型回复表现的分析讨论
说清楚
不这样做
“给我推荐一本书”
🤔大模型可能推荐任何类型的书,因为指令太模糊。
说清楚
这样做
“给我推荐一本关于人工智能的科幻小说,要求情节紧凑、有深度。”
🤔大模型更有可能推荐符合要求的特定书籍。
演到位
不这样做
“写一篇关于环保的文章”
🤔大模型可能会写出一篇普通的环保文章。
演到位
这样做
“你是一个环保主义者,写一篇热情洋溢的呼吁大家保护环境的文章。”
🤔大模型会更有激情地撰写文章,从环保主义者的角度出发。
排好版
不这样做
“写一篇文章,主题是旅行,要包括旅行的好处和坏处。”
🤔大模型可能会混淆主题和要点,导致文章结构不清晰。
排好版
这样做
“写一篇文章,主题是:旅行的双面性。要点1:#旅行的好处。要点2:#旅行的坏处。”
🤔大模型会更容易地按照指定的结构和要点来组织文章。
2、写出参考信息
🖱️让我们一起试试这个技巧吧:给大模型可以去参考和引用的内容,让模型使用我们提供的信息来组成其答案,降低模型的幻觉。继续!我们来通过正反两个示例的试验,让你加深对技巧的理解!注意:⚠️在对话式应用界面的【角色身份设定】中不填任何内容,在右侧聊天页面中直接输入以下Prompt输入示例
技巧
示例类型
Prompt输入示例
写出参考信息
不这样做
今年高考在什么时候举行。
写出参考信息
这样做
使用参考文本回答问题:‘’‘日前,教育部印发《关于做好2024年普通高校招生工作的通知》,其中指出2024年高考全国统考将于6月7日、8日举行。’‘’问题:2024年高考在什么时候举行。
🖱️试验结束了嘛!有没有发现大模型回复结果的差异?🧐看看效果有没有明显差异!是否模型通过参考内容,生成的结果,更有实时性和准确性!
技巧
示例类型
Prompt输入示例
对大模型回复表现的分析讨论
写出参考信息
不这样做
问题:今年高考在什么时候举行。
🤔大模型可能会基于其已有知识来回答,但可能不是基于最新的或指定的参考信息。
写出参考信息
这样做
使用参考文本回答问题:日前,教育部印发《关于做好2024年普通高校招生工作的通知》,其中指出2024年高考全国统考将于6月7日、8日举行。问题:2024年高考在什么时候举行。
🤔大模型会根据提供的参考文本回答问题,确保回答是基于最新和准确的信息。
📒 第3小节:示例设计与检索知识库设计 💡需搭配小节视频学习 ## 3️⃣ 小样本学习实践🔍 ✅对话式应用开发——第四步:示例设计
📍界面位置:【基础设定】 > 【对话模拟】
🖱️操作方式:在文本框进行输入,或直接输入提示词中
1、写出对话示例
当我们无法精准形容输出要求的时候,这个时候,我们可以通过给出一些示例来引导模型进行特定的任务。这就是我们接下来要试验的 样本学习 方法。
🖱️让我们一起试试这三个样本学习技巧:Zero-Shot Learning(零样本学习)One-Shot Learning(一次样本学习)Few-Shot Learning(少量样本学习)通过正反两个示例的试验,让你加深对技巧的理解!你可以在【对话模拟】中新建示例样本!注意:⚠️巧妙使用【对话模型】来为大模型提供示例!
技巧
示例类型
示例描述
应用场景示例
示例输出(实际的大模型输出,可能与此有差异)
分析
Zero-Shot Learning
正向例子
【角色身份设定】中填写:“你是一个文本情感分析专家,请分析”请分析以下文本的情感倾向(积极、消极或中立)“
在右侧【聊天框】输入:
这部电影真是太难看了,我后悔花了钱去看它。
情感分析
情感倾向:消极
无需样本示例。模型能够直接分析文本,不需要预先训练或看到类似样本,即可进行情感倾向判断。
One-Shot Learning
正向例子
【角色身份设定】中填写:“你是一个文本情感分析专家,请分析”请分析以下文本的情感倾向(积极、消极或中立)“
【对话模拟】中新增示例:
用户输入:“这部电影的主角太给力了,颜值和实力都在线!”
应用输出:Hi!观众对这部电影的情感倾向是积极的。
在右侧【聊天框】输入:
这部电影真是太难看了,我后悔花了钱去看它。
情感分析
Hi!观众对这部电影的情感倾向是消极的。
模型通过一次样本(给定风格描述)即能模仿回答的模式。
One-Shot Learning
不使用技巧的例子
【角色身份设定】中填写:“你是一个文本情感分析专家,请分析”请分析以下文本的情感倾向(积极、消极或中立)“
在右侧【聊天框】输入:
这部电影真是太难看了,我后悔花了钱去看它。
情感分析
情感倾向:消极
若没有给样本示例,模型的回复格式,则较为不确定。
Few-Shot Learning
正向例子
【角色身份设定】中填入:请分析以下新查询的意图。
【对话模拟】中新增三个示例:
查询1:"明天北京的天气怎么样?" - 意图:天气预报查询
查询2:"播放周杰伦的歌曲。" - 意图:音乐播放请求
查询3:"提醒我下午三点开会。" - 意图:设置提醒
在右侧【聊天框】输入:
请问最近的地铁站在哪里?
意图识别
意图:地点查询
模型通过少量样本(几个查询与意图对)学习后,能够识别新查询的意图,尽管新查询与之前样本不完全相同。
Few-Shot Learning
不使用技巧的例子
【角色身份设定】中填入:请分析以下新查询的意图。
在右侧【聊天框】输入:
请问最近的地铁站在哪里?
意图识别
这个查询的意图是询问最近的地铁站的位置。用户想要知道离他们当前位置最近的地铁站在哪里,以便他们能够前往该地铁站。这可能是因为用户需要乘坐地铁前往目的地,或者他们想要了解当地交通情况。
在这个特定的例子中,即使不使用Few-Shot Learning,由于查询的表述相对直接和明确,模型仍然有可能准确地识别出查询的意图。但输出的结果,较为冗长,并不能非常直接满足输出的需要!
🤔反思:不知道你有没有发现,有的时候即便没有示例,大模型一样可以输出比较合适的结果?
💡点击查看提示 2、写出思维链示例
对于一些环节众多的任务或者涉及到高级逻辑推理的任务,其实通过几个碎片化示例的示范,可能无法让模型的回复取得理想的效果。
那么,这就引出了“思维链”技巧体系——让大模型去 学逻辑 ,而 不仅学现象 !
注意:⚠️巧妙使用【对话模型】来为大模型提供示例!
技巧
示例类型
示例描述
应用场景示例
示例输出(实际的大模型输出,可能与此有差异)
分析
Zero-shot-CoT
使用技巧
【角色身份设定】中填写:“无“
在右侧【聊天框】输入:
给定列表 [8, 34, 112, 1, 212, 21, 10, 4],输出排序结果:[1, 4, 8, 10, 21, 34, 112, 212]。请一步步思考!
排序任务
输出 : [1, 4, 8, 10, 21, 34, 112, 212]
思考过程 : 首先找到最小的数1,然后是4,依此类推,直到排序完成。
Zero-shot-CoT 要求模型在不依赖示例的情况下,通过逻辑推理解决问题。这里的输出展示了模型按照升序对数字列表进行排序的能力。
One-shot-CoT
使用技巧
【角色身份设定】中填写:“无“
【对话模拟】中新增示例:
用户输入:给定一个数字列表 [3, 1, 4, 1, 5, 9, 2, 6, 5, 3],请将其按升序排列。
应用输出:
首先理解问题,然后找到最小的数字放在新列表的第一个位置,继续找下一个最小的数字,直到处理完所有数字。
在右侧【聊天框】输入:
给定一个数字列表 [8, 34, 112, 1, 212, 21, 10, 4],请将其按升序排列。
排序任务
输出 : [1, 4, 8, 10, 21, 34, 112, 212]
思考过程 : 根据示例问题的思维链,我首先找到最小的数1,然后是4,以此类推,直到排序完成。
One-shot-CoT 利用单个示例指导模型解决类似的新问题。这里的输出显示模型能够应用从示例中学到的排序策略来解决新问题。
One-shot-CoT
不使用技巧
【角色身份设定】中填写:“无“
在右侧【聊天框】输入:
给定一个数字列表 [8, 34, 112, 1, 212, 21, 10, 4],请将其按升序排列。
排序任务
[8, 10, 4,34, 112, 1, 212, 21,]
不使用 One-shot-CoT 技巧意味着模型需要依赖其他方法或策略来解决问题,这可能导致输出的不确定性和准确性的降低。
Few-shot-CoT
使用技巧
【角色身份设定】中填写:“无“
【对话模拟】中新增示例:
用户输入:一个正方形的边长是3厘米,求其面积。
应用输出:面积 = 边长 × 边长 = 3cm × 3cm = 9cm²。
用户输入:一个长方形的长是5厘米,宽是2厘米,求其面积。
应用输出:面积 = 长 × 宽 = 5cm × 2cm = 10cm²。
在右侧【聊天框】输入:
一个梯形的上底是4厘米,下底是6厘米,高是3厘米,求其面积?
几何面积计算任务:根据给定几何形状和尺寸,计算其面积。
输出结果:面积 = (上底 + 下底) × 高 ÷ 2 = (4cm + 6cm) × 3cm ÷ 2 = 15cm²
使用Few-shot-CoT,大模型从示例问题中学习了面积计算的基本规则,并观察到不同形状的面积计算公式有所不同。对于新问题(梯形面积),大模型通过类比和推理,应用了相似的策略,即找到正确的公式并代入数值进行计算,从而得出了正确的结果。
Few-shot-CoT
不使用技巧
【角色身份设定】中填写:“无“
在右侧【聊天框】输入:
一个梯形的上底是4厘米,下底是6厘米,高是3厘米,求其面积。
相同的几何面积计算任务:根据给定几何形状和尺寸,计算其面积。
输出结果可能因模型不同而异,不一定能正确得出15cm²。
不使用Few-shot-CoT,大模型没有先前的示例问题来指导它如何解决问题。尽管大模型可能具备一些基本的几何知识,但在没有具体示例的情况下,它可能需要更多的推理和计算步骤来找到正确的面积计算公式,并正确代入数值进行计算。这增加了输出结果的不确定性。
🤔试验了嘛?是不是有时候思维链的确发挥了作用——让AI更可解释,让过程更清晰化,让答案更可信,而有的时候并没有起作用?
💡点击查看提示
✅对话式应用开发——第五步: 检索增强数据库设计
📍界面位置:【知识库】
🖱️操作方式:点击进入
1、认识知识库的要求
● 格式要求 :📝支持.txt/.md/.pdf格式文件
● 大小要求 :📦单个文件大小<20MB
● 数量要求 :📑最多可上传3个文件
● **其它设置:**✅我拥有数据集的版权✅公开数据集✅严格按照数据文件回答
● 上传位置: 【知识库】> 【上传数据文件】>点击“上传数据”按钮
🤔思考:✅严格按照数据文件回答 →→ 这一设定对应的原理有哪些?
💡点击查看提示 2、认识知识库的技术原理
● 第一步 :📖➡️📈将文档的文本转换为向量,向量存储到向量数据库。
● 第二步 :🗨️➡️🔍将用户的提问内容转换成向量,在向量数据库中检索相似的文本内容,检索结果就是 " 包含答案的内容 "。
● 第三步 :🗨️+📖=💡将用户的提问内容和检索到的 " 包含答案的内容 " 组装成新的提示词,发给大模型。
🤔思考:经过检索增强生成(RAG)后,最后输入大模型的内容,为何是用户输入和检索结果的文本组装,而不是二者向量的组装?
💡点击查看提示 3、上传文档并进行效果试验
《星河机器人》文档 下载
文档内容概括:一款充满未来科幻感的名为“星河机器人”的产品的外观参数、机械结构、功能特点和应用场景等的说明。🖱️在【知识库】页面上传该文档,在【基础设定】>【角色身份设定】中填入以下信息,并点击应用。
# Role: 星河机器人产品客服 ## Profile: - author: Arthur - version: 0.8 - language: 中文 - description: 我是一个专门用于解答“星河机器人”这块产品有关信息的专业客服。 ## Goals: 准确回答用户的提问。 ## Constraints: 1. 对于你不知道和在文档里没有找到的概念,明确告知用户你不知道,不要进行发散。 2. 你不擅长说空话和套话,不会进行没有意义的客气对话。 3. 解释完概念即结束对话,不会询问是否有其它问题。
用以下prompt输入示例,试试效果如何!
试验输入
结果示例(实际)
结果分析
星河机器人有多高?
1.8米
RAG技术通过检索文档中的相关信息,找到了星河机器人的高度数据,并准确地提供了答案。
星河机器人能被应用在太空吗?
能



共有 0 条评论