常见的向量数据库:

数据库名称 所属阵营 核心优势 缺点 / 局限 最佳适用场景
Chroma 原生轻量 极简、轻量,Python 几行代码即可搞定,本地运行无需复杂配置。 不适合大规模分布式生产环境,功能相对单一。 本地 Demo 开发、学术研究、轻量级 Agent 记忆层。
Milvus 原生分布式 企业级架构,读写分离,轻松应对十亿级海量向量,支持复杂的标量过滤。 架构较重,运维和部署成本较高,对小项目来说大材小用。 严肃的企业级 RAG 系统、海量图片/视频/多模态检索。
Pinecone 原生全托管 SaaS 服务,完全免运维,开箱即用,API 极其简单,主流 AI 框架生态对接完美。 数据必须传到云端(隐私敏感企业受限),商业版按量付费成本较高。 初创团队、快速原型验证、不想花精力搞运维的商业项目。
Qdrant 原生高性能 Rust 编写,内存和 CPU 利用率极高,支持极其灵活的有效载荷(Payload)过滤。 社区规模相较于 Milvus 和 Pinecone 略小。 追求极致性能与资源利用率的生产环境。
pgvector 传统数据库扩展 依托 PostgreSQL,稳定性极高;只要会写 SQL 就能上手,无需维护两套数据库。 数据量达到数千万或亿级以上时,检索性能和扩展性不如原生向量数据库。 团队已有成熟的 PostgreSQL 技术栈,且向量数据规模在中等以下。
Elasticsearch 传统搜索引擎 能够完美将**传统关键词搜索(BM25)向量搜索(KNN)**结合,实现强力的混合检索。 内存开销大,对于单纯的向量检索来说显得过于臃肿。 电商搜索、企业级知识库、需要深度结合文本与语义检索的场景。
Redis 传统缓存扩展 基于内存存储,响应速度极快,读写延迟极低。 内存成本高,不适合存储海量、冷门的向量数据。 大模型 Agent 的短期上下文记忆、热点向量数据缓存。

💡 选型速记口诀

  • 小项目/找灵感:Chroma
  • 搞生产/数据大:Milvus
  • 不差钱/图省事:Pinecone
  • 抱紧 SQL 大腿:pgvector
  • 既要搜文本又要搜语义:Elasticsearch

N-gram

通过概率论的思想,计算当前词出现的概率(不能看前面所有词,计算复杂,不能实现)
引入马尔可夫假设,我们认为当前词出现概率只和当前词前n个词相关
缺点:

  • 数据稀疏性 (Sparsity) :如果一个词序列从未在语料库中出现,其概率估计就为 0,这显然是不合理的。虽然可以通过平滑 (Smoothing) 技术缓解,但无法根除。
  • 泛化能力差:模型无法理解词与词之间的语义相似性。例如,即使模型在语料库中见过很多次 agent learns,它也无法将这个知识泛化到语义相似的词上。当我们计算 robot learns 的概率时,如果 robot 这个词从未出现过,或者 robot learns 这个组合从未出现过,模型计算出的概率也会是零。模型无法理解 agent 和 robot 在语义上的相似性。

神经网络语言模型与词嵌入

构建一个语义空间:创建一个高维的连续向量空间,然后将词汇表中的每个词都映射为该空间中的一个点。这个点(即向量)就被称为词嵌入 (Word Embedding) 或词向量。在这个空间里,语义上相近的词,它们对应的向量在空间中的位置也相近。例如,agent 和 robot 的向量会靠得很近,而 agent 和 apple 的向量会离得很远。

学习从上下文到下一个词的映射:利用神经网络的强大拟合能力,来学习一个函数。这个函数的输入是前 n−1 个词的词向量,输出是词汇表中每个词在当前上下文后出现的概率分布。

问题:
下文窗口是固定大小的。为了预测下一个词,它只能看到前 n−1 个词,再早的历史信息就被丢弃了

循环神经网络 (RNN) 与长短时记忆网络 (LSTM)

