AI & LLM & RAG

一、机器学习

  1. 自然语言处理(NLP):NLP全称为Natural Language Processing,包含NLU(自然语言理解)和NLG(自然语言生成);

  2. 三大学习方法:监督学习、非监督学习和强化学习;

  3. 结果评估:欠拟合、过拟合和适度拟合;

  4. 技术点:

    A. RNN(循环神经网络):尽管在某些任务上表现良好,但它们在处理长序列时容易遇到梯度消失和模型退化问题;

    B. CNN:

  5. 模型架构:神经网络 -> 深度学习 -> Transformer(分解码器(Bert)和编码器(GPT)、引入自注意力机制)

    GPT(生成式预训练Transformer)延伸为生成式GAI(可以生成文本、图片、音频、视频和代码等)或LLM;

  6. OpenAI 服务模型分类

    A. 语言模型:GPT-4,可以理解并生成自然语言和代码;

    B. 嵌入模型:Embeddings,可以将文本转换为数字矢量形式,以提高文本相似性;

    C. 图像模型:DALL-E,可以从自然语言生成原始图像的模型;

    D. 语音模型:Text to speech(TTS) 文本转语音;

  7. OpenAPI参数

    A. temperature:生成结果的多样性,取值0~2之间,越大越随机,越小越固定;

    B. stream:是否数据流模式,True或False

    C. top_p:随机采样时,只考虑概率前百分之多少的token,不建议和temperature一起使用;

    D. n:一次返回N条结果;

    E. max_tokens:每条结果最多几个token,超过会被截断。

 

二、大模型

        大模型落地使用主要有RAG、微调和蒸馏等几种方式,每种方式有各自的特点和适用场景。

  1. 大模型分类

    A. LLM(Large Language Model):是大语言模型,专注于自然语言处理,旨在处理语言、文章、对话等自然语言文本,典型应用包括文本生成、问答系统、文本分类、机器翻译和对话系统等;

    B. LMM(Large Multimodal Model):是大型多模态模型,能够同时处理和理解来自不同感知通道,如文本、图像、音频和视频等数据,并在这些模态之间建立关联和交互,应用在视觉问答、图像描述生成等;

  2. 大模型训练步骤

    A. 预训练(Pre-Training):是指在大规模数据集上进行模型训练,以帮助模型理解语言的结构和语义,策略分为自回归语言建模(预测一下个token)和掩码语言建模;

    B. SFT(监督微调):指在预训练的基础上,利用特定任务的数据进行进一步优化;

    C. RLHF(基于人类反馈的强化学习):将强化学习与人类反馈相结合,通过人类的作为判断作为奖励信号来引导模型的行为,如对模型输出的评价、标注或排序等方式。

  3. 大模型优点

    A. 适应性和灵活性强;

    B. 计算资源需求大;

    C. 规模和参数量大;

    D. 广泛数据集的预训练。

   4. LLM大模型缺点

    A. 信息过时:训练是存在截止时间的,源于需要经历预训练阶段、数据清洗和后期优化三个阶段;

    B. 领域知识缺乏:知识不是无限的,训练数据覆盖范围有限;

    C. 存在幻觉:回答不一定是准确的,源于模型框架的局限性、生成机制的不可控性、训练数据的不完整性等问题;

    D. 存在安全的挑战:在线的并不是最安全的,受数据泄露放大效应、对抗攻击脆弱性和合规问题等。

  5. 大模型本地部署平台

    A. Ollama:适用于资源有限,但需要高效推理的快速部署场景,如在边缘设备或低端设备上部署,模型支持有限;

    B. Xinference:适合支持复杂模型多种格式以及大规模部署的场景,更适合需要灵活和扩展性的企业用户,如在高端设备上部署。

  6. 常用大模型

    A. 大语言模型:DeepSeek(如DeepSeek-R1 70b,后面的数字代表模型的参数量);

    B. Embedding模型:BERT、bge-m3:latest;

    C. rerank模型:bge-reranker;

    D. 视频模型:

    E. 语音模型:

    F. 图像模型:

   可参考:大语言模型库集

 

