18.大大大串烧
文章目录
🧠 第一层:LLM大模型基座层(模型的“原始大脑”)
- CNN(卷积神经网络):专门处理图像、视频这类网格状数据的算法。它的核心原理是“滑动窗口扫描”,通过提取局部特征(比如边缘、纹理)来识别画面中的物体。它不擅长处理顺序性的文本,主要用在计算机视觉领域。
- Transformer(变换器):目前所有主流大语言模型(如GPT、文心一言)的底层核心架构。它最大的特点是“注意力机制”,能够同时关注输入文本中所有词之间的关系,不受距离限制。因此它天生擅长处理顺序性的文本数据,能读懂上下文语义。
✍️ 第二层:Prompt提示词低成本调优层(不重训模型,只改“问法”)
Zero-shot(零样本):直接给AI下达指令,不提供任何示例。完全依赖模型预训练时储备的知识来直接生成答案。
Few-shot(少样本):在指令后面,先给AI提供几个固定的问答范例,再让它回答真正的问题。AI会模仿范例的格式和逻辑来输出。
CoT(思维链):一种引导策略,要求AI在给出最终答案之前,先把中间的推理步骤逐字写出来。这能把隐性的逻辑过程显性化,显著提高数学运算和复杂逻辑题的准确率。
1
2
3
4
5
6
7
8
9
10
11
12
13# chain-of-thought:思维链,基于推理过程进行分析,逐步给出结果(追溯错误的起源)
import openai
up = '''
我家距离洗车店200米,我要去洗车是应该开车去,还是走路去?请你一步一步的推到,到底该怎么去完成洗车,给出我思考的过程~
'''
client = openai.OpenAI(base_url='https://dashscope.aliyuncs.com/compatible-mode/v1')
res = client.chat.completions.create(
model='qwen-plus',
messages=[
{"role": "user","content":up }
]
)
print(res.choices[0].message.content)Self-Consistency:自我一致性
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45# Self-Consistency:自我一致性,让模型思考不同的方案,基于不同的方案实现不同的结果,找一个模型投票
# 逻辑:
# 1.找一个模型,给出问题,让模型给出3种解决思路
# 2.拿着三个方案,分别找3个模型去实现,得到最终的结果
# 3.找一个模型,基于这3种结果进行投票,找出最优解
import openai
client = openai.OpenAI(base_url='https://dashscope.aliyuncs.com/compatible-mode/v1')
# 封装一个调用大模型的方法:传入的参数就是用户提示词
def call_llm(up):
res = client.chat.completions.create(
model='qwen-plus',
messages=[
{"role": "user", "content": up}
]
)
return res.choices[0].message.content
question = input('请输入你的问题:')
# 1.找一个模型,给出问题,让模型给出3种解决方案
thought = call_llm(f"""
你是一个问题解决专家,能根据用户的提问给出3种不同的解决方案,最终返回一个python列表(严格遵守这个格式,只需要列表即可!!!),分别存储三种思路。
返回的结果如下:
【示例1:】
['思路1','思路2','思路3'],
【示例2:】
['方法1','方法2','方法3'],
【示例3:】
['解决方案1','解决方案2','解决方案3'],
我的问题是:{question}
""")
# 2.拿着三个方案,分别找3个模型去实现,得到最终的结果
result_list = []
for i in eval(thought):
res = call_llm(f"""
你是一个问题执行专家,基于我给出的问题和思路进行实现,最终给出我一个结果。
我的问题是:{question}
我的思路:{i}
""")
result_list.append(res)
# 3.找一个模型,基于这3种结果进行投票,找出最优解
final_result = call_llm(f"""
你是一个问题评估专家,基于我给出的问题和各个直接结果进行投票,最终给出我一个最优的答案,告诉我应该如何解决这个问题。
我的问题是:{question}
我的执行结果:{result_list}
""")
print(f"经过自我一致性处理,最优的结果是:{final_result}")ReAct(思考+行动+观察):一种结合“思考”与“执行”的循环策略。AI先进行内部推理(想),然后调用外部工具(如查天气API、计算器)获取信息,拿到结果后再接着推理,以此循环,直到完成任务。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33client = openai.OpenAI(base_url='https://dashscope.aliyuncs.com/compatible-mode/v1')
def call_ollama(question):
res = client.chat.completions.create(
model='qwen-plus',
messages=[
{"role": "user", "content": f"""
你是一个基于ReAct范式的智能助手,对于我的问题严格遵顼以下格式:
Thought: <你的思考>
Action: <要执行的动作,从 {tools.keys()} 中选择,如果思考完成,不需要继续,则在Action中固定返回Final Answer>
Action Input: <如果是调用方法,则这里告诉我调用方法传递的参数,没有参数就什么都不要出现,不能给我内容,如果是最终的结果,则将结果放到Action Input里>
【上下文】
{context}
【问题】
{question}
【工具的说明】
工具名称:get_month
作用:获取当前的月份
参数:无
返回值:具体的月份,如:'2','5','8'
工具名称:get_year
作用:获取当前的年份
参数:无
返回值:具体的年份,如:'2020','2024','2026'
工具名称:search_holidays
作用:获取当前的月份对应的节假日信息
参数:当前月份,如:9月,2月,3月
返回值:具体的假期信息,如:["元旦:1月1日"],["清明节:4月4日-6日"],["劳动节:5月1日-5日", "端午节:5月31日-6月2日"]
"""}
]
)
return res.choices[0].message.contentSkill(技能):为了特定任务而预封装好的、可复用的功能模块。比如“联网搜索技能”、“代码执行技能”,AI在需要时可以直接调用,不用每次都从头描述怎么用。
🛠️ 第三层:低代码快速落地平台层(拖拽式搭AI应用)
- Coze(扣子):字节跳动推出的AI智能体(Bot)搭建平台。特点是无代码拖拽式操作,内置丰富的插件库,可以快速把做好的AI助手发布到微信、飞书等社交渠道。
- Dify:开源的企业级LLM应用开发平台。强调对私有数据的保护和灵活的工作流编排,方便企业将AI部署在自己的本地服务器上,保证数据不外流。
- Workflow(工作流):把多个AI模型、逻辑判断、外部工具按照固定的先后顺序串成一条自动化流水线。前一步的输出自动作为后一步的输入,中间可以插入条件分支(如果…就…)。
- FastGPT:专注于知识库问答场景的轻量级工具。它简化了RAG的搭建流程,让用户上传文档后能快速生成一个精准回答的问答机器人,主打响应速度快。
📚 第四层:RAG检索增强生成(外挂“知识库”防幻觉)
- RAGFlow:一个深度文档理解引擎。专门用来处理格式复杂的原始文档(如带表格、图片、栏目的PDF),它能智能识别文档结构,将乱糟糟的数据清洗成干净、连贯的纯文本,供后续检索使用。
- Chunk(切片):把一篇长文档,按照段落、字数或语义边界,切分成若干个小文本块的过程。这是为了在检索时能精准定位到最相关的小片段,而不是把整篇文章全塞给AI。
- Embedding(向量化/嵌入):将一段文本的语义含义,转换成一串固定长度的数字数组(向量)。语义越相近的两段话,它们在多维空间里的数学距离就越近。这是计算机实现语义搜索的基础。
- Rerank(重排序):针对初筛出来的多个候选文本块,用一个更精细、更耗时的模型进行二次打分,把最相关的几个结果强行排到最前面。它能有效修正初筛(Embedding)带来的模糊误差。
1. SOP(标准作业程序)—— 本质是“固定死规矩,不让AI乱发挥”
你可能会想:“SOP不就是说明书吗?” 但在AI技术里,它有一个非常具体的落地形态:强制路由(Hard Routing)。
大白话解释:SOP就是给AI系统提前写死的一套“条件判断逻辑”。它不像CoT那样让AI“动脑子想下一步”,而是直接用代码(或工作流节点)规定死:“如果遇到A情况,必须走B流程;如果遇到C情况,必须调用D工具。”
技术上的具体作用:在Coze或Dify的工作流(Workflow)里,SOP体现为“判断节点”和“代码节点”。比如你设置SOP:“所有涉及金额的问题,必须先查数据库,不查大模型”。系统执行时,会绕过大模型的自由发挥,硬性执行查库动作。它的核心目的不是“提高智商”,而是确保合规性和稳定性,把AI的危险行为(比如瞎编价格)扼杀在摇篮里。
和普通提示词的区别:普通提示词(如CoT)是“请求AI照着做”,AI可能不听话;SOP是“直接在系统层面锁死操作流程”,AI不照做都不行,因为中间的环节已经被程序代码卡死了。
2. RAPTOR(树状组织检索)—— 本质是“给碎片文档做多层摘要索引”
你理解的普通RAG(Chunk)是把书撕成碎纸片,但RAPTOR不满足于只撕碎纸,它还要把碎纸片里的内容层层“提炼浓缩”。
大白话解释:RAPTOR是一种递归式的聚类和摘要算法。它先把你切好的所有小碎片(Chunk)进行语义分组(把讲同一件事的碎片放在一堆),然后调用大模型把这堆碎片总结成一段摘要;接着,它再把生成的这些摘要当成“新碎片”,再次进行分组和总结,往上再生成一层更概括的摘要。如此反复,直到最后只剩下一个最顶级的“总摘要”。
技术上的具体作用:最终,RAPTOR会生成一棵倒立的树(底层是原始碎片,顶层是高度概括的摘要)。当用户提问时,系统不是只在底层碎片里找,而是把问题同时丢给所有层级(树干、树枝、树叶)去匹配。如果问宏观问题(如“这本书讲了什么”),顶层摘要的匹配度最高,直接返回总结;如果问细节(如“主角第3章穿了什么颜色的鞋”),底层碎片的匹配度最高,返回细节。
和普通RAG(Chunk)的根本区别:普通RAG是平铺直叙,所有碎片平等,查宏观问题要拼凑很多碎片,容易丢全局;RAPTOR是“金字塔结构”,把信息按抽象程度分层存储,一次性解决“既能看到森林,又能看到树木”的矛盾。
🔥 最直白的一句话记忆法
- SOP:就是系统后台写死的“如果…就…”逻辑。它不是说服AI听你的,而是直接接管流程,不让AI有胡说八道的空间。
- RAPTOR:就是先给文档建个“多层大纲”(底层是原文,上层是总结,顶层是总纲)。回答问题时从上到下扫一遍,看哪一层最匹配就取哪一层,省去了普通RAG盲目翻碎片的麻烦。
如果拿SOP和RAPTOR组合使用,就是:SOP规定死“所有问题必须先查RAPTOR建好的那棵知识树”,RAPTOR负责在那棵树上精准定位答案。
这样解释,SOP(强制控制)和RAPTOR(分层索引)是不是界限清晰多了?如果还想知道RAPTOR具体是怎么“聚类分组”的,我也可以继续给你讲算法原理。😊