隐藏状态 (hidden state) 向量:网络会读取当前的输入词,并结合它上一刻的记忆(即上一个时间步的隐藏状态),然后生成一个新的记忆(即当前时间步的隐藏状态)传递给下一刻

存在一个严重的问题:长期依赖问题 (Long-term Dependency Problem) 。在训练过程中,模型需要通过反向传播算法根据输出端的误差来调整网络深处的权重。对于 RNN 而言,序列的长度就是网络的深度。当序列很长时,梯度在从后向前传播的过程中会经过多次连乘,这会导致梯度值快速趋向于零(梯度消失)或变得极大(梯度爆炸)。梯度消失使得模型无法有效学习到序列早期信息对后期输出的影响,即难以捕捉长距离的依赖关系。

为了解决长期依赖问题,长短时记忆网络 (Long Short-Term Memory, LSTM) 被设计出来。LSTM 是一种特殊的 RNN,其核心创新在于引入了细胞状态 (Cell State) 和一套精密的门控机制 (Gating Mechanism) 。细胞状态可以看作是一条独立于隐藏状态的信息通路,允许信息在时间步之间更顺畅地传递。门控机制则是由几个小型神经网络构成,它们可以学习如何有选择地让信息通过,从而控制细胞状态中信息的增加与移除。这些门包括:

遗忘门 (Forget Gate):决定从上一时刻的细胞状态中丢弃哪些信息。
输入门 (Input Gate):决定将当前输入中的哪些新信息存入细胞状态。
输出门 (Output Gate):决定根据当前的细胞状态,输出哪些信息到隐藏状态。

Transformer 架构解析

RNN 无法进行大规模的并行计算,在处理长序列时效率低下,这极大地限制了模型规模和训练速度的提升。Transformer在2017 年由谷歌团队提出[4]。它完全抛弃了循环结构,转而完全依赖一种名为注意力 (Attention) 的机制来捕捉序列内的依赖关系,从而实现了真正意义上的并行计算。

  • 编码器 (Encoder) :任务是“理解”输入的整个句子。它会读取所有输入词元,最终为每个词元生成一个富含上下文信息的向量表示。
  • 解码器 (Decoder) :任务是“生成”目标句子。它会参考自己已经生成的前文,并“咨询”编码器的理解结果,来生成下一个词。

Transformer 的并行在于抛弃了 RNN 的时间顺序、将全句转化为矩阵一次性通算;多头注意力则是通过矩阵形变让多个独立的“语义专家”同时计算并拼接结果。

Input

Embedding

Position Encoding

Attention

Feed Forward

Attention

Feed Forward



Output

提示工程

模型采样参数

Temperature:温度是控制模型输出 “随机性” 与 “确定性” 的关键参数。其原理是引入温度系数T>0,将 Softmax 改写
当T变小时,分布“更加陡峭”,高概率项权重进一步放大,生成更“保守”且重复率更高的文本。当T变大时,分布“更加平坦”,低概率项权重提升,生成更“多样”但可能出现不连贯的内容。

Top-k :其原理是将所有 token 按概率从高到低排序,取排名前 k 个的 token 组成 “候选集”,随后对筛选出的 k 个 token 的概率进行 “归一化”

Top-p :其原理是将所有 token 按概率从高到低排序,从排序后的第一个 token 开始,逐步累加概率,直到累积和首次达到或超过阈值 p,此时累加过程中包含的所有 token 组成 “核集合”,最后对核集合进行归一化。

零样本、单样本与少样本提示

零样本提示 (Zero-shot Prompting) 这指的是我们不给模型任何示例,直接让它根据指令完成任务。这得益于模型在海量数据上预训练后获得的强大泛化能力。
单样本提示 (One-shot Prompting) 我们给模型提供一个完整的示例,向它展示任务的格式和期望的输出风格。
少样本提示 (Few-shot Prompting) 我们提供多个示例,这能让模型更准确地理解任务的细节、边界和细微差别,从而获得更好的性能。

指令调优的影响

