https://github.com/datawhalechina/happy-llm
- NLP 自然语言处理(Natural Language Processing,NLP)
- NLP 是 一种让计算机理解、解释和生成人类语言的技术
- NLP 任务
- 中文分词
- 子词切分:将词汇进一步分解为更小的单位,即子词
- 词性标注:为文本中的每个单词分配一个词性标签,如名词、动词、形容词等
- 文本分类:将给定的文本自动分配到一个或多个预定义的类别中
- 实体识别:识别文本中具有特定意义的实体,并将它们分类为预定义的类别,如人名、地点、组织、日期、时间等。
- 关系抽取:从文本中识别实体之间的语义关系,如因果关系、拥有关系、亲属关系、地理位置关系等。
- 文本摘要:生成一段简洁准确的摘要,来概括原文的主要内容,分为抽取式摘要(Extractive Summarization)和生成式摘要(Abstractive Summarization)。
- 机器翻译:用计算机程序将一种自然语言(源语言)自动翻译成另一种自然语言(目标语言)的过程
- 自动问答:使计算机能够理解自然语言提出的问题,并根据给定的数据源自动提供准确的答案
- 文本表示的发展历程 从统计学向深度学习迈进
- 词向量 - 语言模型 - Word2Vec - ELMo
- Transformer 架构
- 注意力机制:注意力机制最先源于计算机视觉领域,其核心思想为当我们关注一张图片,我们往往无需看清楚全部内容而仅将注意力集中在重点部分即可。而在自然语言处理领域,我们往往也可以通过将重点注意力集中在一个或几个 token,从而取得更高效高质的计算效果。
- 核心变量:Query(查询值)、Key(键值)和 Value(真值)
- 自注意力(self-attention,自注意力)机制:在 Transformer 的 Encoder 结构中使用,即是计算本身序列中每个元素对其他元素的注意力分布,即在计算过程中,Q、K、V 都由同一个输入通过不同的参数矩阵计算得到。
- 掩码自注意力:指使用注意力掩码的自注意力机制。掩码的作用是遮蔽一些特定位置的 token,模型在学习的过程中,会忽略掉被遮蔽的 token。
- 多头注意力
- 预训练语言模型
- Encoder-only PLM (Pre-training Language Model)
- BERT (Bidirectional Encoder Representations from Transformers)
- Encoder-Decoder PLM
- Decoder-only PLM (GPT)
- 大语言模型 LLM (Large Language Model,LLM)
- LLM 指包含数百亿(或更多)参数的语言模型,它们往往在数 T token 语料上通过多卡分布式集群进行预训练,具备远超出传统预训练模型的文本理解与生成能力
- 能力
- 涌现能力 Emergent Abilities: 涌现能力是指同样的模型架构与预训练任务下,某些能力在小型模型中不明显,但在大型模型中特别突出。
- 上下文学习(In-context Learning): 允许语言模型在提供自然语言指令或多个任务示例的情况下,通过理解上下文并生成相应输出的方式来执行任务,而无需额外的训练或参数更新
- 拓展多模态
- 幻觉
- 如何训练
- Pretrain 预训练:与传统预训练模型类似,使用海量无监督文本对随机初始化的模型参数进行训练。
- 差异: 参数量、数据量、资源消耗都是量级的飞跃。
- 清洗流程: 文档准备 - 语料过滤 - 语料去重
- SFT 有监督微调: 让模型具备通用指令遵循能力。预训练后的模型虽然知识丰富,但只会预测下一个 token,SFT 则是教导模型如何理解并根据用户指令做出回复。
- 训练方式: 通过
指令微调的方式,即使用各种类型的“指令-回复”对作为有监督数据进行微调。
- 数据关键点: 覆盖范围与量级、获取难度
- 多轮对话支持
- RLHF 人类反馈强化学习
- 目的: 实现对齐(Alignment),使模型输出符合人类的安全、有用、无害标准。
- 步骤:
- 训练奖励模型 (RM):利用人工标注的偏好排名数据,训练一个能模拟人类偏好、对回复进行打分的分类模型。
- PPO 强化学习训练:引入近端策略优化(PPO)算法。在该过程中通常涉及四个模型(Actor, Ref, Reward, Critic)协同工作,通过最大化奖励分数来更新模型参数,同时利用 KL 散度约束防止模型偏离过远。
https://github.com/datawhalechina/Hello-Agents
- 智能体经典范式
- ReAct
- 工作流程:Thought (思考)、Action (行动)、Observation (观察)
- 特点:高可解释性、动态规划与纠错能力、工具协同能力
- 局限性: 对LLM自身能力的强依赖、执行效率问题、提示词的脆弱性、可能陷入局部最优
- 调试技巧: 检查完整的提示词、分析原始输出、验证工具的输入与输出、调整提示词中的示例 (Few-shot Prompting)、尝试不同的模型或参数
- Plan-and-Solve
- Reflection
- 工作流程
- 执行 (Execution):使用(如 ReAct 或 Plan-and-Solve)尝试完成任务
- 反思 (Reflection):接着,智能体进入反思阶段。它会调用一个独立的、或者带有特殊提示词的大语言模型实例,从多个维度进行评估,例如事实性错误、逻辑漏洞、效率问题、遗漏信息
- 优化 (Refinement):最后,智能体将“初稿”和“反馈”作为新的上下文,再次调用大语言模型,要求它根据反馈内容对初稿进行修正,生成一个更完善的“修订稿”。
- 特点:提供内部纠错回路、将任务执行转换为持续优化的过程、构建了短时记忆
- 成本: 模型调用开销、任务延迟、提示工程复杂度
- 收益:质量提升、鲁棒性与可靠性增强
- 智能体框架
- 能力
- 提升代码复用与开发效率:封装了智能体运行的核心循环(Agent Loop)。无论是 ReAct 还是 Plan-and-Solve,都可以基于框架提供的标准组件快速搭建。
- 实现核心组件的解耦与可扩展性:一个健壮的智能体系统应该由多个松散耦合的模块组成。框架的设计会强制我们分离不同的关注点:
- 模型层 (Model Layer):轻松替换不同的模型(OpenAI, Anthropic, 本地模型)。
- 工具层 (Tool Layer):提供标准化的工具定义、注册和执行接口。
- 记忆层 (Memory Layer):处理短期和长期记忆,可以根据需求切换不同的记忆策略(如滑动窗口、摘要记忆)。
- 标准化复杂的状态管理:提供一套强大而通用的状态管理机制。
- 简化可观测性与调试过程:一个精心设计的框架可以内置强大的可观测性能力。
- 实现能力
- 支持多平台大模型提供商
- 实现 Message 类、Agent 类等核心基础
- 实现 ReActAgent 类、Reflection 类等高级类
- 实现工具系统,支持接入工具、自定义工具等能力
- 记忆系统
- 类型
- 工作记忆: 存储临时信息,内存存储
- 情景记忆: 存储具体的事件和经历,数据库存储+向量检索
- 语义记忆: 存储抽象概念、规则、知识,图数据库存储+向量数据库
- 感知记忆: 支持文本、图像、音频等多模态数据存储和检索
- RAG
- 上下文工程:一个循环运行的智能体,会不断产生下一轮推理可能相关的数据,这些信息必须被周期性地提炼。因此,上下文工程的“艺与术”,在于从持续扩张的“候选信息宇宙”中,甄别哪些内容应当进入有限的上下文窗口。
- A2A 智能体通信协议: A2A 为任务定义了标准化的生命周期,包括创建、协商、代理、执行中、完成、失败等状态
- MCP
- ANP(Agent Network Protocol)协议,它专注于构建大规模、开放的智能体网络
- Agentic RL (Reinforcement Learning)基于强化学习的智能体训练
提示工程指南 – Nextra
- 常见设置
- 提示词要素
- 通用技巧
- 提示技术
- Agents:将智能体定义为一种由 LLM 驱动的系统,旨在自主执行操作和解决复杂任务
- 优化技巧
- LLM 研究成果