大模型概述
参数规模大、训练数据多、能力全面的深度神经网络模型
-
使用的自监督学习,无需人工标注,数据量大大增加
-
近年来GPU的算力增长快速+分布式训练成熟
-
Transformer架构
LLM,大语言模型
为什么仅凭借【预测下一个Token】就能实现写代码、做题等等?
手机输入法的自动补全,就是极简版的 next‑token 预测。 而 LLM,相当于把这个自动补全,用万亿级的互联网文本、海量代码,用巨大参数规模,暴力放大到极致。
-
学到了海量数据。记住文本和文本之间的关联规律,按照统计规律续写
-
大模型的涌现能力:参数规模跨过某个门槛之后,突然出现很多训练没有专门教过的能力:写代码、简单推理、拆解任务。
-
叠加外部组件:
-
上下文 / RAG
-
Agent 工具调用
-
模型参数:B
训练数据:token
显卡算力:FLOPS
AIGC:人工智能生成内容
AGI:通用人工智能,认知能力,自主学习,目前未实现
大语言模型的架构演进
从特征学习到表示学习
架构演进:
-
RNN循环网络:逐字读,逐步把信息累积到隐藏状态,用这个隐藏状态预测下一个 token。
问题:长上文,开头信息容易丢;不能并行计算(只能逐字读)
-
LSTM长短期记忆网络:对上述网络做了一些优化,但是问题还是存在
-
GRU:对上述网络简化了下,问题仍存在
-
Seq2Seq:就是编码器+解码器的结构,专门针对输入输出都是序列的任务,如翻译、摘要 编码器(Encoder)就是接收一整段输入文本,提炼里面的信息,输出一组向量 解码器(Decoder)根据已有的上文,逐个预测下一个词(token)
-
Seq2Seq+Attention:引入注意力机制,解码器可以从编码器挑重点
上述模型底层基本都是RNN,串行计算,长文本的问题都没解决
-
Transformer:2017年发布,完全使用自注意力机制建模文字间关系,沿用编码器+解码器结构,成为大模型基本架构。
-
序列内部 token 两两互相点积,得到向量相似度打分,建立全局依赖,解决 RNN 长距离遗忘问题,而且修改RNN的串行阅读方式后,可以实现并发。缺点就是时序混乱,需要添加位置编码
-
仅编码器(现代大语言模型用)更适合自由对话,参数利用率高,且大部分NLP任务都可以转为【预测下一个Tocken任务】,通用能力高
-
补充
-
自注意力机制是怎么实现预测下一个Token的:
- 自注意力获得相似度打分后,分数经过 softmax,转换成注意力权重,注意力权重对全部Token的V向量做加权求和,生成这个位置新向量。新向量送入后续网络(FFN + 输出层)采样选出概率最高的,作为下一个 token
-
怎么实现预测一句话:
- 再把完整新序列,重新丢进 Transformer,再次跑一遍自注意力,继续预测下一个 token...... 这就是大模型自回归生成。
-
掩码(Mask):Transformer 训练时,为了压缩训练时间,一次性把整条序列送进去并行计算,但是我们希望用 T1 预测 T2、T1T2 预测 T3......所有token 向量都摆在输入里面,模型直接看到,属于作弊,模型学不到东西。解码器自注意力会使用上三角 mask (对应所有「i 位置看 j,j>i」的地方全部屏蔽),训练阶段禁止偷看未来 token,强制模型只能依靠左侧上文去学习预测下一个词的能力。 区分:训练是并行;推理(使用模型生成文字)是串行!
训练范式
三阶段:
预训练:模型有了语言能力,会文字接龙,但是不会回答问题,只会接话
SFT监督微调:用少量高质量的人工标注数据继续训练,模型会正常对话,听懂指令
RLHF/RLAIF:人类反馈强化学习 / AI反馈强化,会更安全更好更具体的回答
工程实现
提示词工程:通过优化提示词,让模型稳定输出高质量结果
-
核心要素:
-
角色/任务(明确核心目标)、
-
上下文(补充资料)、
-
输入数据、
-
输出要求、
-
约束(不编造信息、不违法信息)
-
-
提示词工程边界:参考资料太多、多步骤复杂任务、缺乏极细分专业知识
可以让AI帮写提示词
RAG:检索增强生成,需要搭配知识库使用,用户提问时,把问题与检索资料一起塞进大模型提示词
微调:在已经训练好的基础上,用专属数据再按照SFT的方式训练一小段,让模型适配特定需求
续训:当对某些垂直领域知识系统性缺失,继续训练,补底层知识
智能体开发:智能体就是会思考、会自动分步骤完成复杂任务的AI系统
智能体在调用工具的时候,有两种方式
-
Function Call函数调用:工具需要自己描述,与业务绑定,模型判断使用什么工具,汇总结果
-
MCP上下文协议:2024年的新标准,把工具做成独立的服务器,AI应用可以直接调用
工作流
按照指定流程让AI工作,决策权在人手中
-
在线平台开发:如Dify、Coze,可视化拖拽,适合快速验证需求
-
基于框架开发:比如LangChain,自由度高,能定制复杂内容
总结
最后我们串一下五种落地方案的选择逻辑:
-
简单任务、要求不高:先用提示词工程,成本最低;
-
缺外部知识、私有资料:加 RAG;
-
要固定风格、提升指令遵循:做微调;
-
系统性缺行业知识:考虑续训;
-
多步骤、要调用工具、流程复杂:上智能体 / 工作流。
实际项目中,遵循「能简单就不复杂」的原则,优先用低成本的方案,不行再升级。
撰写提示词
使用AI生成
系统提示词:优先级更高,整个工作流执行全程生效,相当于底层规则
用户提示词:拼接【用户输入】或【固定模板】或【动态变量】...的完整最终输出
搭建知识库
背景:
为解决大模型的知识冻结、大模型幻觉痛点(缺乏特定领域数据,答复能力有限,生成虚构的回复)
解决方案:
原始知识库经过加工处理后存入向量数据库,RAG快速检索,补全模型缺失知识
以下是知识更新与知识检索过程