三、Prompt提示词

  Prompt在大模型中的作用是通过提供明确的指令或问题,引导模型生成特定类型的响应,是AGI时代的基本技能,属于门槛低,但天花板高。

  1. Prompt包含的要素

    A. 上下文:包含外部信息或额外的上下文信息,引导语言模型更好地响应,如角色(给AI定义一个最匹配任务的角色)、任务和知识,上下文长度支持是有限的,通常为16K到2M tokens;

    B. 指令:想要模型执行的特定任务或指令,如步骤、思维链和举例(必要时给出举例,会对输出正确性有很大帮助),体现出包含和排除功能也很重要;

    C. 输入数据:任务的输入信息,在提示词中明确的标识出输入,如句子、文章和问题;

    D. 输出提示:输出的格式描述,以便后继模块自动解析模型的输出结果,如JSON、XML等;

    2. Prompt分类

    A. 按使用方式分:系统提示词(System Prompt)【指底层长期稳定的指令,旨在规范模型的行为、边界等】和用户提示词(User Prompt)【指在单次交互过程中输入的即时性指令】;

    B. 按类型分:指令型提示词、描述型提示词、问题型提示词和情景型提示词;

    C. 按组织形式分:非结构化和结构化。

  3. Prompt框架

    A. RTF(Role-Task-Format)框架:Role-角色,明确角色有助于模型的回应风格和专业领域、Task-任务,有助于模型更准确地生成有用的回应、Format-格式,明确用户获得答案的具体形式,该框架适用于对上下文依赖不明显的通用任务;

    B. RISE(Role-Input-Steps-Expectation)框架:Input-指定需要考虑的必要输入或因素、Steps-步骤,要求提供实现期望结果所需采取的详细步骤、Expectation-期望,描述期望的结果或成果等;

    C. TRACE(Task-Request-Action-Context-Example)框架:Request-请求,明确你想要LLM完成的具体请求、Action-操作,描述应采取的步骤或操作来完成任务或请求、Context-上下文,描述与请求相关的背景信息或上下文、Example-示例,以帮助LLM理解你的请求和期望的结果;

    D. CREATE(Clarity-Relevant Info-Example-Avoid ambiguity-Tinker)框架:Clarity-清晰度,强调提示词应当明确地界定任务或者意图、Relevant Info-相关信息,要求提示词提供必要和关联的细节、Avoid ambiguity-避免含糊不清,要求避免使用模糊或多义词、Tinker-迭代,意味着通过多次的测试和反馈来不断优化和完善提示词。

  4. Prompt使用技术

    A. 零样本提示(Zero Shot):零样本提示是一种让模型在没有特定任务示例展示的情况下直接处理任务的技术。其原理在于模型经过大量数据训练和指令调整后,自身具备了一定的通用知识和任务理解能力;

    B. 少样本提示(Few Shot):少样本提示在零样本提示效果不佳时发挥作用。它通过为模型提供少量任务示例,帮助模型学习任务模式和规律;

    C. 思维链(Chain of Thought, CoT):思维链提示旨在为模型提供清晰的推理步骤引导,从而显著提升其在复杂推理任务中的表现。它通过在提示中展示详细的推理过程,让模型学习如何逐步分析和解决问题;

    D. 自我一致性(Self-Consistency):是对CoT的一种扩展,主要用于优化思维链提示中的推理路径选择,通过提供多个少样本推理示例,让模型从多样的推理结果中筛选出最一致的答案,增强模型在算术和常识推理任务中的可靠性;

    E. 思维树(Tree of Thought, ToT):是对CoT的进一步扩展,在思维链的每一步,推理出多个分支,拓扑展开为一个思维树,为了帮助模型应对复杂的探索性任务而设计的,让模型在解决问题时能够生成和评估中间思维步骤,并结合搜索算法进行系统性探索;

    F. 反应式推理(ReAct):代表推理和行动;

      G. 检索增强生成(RAG):将信息检索与文本生成结合,检索相关文档为模型提供知识支持,缓解“幻觉”问题。

  5. Prompt编写与防范

    A. 高质量Prompt:需要具体和丰富的指令且少歧义,重在平时训练积累、大模型对开头和结尾的内容更敏感,故定义角色有助于收缩问题域、举例子效果不错、增加约束如语气口吻等;

    B. 防范Prompt攻击:注入分类器,先把危险pormpt拦截掉、直接在输入中防御;

    C. 内容审核(Moderation API):通过Open API来识别用户发送的消息是否违法相关的法律法规,如果出现违规的内容,从而对他进行过滤。

  6. Prompt压缩

    A. 压缩技术:提示词优化和提炼、使用LLMLinggua-2或PCToolkit技术;

    B. 压缩后优点:解决令牌限制的约束、减少成本支出、减少延迟并提高速度、增强焦点和输出质量;

    C. 压缩后缺点:平衡压缩与上下文丢失、过度压缩的风险和缓解、不同用例的考虑因素。

   7. Prompt优化工具:prompt-optimizer Chrome插件。

  可参考:提示词语工程指南

 