指令调优 (Instruction Tuning) 是一种微调技术,它使用大量“指令-回答”格式的数据对预训练模型进行进一步的训练。经过指令调优后,模型能更好地理解并遵循用户的指令。我们今天日常工作学习中使用的所有模型(如 ChatGPT, DeepSeek, Qwen)都是其模型家族中经过指令调优过的模型。

基础提示技巧

角色扮演 (Role-playing) 通过赋予模型一个特定的角色,我们可以引导它的回答风格、语气和知识范围,使其输出更符合特定场景的需求。
上下文示例 (In-context Example) 这与少样本提示的思想一致,通过在提示中提供清晰的输入输出示例,来“教会”模型如何处理我们的请求,尤其是在处理复杂格式或特定风格的任务时非常有效。

思维链

对于需要逻辑推理、计算或多步骤思考的复杂问题,直接让模型给出答案往往容易出错。思维链 (Chain-of-Thought, CoT) 是一种强大的提示技巧,它通过引导模型“一步一步地思考”,提升了模型在复杂任务上的推理能力。

文本分词

为了兼顾词表大小和语义表达,现代大语言模型普遍采用子词分词 (Subword Tokenization) 算法。它的核心思想是:将常见的词(如 “agent”)保留为完整的词元,同时将不常见的词(如 “Tokenization”)拆分成多个有意义的子词片段(如 “Token” 和 “ization”)。这样既控制了词表的大小,又能让模型通过组合子词来理解和生成新词。

字节对编码算法解析

字节对编码 (Byte-Pair Encoding, BPE) 是最主流的子词分词算法之一[6],GPT系列模型就采用了这种算法。其核心思想非常简洁,可以理解为一个“贪心”的合并过程:

初始化:将词表初始化为所有在语料库中出现过的基本字符。
迭代合并:在语料库上,统计所有相邻词元对的出现频率,找到频率最高的一对,将它们合并成一个新的词元,并加入词表。
重复:重复第 2 步,直到词表大小达到预设的阈值。

大语言模型的缩放法则与局限性

缩放法则

缩放法则(Scaling Laws)是近年来大语言模型领域最重要的发现之一。它揭示了模型性能与模型参数量、训练数据量以及计算资源之间存在着可预测的幂律关系。这一发现为大语言模型的持续发展提供了理论指导,阐明了增加资源投入能够系统性提升模型性能的底层逻辑。

模型幻觉

模型幻觉(Hallucination)通常指的是大语言模型生成的内容与客观事实、用户输入或上下文信息相矛盾,或者生成了不存在的事实、实体或事件。幻觉的本质是模型在生成过程中,过度自信地“编造”了信息,而非准确地检索或推理。根据其表现形式,幻觉可以被分为多种类型[11]

为了提高大语言模型的可靠性,研究人员和开发者正在积极探索多种检测和缓解幻觉的方法:

  • 数据层面: 通过高质量数据清洗、引入事实性知识以及强化学习与人类反馈 (RLHF) 等方式[13],从源头减少幻觉。
  • 模型层面: 探索新的模型架构,或让模型能够表达其对生成内容的不确定性。
  • 推理与生成层面:
    • 检索增强生成 (Retrieval-Augmented Generation, RAG) [14]: 这是目前缓解幻觉的有效方法之一。RAG 系统通过在生成之前从外部知识库(如文档数据库、网页)中检索相关信息,然后将检索到的信息作为上下文,引导模型生成基于事实的回答。
    • 多步推理与验证: 引导模型进行多步推理,并在每一步进行自我检查或外部验证。
    • 引入外部工具: 允许模型调用外部工具(如搜索引擎、计算器、代码解释器)来获取实时信息或进行精确计算。

Encoder-Decoder 是“先编码理解再解码生成”的分离式架构,适合结构明确的输入输出任务;
Decoder-Only 将所有任务统一为“基于历史上下文的自回归预测”,结构更简单、训练更高效、扩展性更强,因此成为当前大语言模型的主流架构。

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