RAG -Principle
LLM 局限 当设计一个 LLM 问答应用,模型需要处理用户的领域问题时,LLM 通常表现出色 但有时提供的答案并不准确,甚至出现错误 当用户需要获取实时信息时,LLM 无法及时提供最新的答案 LLM 在知识、理解和推理方面展现了卓越的能力,在复杂交互场景中表现尤为突出 LLM 存在无法忽略的局限性 LLM 局限 Limitation Desc 领域知识缺乏 LLM 的知识来源于训练数据,主要为公开数据集,无法覆盖特定领域或高度专业化的内部知识 信息过时 LLM 难以处理实时信息,训练过程耗时且成本高昂,模型一旦训练完成,就难以处理和获取信息 幻觉 模型基于概率生成文本,有时会输出看似合理但实际错误的答案 数据安全 需要在确保数据安全的前提下,使 LLM 有效利用私有数据进行推理和生成 RAG 应运而生 将非参数化的外部知识库和文档与 LLM 结合 RAG 使 LLM 在生成内容之前,能够先检索相关信息 弥补 LLM 在知识专业性和时效性的不足 在确保数据安全的同时,充分利用领域知识和私有数据 选择 RAG 而不是直接将所有知识库数据交给 LLM ...
RAG - AI 2.0
AI 技术 做 AI 产品的工程研发需充分掌握 AI 技术 AI 产品从 MVP 到 PMF 的演进过程中会面临非常多的挑战 MVP - Minimum Viable Product - 最小可用产品 PMF - Product-Market Fit - 产品市场契合 要实现 AI 产品的 PMF 首先需要充分了解 AI 技术,明确技术边界,找到合适 AI 技术的应用场景 其次,需要深刻理解业务,用户需求决定产品方向,AI 技术是为业务服务的工具 在验证阶段,优先使用最佳 AI 模型以确保产品满足市场需求,确认后再逐步降低模型成本 坚持业务优先、价值至上的原则,避免纯 AI 科研化,脱离实际场景做 AI 技术选型 RAG LLM 局限 - 幻觉 + 知识实效性 + 领域知识不足 + 数据安全问题 由 OpenAI ChatGPT 引领的 AI 2.0 LLM 时代,见证了 LLM 在知识、逻辑、推理能力上的突破 Scaling Law、压缩产生智能、边际成本为零为理想中的 AGI 尽管 LLM 功能强大,但仍存在幻觉、知识实效性、领域知识不足以及数据安全问题的局限性 - RAG 文档问...
LLM Core - Model Structure
模型文件 模型文件,也叫模型权重,里面大部分空间存放的是模型参数 - 即权重(Weights)和偏置(Biases) 还有其它信息,如优化器状态和元数据等 文件格式 使用 PyTorch,后缀为 .pth 使用 TensorFlow 或者 Hugging Face Transformers,后缀为 .bin 在模型预训练后,可以保存模型,在生产环境,不建议保存模型架构 与 Python 版本和模型定义的代码紧密相关,可能存在兼容性问题 模型权重 - 推荐 1torch.save(model.state_dict(), 'model_weights.pth') 模型权重 + 模型架构 - 可能存在兼容性问题 1torch.save(model, model_path) 权重 + 偏置 权重 - 最重要的参数之一 在前向传播过程中,输入会与权重相乘,这是神经网络学习特征和模式的基本方式 权重决定了输入如何影响输出 偏置 - 调整输出 允许模型输出在没有输入或者所有输入都为 0 的时候,调整到某个基线值 $y=kx+b$ $k$ 为权重,$b$ ...
LLM Core - Decoder Only
模型架构 已经演化出很多 Transformer 变体,用来适应不同的任务和性能需求 架构名称 特点 主要应用 与原始 Transformer 的关系 原始 Transformer 编码器-解码器结构 机器翻译、文本摘要 基础模型 Decoder-only 只包含解码器 文本生成 去除了编码器部分 Encoder-only 只包含编码器 文本分类、信息提取 去除了解码器部分 Transformer-XL 加入循环机制 长文本处理 扩展了处理长序列的能力 Sparse Transformer 引入稀疏注意力机制 长序列处理 优化了注意力计算效率 Universal Transformer 递归的编码器结构 各种序列处理 引入递归机制,多次使用相同的参数 Conformer 结合 CNN 和 Transformer 优势 音频处理、语音识别 引入卷积层处理局部特征 Vision Transformer 应用于视觉领域 图像分类、视觉任务 将图像块处理为序列的 Transformer 编码器 Switch Transformer 使用稀疏性路由机制 大规模模型训练...
LLM Core - Transformer
背景 不论是 GRU 还是 LSTM 都面临梯度消失和梯度爆炸的问题 RNN 必须按照顺序处理序列中的每个元素,无法并发处理 RNN 还有长依赖问题,虽然可以处理长序列,但实战效果不佳 Attention Is All You Need - http://arxiv.org/pdf/1706.03762 简单介绍 Transformer 是一种基于自注意力机制的深度学习模型,诞生于 2017 年 目前大部分的语言模型(如 GPT 系列、BERT系列)都基于 Transformer 架构 Transformer 摒弃了之前序列处理任务中广泛使用的 RNN 转而使用自注意力层来直接计算序列内各元素之间的关系,从而有效捕获长距离依赖 Transformer 明显提高了处理速度 Transformer 由于其并行计算的特性,大幅度提升了模型在处理长序列数据时的效率 Transformer 由编码器和解码器组成 每个部分均由多层重复的模块构成,其中包括自注意力层和前馈神经网络 优势 Transformer 通过其独特的架构设计,在效率、效果和灵活性方面提供了显著优势使其成为处理复杂序列数据任...
LLM Core - Seq2Seq
简单介绍 Word2Vec 的主要能力是将词汇放在多维空间中,相似的词汇会被放在邻近的位置 Seq2Seq 不仅能理解词汇,还能将词汇串联成完整的句子 Seq2Seq 即从一个序列到另一个序列的转换 不仅仅能理解单词之间的关系,还能把整个句子的意思打包,并解压成另一种形式的表达 Seq2Seq 的核心角色 - 编码器(Encoder) + 解码器(Decoder) Role Desc Encoder 理解和压缩信息 - 把一封长信函整理成一个精简的摘要 Decoder 将摘要打开,并翻译成另一种语言或形式的完整信息 优缺点Seq2Seq 固定长度上下文 + 逐步输入(长序列) + 参数规模小 Seq2Seq 是一种比较高级的神经网络模型,适用于语言翻译,甚至是基本的问答系统 Seq2Seq 使用固定的上下文长度,因此长距离依赖的能力比较弱 Seq2Seq 的训练和推理通常需要逐步处理输入和输出序列,在处理长序列会受限 Seq2Seq 的参数量通常较少,在面对复杂场景时,模型性能可能会受限 Word2Vec 基本概念 Seq2Seq 是一种神经网络架构,模型的核心组成 ...
LLM Core - Word2Vec
Word2Vec概述 在 NLP 中,在文本预处理后,进行特征提取,涉及到将词语转化成数值的形式,方便计算机理解 Word2Vec 的目的 - 将词语转换成向量形式,使得计算机能够理解 通过学习大量文本数据,捕捉到词语之间的上下文关系,进而生成词的高维表示 - 即词向量 架构 Word2Vec 有 2 种主要的模型 - Skip-Gram + CBOW Model Desc CBOW 根据周围的上下文词汇来预测目标词 Skip-Gram 根据目标词预测其周围的上下文词汇 优劣 Key Value 优点 揭示词与词之间的相似性 - 通过计算向量之间的距离来找到语义相近的词 缺点 无法处理多义词,每个词被赋予一个向量,不考虑上下文中的多种含义 模型架构 连续词袋 - Continuous Bag of Words, CBOW跳字模型 - Skip-Gram 连续词袋 CBOW 模型是一种通过上下文预测目标词的神经网络架构 上下文由目标词周围的一个词或多个词组成,这个数目由窗口大小决定 窗口是指上下文词语的范围 - 如果窗口为 10,那么模型将使用目标词前后各...
LLM Core - NLP
基础 NLP 的研究目的是让计算机能够理解、解释和生成人类语言,一般包含 4 个步骤 Step Desc 文本预处理 将原始文本转换成机器容易理解的格式分词(单词或短语)、去除停用词、词干提取、词性标注等 特征提取 从处理过的文本中提取特征,以便用于机器学习模型将文本转换成数值形式 - 向量化 - 词袋模型 or 词嵌入 模型训练 使用提取到的特征和相应的机器学习算法来训练模型分类器、回归模型、聚类算法等 评估与应用 评估模型的性能,并在实际应用中使用模型来解释、生成或翻译文本 应用场景 - 搜索引擎 / 语音转换 / 文本翻译 / 系统问答 ML vs NLP Scope Desc ML 让计算机通过查看大量的例子来学习如何完成任务 NLP 教会计算机理解和使用人类语言 ML + NLP 用机器学习的技术来让计算机学习如何处理和理解语言 文本预处理 将原始文本转换成易于机器理解和处理的格式 文本清洗 去除噪音(对分析无关紧要的部分)及标准化文本 123456789101112131415161718impor...
LLM Core - RNN
背景 RNN 主要用来处理序列数据,目前大部分 LLM 都是基于 Transformer 通过学习 RNN,有助于理解 Transformer 有助于理解神经网络如何处理序列中的依赖关系、记忆过去的信息,并在此基础上生成预测 有助于理解关键问题 - 梯度消失 / 梯度爆炸 RNN Recurrent neural network - 循环神经网络 RNN 是一类用于处理序列数据的神经网络,RNN 能够处理序列长度变化的数据 - 文本 / 语音 RNN 的特点是在模型中引入了循环,使得网络能够保持某种状态,表现出更好的性能 左边 $x$ 为输入层,$o$ 为输出层,中间的 $s$ 为隐藏层,在 $s$ 层进行一个循环 $W$ 右边(展开循环) 与时间 $t$ 相关的状态变化 神经网络在处理数据时,能看到前后时刻的状态,即上下文 RNN 因为隐藏层有时序状态,那么在推理的时候,可以借助上下文,从而理解语义更加准确 优劣优势 RNN 具有记忆能力,通过隐藏层的循环结构来捕捉序列的长期依赖关系 特别适用于文本生成、语音识别等领域 局限 存在梯度消失和梯度爆炸的...
LLM Core - Machine Learning Algorithm
线性回归概述 线性回归是一种预测分析技术,用于研究两个或者多个变量之间的关系 尝试用一条直线(二维)或者一个平面(三维)的去拟合数据点 这条直线或者平面,可以用来预测或者估计一个变量基于另一个变量的值 数学 假设有一个因变量 y 和一个自变量 x 线性回归会尝试找到一条直线 y=ax+b a 为斜率,而 b 为截距 以便这条直线尽可能地接近所有数据点 $$y=ax+b$$ sklearn 房价预测 - 房价是因变量 y,而房屋面积是自变量 x 12345678910111213141516171819202122232425import matplotlib.pyplot as pltimport numpy as npfrom sklearn.linear_model import LinearRegression# 定义数据X = np.array([35, 45, 40, 60, 65]).reshape(-1, 1) # 面积y = np.array([30, 40, 35, 60, 65]) # 价格# 创建并拟合模型model = LinearRegre...