四、RAG

  RAG(Retrieval Augumented Generation)是一种结合了信息检索与生成模型的检索增强生成技术,旨在通过整合外部知识库,提高LLM生成答案的准确性和可信度,可以应用在检索、推荐、个人助理和对话机器人等。

  1. 基本流程:分离线和在线两步

    离线步骤:

      A. 文档加载:系统从各种来源中提取文本内容;

      B. 文档切分:文本被划分为多个段落或区块;

      C. 向量化:将文本块转为向量表示(嵌入);

      D. 灌入向量数据库:将这些嵌入向量存储到向量数据库中,以便在检索阶段快速访问和匹配。

    在线步骤:

      A. 获得用户问题:就是用户提出的问题;

      B. 用户问题向量化:将用户的问题转为向量表示,注意要与文本切割的向量化技术保持一致

      C. 检索向量数据库:系统通过计算用户问题的向量与知识库中文本向量的相似度,找到最相关的文本区块;

      D. 将检索结果和用户问题填入Prompt模板:增强输入信息,使其包含更多的上下文和相似知识;

      E. 用户最终获得的Prompt调用LLM:将增强后的提示词输入到大语言模型中;

      F. 由LLM生产回复:LLM生成答案。

  2. 文本分隔

    A. 缺点:分隔的粒度太大可能导致检索不精准,粒度太小可能导致信息不全面,问题的答案可能跨越两个片段;

    B. 改进:按一定的粒度,部分重叠式的切割文本,使上下文更完整,参数为chunk_size和overlap_size;

    C. 基于表格的PDF处理:识别表格区域,将表格转为图片(OCR(光学字符识别)技术),图片识别坐标读取,然后向量化。

  3. 向量检索

    A. 文本向量(Text Embeddings):将文本转成一组N维浮点数,向量之间距离远近对应语义相似度大小,向量间相似度计算算法分欧式距离(两点之间的距离)和余弦距离(两点与原点连线的夹角);

    B. 向量数据库(Vector Database):是专门为向量检索设计的中间件,向量数据库本身不生成向量,向量是由Embeddings模型生成的,常见的有Milvus、Qdrant、ChromaDB等开源向量数据库;

   Milvus:

   Qdrant:

   ChromaDB: 

  4. small to big检索策略:是一种渐进式的多粒度检索方法,其基本思想是先从小粒度的文本单元开始检索,然后逐步扩大检索范围到更大的文本单元,直到获得足够的相关信息为止。

  5. 重排序(Rerank):检索时召回一部分文本,通过一个排序模型对query和ducument重新打分排序,是为了解决最合适的答案不一定在检索的最前面;

  6. 检索分类

    A. 向量检索:

    B. 全文检索:

    C. 混合检索:结合全文检索往往更精准,而向量检索容易引入概念混淆的特点,弥补单一检索的问题。

  7. 工具

    A. RAGFlow:一款基于深度文档理解构建的开源RAG引擎,支持多种文档格式;

    B. GraphRAG:知识图谱RAG引擎。

 

五、AI Agent智能体

  Agent是一种能够感知环境、进行决策和执行动作的智能体,是感知->规划->行动的循环,能够以最低限度的配置应对多样化的应用场景。

  1. 系统构成

    A. 感知(Perception):感知是Agent与外部世界互动的桥梁,负责收集和解析环境数据;

    B. 规划(Planning):发挥LLM的逻辑推理能力,通过思维链能力实现任务拆解;

    C. 记忆(Memory):负责存储信息,作用于Prompt,有利于实现持续学习和处理长期任务,侧重于以用户信息为中心,分感觉记忆、短期记忆和长期记忆,记忆机制分为基于会话、基于列表、基于图谱与基于用户档案等类型;记忆模块的实现依赖存储结构,如短期记忆用键值对内存数据库,长期记忆用向量数据库或知识图谱;

    D. 工具(Tools):调用各种工具如API接口来执行复杂的任务;

    E. 行动(Action):基于规划和记忆来执行具体的行动;

  2. 关键特征

    A. 自主性:无需人工干预即可运行,独立做出决定;

    B. 反应式与主动式行为:既能应对环境变化,又能主动采取措施以确保目标实现;

    C. 适应性:通过处理新信息和新经验来学习和发展;

    D. 目标导向:努力实现预定目标或优化成果;

    E. 互动性:与其他代理或人类进行交流和合作;

    F. 持久性:持续运行,监控并应对动态环境。

  3. 方式

    A. Function Call:

    B. ReAct:

 

