如何基于LLM搭建智能体?
首先,我们要了解LLM
(大数据模型)的工作原理:
Prompt定义:
随着ChatGPT的应用,prompt被推广为对大模型的所有输入。即,我们每一次访问大模型的输入为一个 Prompt,而大模型给我们的返回结果则被称为 Completion。
一般而言,我们可以设置两种prompt,一种为System prompt,即图中所注,它是对于你所设计的大模型的“人设”概述。另一种则为User prompt,它是用户每次的输入。
主流prompt工程:
1.Few-short(少样本学习,通过少量样本训练模型,并使其具备对新样本的泛化能力)
2.Zero-short(没有样例,通过利用已知类别的知识和类别描述来识别新类别)
3.CoT(思维链,要求模型在输出最终结果前,显式地输出每一步的推理步骤,模拟了人类的思维过程)
4.可控生成(用prompt对输出内容格式进行控制)
LLM的固有缺陷:
1.对于不具备的知识会出现幻觉(产生虚假的、捏造的细节与内容):所以可以外接知识库。
2.不擅长数学运算:所以导入外接工具包。
3.无法处理复杂逻辑任务:所以建立多个LLM分块处理,各司其职。
检索增强生成(RAG):
在RAG系统中,外部知识库(如文档集合)中的文本数据需要被有效地表示,以便进行检索和生成任务。而将文本数据转化为向量数据可以是数据结构化且可计算。
one-hot编码[猫(1,0),狗(0,1)]:向量太长。
整数编码[猫1,狗2]:无法表示相似度。
Word Embedding(二维平面表示个数据,能够更好的看出其相似度)(将一个token映射到平面上)
Txt Embedding(将一句话映射到平面上)
embedding过程:下载相关文件作为知识库后,将文件分块(防止数据过大超过上限),分块后的文件被映射为向量组,以每一块文件作为一元组,将所有元组储存为向量数据库。当用户提出问题时,大模型会从中调取具有相似语义地文件格式化后输出。
大数据智能体
(Agent=Model+Memory+Planning+Tools):
Model:LLM,常见GPT-4,Qwen-Max等。
Memory:对于操作以及上下文的记忆。
Planning:对于可能使用的工具,使用时机等的规划。
Tools:工具包,赋予智能体独特的功能,如写代码插件、调用搜索引擎插件。
一、搭建智能体第一步:获取LLM
开源运行(下载源代码):InternLM、通义千问、智谱AI的GLM都有开源可以直接运行。
调用API(通过HTTP远程访问模型):GPT-4o、GLM、Qwen。
二、工具包开发
调用工具包(需要书写清楚所调用工具包的参数及描述)或者自己开发编写。
三、提示词设计
设计prompt,包括相关参数、输出长度、参考文本等信息。
四、处理模型回答
对于模型给出的回答,根据是否使用工具,使用何种工具将回答调用进工具包返回最终结果。