搭建知识库
以下是不同的知识库搭建平台
- AnythingLLM、CherryStudio:个人知识库。适合快速试错。桌面/图形化 AI 助手 + 知识库
- Dify、FastGPT:适合团队或内部平台使用。LLM Agent 与工作流编排平台
- RAGFlow: 企业级文档解析,可追溯引用。
在Cherry Studio上创建个人知识库
需要三个模型:嵌入模型 + 重排模型 + 对话生成 LLM
在硅基流动平台搜索上述模型,网址:硅基流动 SiliconFlow - 致力于成为全球领先的 AI 能力提供商
设置知识库:
- 召回数量(TopK):向量检索,一次性取出多少条相关 chunk
TopK 太大:一次性拿很多无关片段,大模型容易混淆
TopK 太小:漏了关键参考资料,回答缺信息
常规:3~8 条;开启重排时,可以粗召回多一点(比如 10 条)
-
相似度阈值:数值越高召回越严格,推荐0.6,不推荐超过0.8
-
分段标识符:
\n\n
学会后尝试在扣子上搭建自己的知识库
设置知识库:
- 分段重叠度:相邻两个文本块(chunk)之间,互相重复保留的一小段文字的字符数量
知识库种类
-
普通知识库:数据自动切割成很多文本块(chunk),文本相似度匹配,找到相似片段喂给大模型。
-
FAQ知识库:Frequently Asked Questions,问答对知识库
-
问题与答案成对存储,问题可以写多条不同问法
-
用户提问进来,向量匹配用户问题和库内所有 question,找到相似度最高的FAQ,直接返回固定的answer,过程中不使用大模型
-
创建智能体
智能体的核心:以LLM 为核心,结合记忆 、工具调用 与环境交互能力 ,能够进行规划决策 并执行动作以达成目标
创建智能体常见平台:Coze 、Dify 、n8n
CherryStudio 运行框架说明(Claude Agent / Pi / DeepSeek Harness)
LLM 只会写文字,它不知道什么时候该调用工具、什么时候停下来、怎么循环思考。运行框架就是干这个调度工作的。
工作流
工作流就是把多个任务节点按顺序 / 分支 / 并行连成一条链路,用来实现复杂需求
节点类型很多,通过参数来连接不同的节点
-
代码节点:写函数来处理输出并输出,函数名必须是main,语言是JS,输入通过
params字典读取,return也返回字典对象,要对应输出 -
选择节点:进行条件判断,实现分支路由
-
循环节点:循环体内可以再添加节点,嵌套执行
-
批处理节点:输入必须是数组,批处理次数上限防止意外消耗Token,批处理体也可以嵌套
-
意图识别:类似match-case,对用户需求进行识别从而进入不同分支,被选中分支输出整数编号,其余输出0,如果所有分支都不匹配也输出0。由于意图识别是AI判断的,不是固定规则,所以天然会不稳定
-
变量聚合:对多分支的输出聚合处理(返回每个分组第一个非空值),常与意图识别结合使用
-
变量赋值节点:(结合应用或智能体使用)
-
应用变量:每次请求重设为默认值,不会保存,如判断分支标记、临时数据
-
用户变量:单个用户的持久化数据,比如偏好,个性化设置
-
系统变量:系统自动产生的数据,只读,比如ID
-
-
问答节点:当选择固定选项后,其他选项:用户不可见,意味如果用户不选择选项而是继续输入后的操作
扣子的工作流导出--->文本文件,所以可以直接全选复制粘贴
Dify的工作流导出--->yml文件,使用yml文件导入导出
扣子编程工作流、智能体、技能都可以AI生成
对话流:带会话记忆的、面向人机聊天的特殊工作流(需勾选创建并绑定同名会话)
普通工作流:一次性任务流水线,没有对话上下文记忆,跑完就销毁状态
代码节点
代码节点本质就是:接收上游节点输出的数据(JSON 为主)→ 简短代码处理 → 输出新数据传给下一个节点
难点就两件事:看懂传入的数据结构 、会简单读写这个结构
数据结构
最常用的就是字典{}与列表\[\],字典取值代码如下,列表用下标数字
input_data = {
"query": "如何查看Agent余额",
"result": "在用量统计页面查",
"score": 0.92
}
`input_data["query"]` → 用key键取value
几乎所有工作流平台必须 return 字典 {"key":值},这样下游节点才能读取
所以简单的模板如下
def main(inputs):
# 1. 从上游inputs拿数据
user_query = inputs["user_query"]
# 2. 在这里写你的处理逻辑
result_text = "你输入的问题是:" + user_query
# 3. 返回字典,给下游节点
return {
"output_text": result_text
}
如果是复杂嵌套结构,逐个取就可以input_data["chunks"][0]["content"]
代码节点里,打印日志用print() ,没有专门的log函数。
实战
简单工作流
生成宣传视频
-
先创建用户变量用来记录产品信息,建立一条对话流(专门通过对话询问并保存产品信息到对应参数)
-
创建工作流(拼接信息输入到大模型节点,自动生成脚本与分镜)
-
创建工作流(输入脚本与分镜,创建图片)
-
创建ui界面,放置模块,事件
钉钉群消息助手
导入yml工作流文件
插件:钉钉
钉钉自定义机器人
行业调研
插件:Google、网页抓取、电子邮件
上述插件都需要授权配置
智能电商客服
使用以下知识库:FAQ知识库、物流政策知识库
创建订单数据库、物流数据库
售前工作流
-
商品查询:大模型提取名称模糊查询数据库
-
活动查询:模拟http请求调用大模型生成活动
-
物流政策查询:大模型提取地区+城市,结合知识库查询
售中工作流
-
订单查询:判断订单单号正确与否
-
物流查询:同上
-
订单修改:查询订单,判断订单状态,修改订单
售后工作流
使用Python调用工作流
发布工作流、授权生成API、
有三种代码
使用postman测试http请求:选择请求方式、填写-H请求头、-d请求体(参数用用"input":输入)