六、大模型微调(Fine-tuning)

  尽管大模型功能强大,但在某些特定领域或任务上可能表现不够理想,通过微调可以让模型表现更好,同时保留原有通用能力,Fine-tunning适用于需要模型能力定制、要求低延迟、可用在需要避免大模型回答的幻觉等场景。

   1. 与RAG的区别

    RAG:外部知识利用、数据更新及时性、可解释性、减少训练成本;

    Fine-tuning:任务特点优化、通用性、知识学习、资源需求大。

  2. 微调过程

    A. 选择预训练模型:首先,你需要选择一个已经预训练好的模型作为基础。这些预训练模型已经在大量数据上进行了学习,具备一定的语言理解能力。比如,你可以选择BERT、GPT 系列等知名的预训练模型;

    B. 数据收集:要想让模型学会新的技能,你需要准备一个与特定任务相关的数据集。比如,如果你想让模型学会分类评论的情感(是正面还是负面),你需要收集大量的带有标签(正面或负面)的评论作为数据集;

    C. 数据预处理:对数据集进行清理和处理,确保数据格式符合模型的要求。这可能包括去除无用信息、标准化文本、划分训练集和验证集等操作;

    D. 添加任务特定层:根据任务需求,在预训练模型上添加新的神经网络层。例如,如果是分类任务,可以添加一个或多个全连接层,并将输出调整为与类别数相同的维度;

    E. 冻结预训练参数:在 Fine-tuning 的初期,通常会先冻结预训练模型的参数,只训练新添加的任务特定层。这样做是为了避免破坏预训练模型已经学到的通用语言表示能力;

    F. 训练模型:使用准备好的数据集开始训练模型。在训练过程中,模型会不断调整任务特定层的参数,以最小化损失函数的值,从而学习特定任务所需的知识;

    G. 验证和调整:在训练过程中,需要定期使用验证集来评估模型的表现。如果效果不理想,可以调整超参数(如学习率、批次大小等)、改变训练策略或数据集,然后重新训练。

  3. 关键目标

    A. 任务优化:通过根据特定任务的数据调整权重,以优化模型在特定任务或领域的表现;

    B. 准确性和相关性:例如在法律文件分析、客户服务或医疗转录等专业应用中,提高准确性和相关性;

    C. 偏见减少:为了减少在预训练过程中可能无意中强化的偏见,从而为实际应用创建一个更准确和更具伦理的模型。

  4. 常用策略

    A. 全量微调:需要重新训练所有参数,故需要更长时间;也需要大量数据集;微调后可以获得较好的结果,可以更好地适应新的任务;

    B. 参数高效微调:只需要训练一部分参数,故需要时间较短;可以只是一部分数据集;微调后效果可能略差,但是可以更快地获得结果;

  5. 微调方法

    A. LoRA:

  6. LLaMA-Factory技术

 

七、大模型压缩

  模型压缩的目标是保持模型性能的同时降低模型大小,以满足计算设备的限制和提高模型的部署速度。

  1. 作用

    A. 降低存储和计算要求:通过减小模型大小,可以降低模型的存储要求,同时意味着更低的计算复杂度;

    B. 提高部署效率:压缩后的模型更容易在设备上进行部署,降低了部署难度和运维成本;

    C. 保持模型性能:通过精心设计的压缩算法和训练过程,可以确保压缩后的模型仍然保持较高的性能水平;

  2. 分类

    A. 权重裁剪:通过去除模型中不重要的权重来减小模型大小;

    B. 量化:将模型中的参数从浮点数转换为定点数或低精度浮点数来减小模型的体积;

    C. 知识蒸馏:通过训练一个小模型来模拟大模型的性能。

  3. 蒸馏是一种模型压缩技术,通过将复杂的大模型中的知识迁移到更轻量的小模型,在减少模型体积和计算资源需求的同时,尽可能保留原模型性能,流程阶段分:

    A. 教师模型训练:训练一个高性能的大模型作为知识来源;

    B. 知识迁移设计:定义学生模型需要模仿的知识类型和迁移方式;

    C. 学生模型训练:利用教师模型的知识和训练数据来训练轻量化的学生模型。

    

 

posted @ 2025-02-21 21:42  如幻行云  阅读(138)  评论(0)    收藏  举报