AI & LLM & RAG
一、机器学习
1. 自然语言处理(NLP):NLP全称为Natural Language Processing,包含NLU(自然语言理解)和NLG(自然语言生成);
2. 三大学习方法:监督学习、非监督学习和强化学习;
3. 结果评估:欠拟合、过拟合和适度拟合;
4. 模型架构:神经网络 -> 深度学习 -> Transformer(分解码器(Bert)和编码器(GPT))
GPT(生成式预训练Transformer)延伸为生成式GAI(可以生成文本、图片、音频、视频和代码等)或LLM;
5. OpenAI 服务模型分类
A. 语言模型:GPT-4,可以理解并生成自然语言和代码;
B. 嵌入模型:Embeddings,可以将文本转换为数字矢量形式,以提高文本相似性;
C. 图像模型:DALL-E,可以从自然语言生成原始图像的模型;
D. 语音模型:Text to speech(TTS) 文本转语音;
6. OpenAPI参数
A. temperature:生成结果的多样性,取值0~2之间,越大越随机,越小越固定;
B. stream:是否数据流模式,True或False
C. top_p:随机采样时,只考虑概率前百分之多少的token,不建议和temperature一起使用;
D. n:一次返回N条结果;
E. max_tokens:每条结果最多几个token,超过会被截断。
二、大模型
1. 大模型分类
A. LLM(Large Language Model):是大语言模型,专注于自然语言处理,旨在处理语言、文章、对话等自然语言文本,典型应用包括文本生成、问答系统、文本分类、机器翻译和对话系统等;
B. LMM(Large Multimodal Model):是大型多模态模型,能够同时处理和理解来自不同感知通道,如文本、图像、音频和视频等数据,并在这些模态之间建立关联和交互,应用在视觉问答、图像描述生成等;
2. 大模型训练步骤
A. 预训练
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、
C.
可参考:大语言模型库集
三、Prompt提示词
Prompt在大模型中的作用是通过提供明确的指令或问题,引导模型生成特定类型的响应,是AGI时代的基本技能,属于门槛低,但天花板高。
1. Prompt包含的要素
A. 上下文:包含外部信息或额外的上下文信息,引导语言模型更好地响应,如角色(给AI定义一个最匹配任务的角色)、任务和知识;
B. 指令:想要模型执行的特定任务或指令,如步骤、思维链和举例(必要时给出举例,会对输出正确性有很大帮助);
C. 输入数据:任务的输入信息,在提示词中明确的标识出输入,如句子、文章和问题;
D. 输出提示:输出的格式描述,以便后继模块自动解析模型的输出结果,如JSON、XML等;
2. Prompt分类
A. 按使用方式分:系统提示词(System Prompt)和用户提示词(User Prompt);
B. 按类型分:指令型提示词、描述型提示词、问题型提示词和情景型提示词;
C. 按组织形式分:非结构化和结构化。
3. Prompt使用技术
A. 零样本提示(Zero Shot):零样本提示是一种让模型在没有特定任务示例展示的情况下直接处理任务的技术。其原理在于模型经过大量数据训练和指令调整后,自身具备了一定的通用知识和任务理解能力;
B. 少样本提示(Few Shot):少样本提示在零样本提示效果不佳时发挥作用。它通过为模型提供少量任务示例,帮助模型学习任务模式和规律;
C. 思维链(Chain of Thought, CoT):思维链提示旨在为模型提供清晰的推理步骤引导,从而显著提升其在复杂推理任务中的表现。它通过在提示中展示详细的推理过程,让模型学习如何逐步分析和解决问题;
D. 自我一致性(Self-Consistency):主要用于优化思维链提示中的推理路径选择,通过提供多个少样本推理示例,让模型从多样的推理结果中筛选出最一致的答案,增强模型在算术和常识推理任务中的可靠性;
E. 思维树(Tree of Thought, ToT):为了帮助模型应对复杂的探索性任务而设计的,它通过维护一棵思维树,让模型在解决问题时能够生成和评估中间思维步骤,并结合搜索算法进行系统性探索;
F. 检索增强生成(RAG):将信息检索与文本生成结合,检索相关文档为模型提供知识支持,缓解“幻觉”问题。
4. Prompt编写与防范
A. 高质量Prompt:需要具体和丰富的指令且少歧义,重在平时训练积累、大模型对开头和结尾的内容更敏感,故定义角色有助于收缩问题域、举例子效果不错、增加约束如语气口吻等;
B. 防范Prompt攻击:注入分类器,先把危险pormpt拦截掉、直接在输入中防御;
C. 内容审核(Moderation API):通过Open API来识别用户发送的消息是否违法相关的法律法规,如果出现违规的内容,从而对他进行过滤。
8. Prompt压缩
A. 压缩技术:提示词优化和提炼、使用LLMLinggua-2或PCToolkit技术;
B. 压缩后优点:解决令牌限制的约束、减少成本支出、减少延迟并提高速度、增强焦点和输出质量;
C. 压缩后缺点:平衡压缩与上下文丢失、过度压缩的风险和缓解、不同用例的考虑因素。
可参考:提示词语工程指南
四、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. 规划:发挥LLM的逻辑推理能力,通过思维链能力实现任务拆解;
B. 记忆:负责存储信息,分感觉记忆、短期记忆和长期记忆;
C. 工具:调用各种工具来执行复杂的任务;
D. 行动:基于规划和记忆来执行具体的行动;
六、大模型微调(Fine-tuning)
尽管大模型功能强大,但在某些特定领域或任务上可能表现不够理想,通过微调可以让模型表现更好,同时保留原有通用能力,Fine-tunning适用于需要模型能力定制、要求低延迟、可用在需要避免大模型回答的幻觉等场景。
1. 与RAG的区别
RAG:外部知识利用、数据更新及时性、可解释性、减少训练成本;
Fine-tuning:任务特点优化、通用性、知识学习、资源需求大。
2. 微调过程
A. 数据收集:
B. 数据预处理;
C. 微调设置。
3. LLaMA-Factory技术
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构