大模型知识点
人工智能基础知识
-
人工智能发展必备三要素: 数据、算法、算力
-
人工智能 里程碑事件 1956年 举办 达特茅斯 会议,人工智能元年 1997年 IBM 超级电脑深蓝 战胜 象棋大师卡斯帕罗夫 2016年 谷歌围棋 人工智能阿尔法狗 战胜 李世石 2022年 OPEN AI 开发上市 Chat GPT
-
CPU、GPU区别 CPU I\O密集型 任务 GPU 计算密集型 任务
-
常见的GPU A100、A800、H100、H800、4090、3090
机器学习
-
机器学习 从数据中自动分析获得模型并利用模型 对 未知数据进行预测
-
机器学习分类
监督学习:输入数据=输入特征值+目标值 无监督学习:输入数据=输入特征值 半监督学习:训练集=标记样本数据+未标记样本数据 强化学习:自动决策+连续决策
-
常见的机器学习的常见算法
监督学习: 线性回归:预测连续数值型目标变量 逻辑回归:解决二分类问题 决策树:用于分类和回归,树状结构决策 随机森林:用于分类和回归,基于 多个决策树 集成学习方法 支持向量机:处理高维空间中的分类和回归问题 K-近邻算法:根据最近邻居标签进行预测 朴素贝叶斯:基于 贝叶斯定理 简单概率分类器 神经网络:多层感知机 (MLP) + 卷积神经网络 (CNN) + 循环神经网络 (RNN)…可处理复杂数据和任务
无监督学习: K-均值聚类:数据 分组 K个簇中 基本方法 主成分分析:降维技术,用于数据压缩和去相关 自编码器:一种特殊神经网络,用于学习数据的高效表示 谱聚类:利用土地拉普拉斯矩阵进行聚类
强化学习:
Q-Learning:学习在给定状态下采取某个动作的价值
Deep Q-Netwo rk(DQN):结合了Q-Learning与神经网络,用于处理高维度输入
Policy Gradients:直接优化策略以最大化累积奖励
Actor-Critic 方法:结合了价值方法和策略梯度方法的优点
深度学习
-
深度学习
2006年,Hinton等人 提出 深度学习概念 和 基于非监督贪心逐层训练算法的多层自动编码器 Lecun等人 提出 第一个真正多层结构学习算法、可以利用空间相对关系减少参数数目以提高训练性能的卷积神经网络 从广义上说,深度学习的网络结构是多层神经网络之一
-
深度学习常见的模型
前馈神经网络、卷积神经网络、循环神经网络、生成对抗网络、长短期记忆网络、Transformer
前馈神经网络:最基础深度学习模型,信息在其中单向传播 卷积神经网络:适合处理具有网络结构的数据(图像、音频),通过卷积层捕捉局部特征和空间信息 循环神经网络:设计用于处理序列数据(文本、时间序列数据),能够保留并利用历史信息 长短期记忆网络:一种RNN变体,通过特殊门控机制解决长期依赖问题,适合处理更长序列数据 生成对抗网络:生成器+判别器,通过相互博弈学习数据分布,进而生成新样本 Transformer:自然语言处理任务设计,通过自注意力机制处理序列数据
大模型
-
大模型LLM
LLM是一种基于Transformer架构模型 通过训练大量文本数据,学习语言的语义、语法和上下文信息 从而对自然语言文本进行建模
-
常见的大模型 华为盘古模型、阿里巴巴通义大模型、BERT、T5、 Meta的Llama系列、科大讯飞 星火大模型、百度文心大模型
BERT:开启Transformer模型在NLP领域的革命,通过双向上下文预训练,极大提升了语言理解任务的表现 T5:统一多种文本处理任务,通过将所有任务视为文本到文本的转换问题来简化训练过程 Meta的Llama系列:Meta AI推出的大型语言模型,提供高效的自然语言处理能力 华为盘古模型:CV+NLP+多模态+预测+科学计算 (5大基础模型),可实现多种功能 阿里巴巴通义大模型:覆盖语言、听觉、多模态等领域,致力于实现接近人类智慧的通用智能 科大讯飞 星火大模型:拥有跨领域的知识和语言理解能力,能够基于自然对话方式理解与执行任务 百度文心大模型:已实现AI应用场景全覆盖,包括NLP、CV、跨模态、生物计算与行业大模型
-
大模型按技术分类
Encoder-Only技术、Encoder-Decoder技术、Decoder-Only模型
-
大模型特点
巨大的规模、涌现能力、更好的性能和泛化能力、多任务学习、幻觉、复读机问题
巨大的规模: 参数数十亿,模型大小大于数百GB,促使大模型具有强大的表达能力和学习能力
涌现能力: 许多小实体相互作用后产生大实体,大实体展现了其组成部分所不具有的特性 涌现能力定义(模型层面):当模型训练数据达到一定规模,模型突然涌现组成部分没有的、意料之外且能够综合分析和解决更深层次问题的复杂能力和特性,展现出类似于人类的思维和智能
更好的性能和泛化能力: 大模型通常具有更强大的学习能力和泛化能力,(在自然语言处理、图像识别、语言识别等)任务表现出色
多任务学习: 大模型通常会一起学习多种不同的NLP任务(机器翻译、文本摘要、问答系统等) 这可以是模型学习到更广泛和泛化的语言理解能力
幻觉: 幻觉定义:大模型在面对默写输入时,产生不准确、不完整或误导性的输出 使用人类反馈强化学习和检索增强 是当前 解决大模型幻觉问题 两个重要的技术方向
复读机问题: 复读机问题定义:LLMS在生成问题时出现的一种现象,模型倾向于无限的复制输入文本/以过度频繁的方式重复相同的句子或短语
-
涌现能力原因:
数据量的增加 计算能力的提升 模型架构的改进 预训练和微调 以上因素共同作用的结果 这使得大模型能够更好的理解和生成文本,为自然语言处理领域带来了显著进展
-
幻觉问题的 主要分类、解决办法 主要分类: 生成结果与数据源不一致、用户问题超出大模型认知
解决办法: 引入外挂知识库,加入纠偏规则,限制输出长度
-
复读机问题的 出现原因、解决办法
复读机问题出现原因: 数据偏差、训练目标的限制、缺乏多样性的训练数据
采取策略: 多样性训练数据、引入噪声、温度参数调整、后处理和过滤
-
大模型输入句子长度受限原因 (1) 受限于计算资源 (2) 训练阶段长句子会导致梯度消失或者梯度爆炸 (3) 推理阶段会增加预测错误率
-
大模型如何处理更长文本
(1) 分块处理,同时重叠保证连贯性 (2) 增加模型参数量,复杂化模型结构,提高对更长文本的捕捉与表达能力
RAG
-
RAG技术、技术架构 RAG通过检索将文档中信息引入到LLM,实现对文档的检索和理解 技术架构: 文档加载和分块-->文本向量化-->构建知识库 query向量挂-->向量检索 生成Prompt-->Prompt提交LLM,输出结果
-
RAG技术主要解决问题 解决通用LLM针对一些小众领域没有涉猎的问题 提升LLM回答准确性、权威性、时效性, 提高LLM回答可控性和可解释性, 提高模型可信度和安全性
-
评价RAG项目效果
针对检索环节评估: MMR平均倒排率:针对知识库分块,由3个查询语句,每次查询后去排名倒数,后取平均值 命中率:一个查询query,知识库中相关的块/检索返回的块
针对生成环节评估: 非量化:完整性、正确性、相关性 量化:Rouge指标
-
Rouge指标 主要基于召回率 Rouge是一种常用的大模型评价指标 4种Rouge方法: ROUGE-N: 在 N-gram 上计算召回率 ROUGE-L: 考虑了机器译文和参考译文之间的最长公共子序列 ROUGE-W: 改进了ROUGE-L,加权 计算最长公共子序列 ROUGE-S: 使用skip-grams,在参考摘要和待评测摘要进行匹配时,gram之间无连续要求,可"跳过"几个单词
-
针对通用RAG的改进点 优化query,做query的纠错、改写、规范化和扩展 对(向量数据库)做层次索引,提高检索效率和精度 对LLM模型微调,针对当前垂直领域引入知识库,提升回答的专业性、时效性和正确性 对最终输出做后处理,降低输出的不合理case
-
什么是向量数据库,以及它与传统关系型数据库的主要区别 专门用于存储和检索向量数据的数据库 支持高效的相似性搜索 区别:向量数据库使用向量索引和相似度度量来快速检索相似的数据点
-
什么是向量相似度度量,列举几种常见的向量相似度的算法 用来评估两个向量之间相似性的方法 常见的相似度度量方法包括皮尔逊相关系数、欧几里得距离、余弦相似度、曼哈顿距离、汉明距离等
-
在处理大规模向量数据时,如何有效地进行存储和查询 采用分布式存储系统、使用高效的索引和搜索算法、实施数据压缩和分块、利用并行计算资源
-
在向量数据库中,如何确保数据的安全性和隐私保护 实施访问控制、数据加密、审计日志、安全备份和恢复策略等措施
NLP
-
NLP定义 自然语言处理是一种专业分析人类语言的人工智能 在机器语言和人类语言之间沟通的桥梁 以实现人机交流的目的
-
NLP核心任务 自然语言理解==NLU 自然语言生成==NLG
-
分词定义 将长文本分解成以字词为单位的数据结构,方便后续的处理分析工作的模型
-
常见分词模型 JIEBA、ANSJ分词器、HANLP(最高支持python3.8)、Stanford、 哈工大LTP、KCWS分词器、IK、清华大学THULAC、ICTCLAS
-
词向量 一种自然语言处理技术(NLP) 词向量将词汇表中的 单词/短语 映射到一个实数向量中 这个过程设计将每个单词从一个高维稀疏表示转换成一个 低维、密集、连续 的向量空间中的向量 语义相近/功能相关 的词会被映射到彼此靠近的点上 有助于捕捉词汇之间语义和语法关系
-
常见的词向量模型 Word2Vec、FastText、BGE Word2Vec,2013年,谷歌 为人工智能时代 Embedding 方向研究 提供奠基性意义 FastText, Facebook,开源词向量模型,考虑到词整体形态,利用子词信息学习词向量,适用于低资源语言和稀有词 BGE,智源研究院,通用语义向量模型 词向量研究 2003年 在论文《a neural probabilistic language model》中发现
-
注意力机制、自注意力机制 注意力机制:机器,收到输入信息,希望机器去注意某些关键信息 自注意力机制:模型自己对变量的权重进行自赋值
-
自注意力机制重要组成部分 查询:当前元素,与键匹配 键:序列中其他元素,与查询匹配 值:序列中其他元素,键匹配查询、相关值用于构建输出
Lang chain相关
-
什么是Lang Chain
强大的开发大模型应用的框架 提供了一套工具、组件和接口, 可简化创建由LLM和聊天模型提供支持的应用程序的过程 可以轻松管理与语言模型的交互,将多个组件连接在一起,并集成额外的资源
常用模块组件: 模型 (Models)、模式 (Schema)、提示词 (Prompt)、代理 (Agents)、链 (Chains)、索引 (Indexes)、内存 (Memory)
-
Lang Chain model
基于语言模型的框架,用于构建聊天机器人,生成式问答(GQA)、摘要等功能 Lang Chain核心思想是将不同的组件"链"接在一起,以创建更高级的语言模型应用 LLMS:模型的简单使用,不支持流和参数配置 Chat:可以配置模型,支持流和参数配置
-
Chains
在简单应用中,可以单独使用LLM,但更复杂的应用需要将LLM进行连接 链允许我们将多个组件结合在一起创建一个单一连贯的应用
四个常用的链: LLM Chain:链,LLM + Prompt Template Simple Sequential Chain:简单链,将一个链的输出作为下一个链的输入 Sequential Chain:复杂链,允许定义并链接多个链 Conversation Chain:链,LLM + Conversation Prompt Template
-
Lang Chain中常用的Prompt有哪些?
( \chat\chat message\string\pipeline(多步提示词)) Prompt Template
-
Lang Chain中四种文档处理链
Stuff Documents Chain 这种链最简单直接 将所有获取到的文档作为 context 放入到 Prompt 中,传递到 LLM 获取答案 可以完整保留上下文,调用 LLM 次数比较少,建议能使用 stuff 的就使用这种方式 其适合文档拆分的比较小,一次获取文档比较少的场景,不然容易超过 token 的限制
Refine Documents Chain 通过迭代更新的方式获取答案 先处理第一个文档,作为 context 传递给 llm,获取中间结果 intermediate answer 然后将第一个文档的中间结果以及第二个文档发给 llm 进行处理,后续的文档类似处理 Refine 能部分保留上下文,以及 token 的使用能控制在一定范围
Map Reduce Documents Chain 先通过 LLM 对每个 document 进行处理,然后将所有文档的答案在通过 LLM 进行合并处理,得到最终的结果 MapReduce 的方式将每个 document 单独处理,可以并发进行调用。但是每个文档之间缺少上下文
Map Rerank Documents Chain 先通过 LLM 对每个 document 进行处理,每个答案都会返回一个 score,最后选择 score 最高的答案 大批量的调用 LLM,每个 document 之间是独立处理
-
Lang Chain内置的示例选择器 长度选择示例选择器、最大边际相关性示例选择器、最大余弦相似度示例选择器
-
Lang Chain自定义选择器
示例选择器需要继承 Base Example Selector 类,并且需要实现两个方法:
add _example 方法,该方法接受一个示例并将其添加到 Example Selector 中
select_ examples 方法,该方法接受输入变量(用于用户输入)并返回要在 few shot 提示中使用的示例列表。
-
Lang Chain内置的输出解释器有哪些?
列表解析器 日期时间解析器 Pydantic 解析器 JSON 解析器 XML解析器 Markdown 解析器
-
什么是Agents
Agents 是一个具有智能功能的智能体,它使用 LLM 和工具来执行任务 Agents 核心思想是使用LLM来选择要采取的一系列动作 在链式结构中,一系列动作是硬编码的 (在代码中) 在 Agents 中,使用语言模型作为推理引擎来确定要采取的动作及其顺序
Agents 关键组件: Agent:用于生成指令和执行动作的代理。 Tool:用于执行动作的函数。 Memory:用于存储历史对话和生成的指令 LLM:用于生成指令和执行动作的 LLM
-
Toolkits
CSV 代理、 文档比较、 Pandas Data frame Agent、 SQL数据库代理、 Vector store 代理