datawhale动手学大模型应用开发-第一章-大模型简介

2024-04-17 00:52

本文主要是介绍datawhale动手学大模型应用开发-第一章-大模型简介,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一. 常见的大模型简介

1.1 常见闭源大模型简介

名称简介地址
 ChatGPT
ChatGPT是OpenAI推出的基于GPT-3.5和GPT-4的聊天机器人,擅长对话、编程、解答等,具有丰富的知识基础和上下文理解能力。https://chat.openai.com/
GPT-4
GPT-4是OpenAI推出的多模态大型语言模型,具有更高的参数量和性能,支持长上下文,提供安全响应,需付费使用。https://chat.openai.com/
Claude 系列
Claude 3是Anthropic公司开发的闭源语言模型,包含Claude 3 Haiku、Sonnet和Opus三个版本,特点各异,旨在满足不同需求,具有200k的上下文长度,费用不同。App unavailable \ Anthropic
PaLM/Gemini 系列

Gemini是Google开发的PaLM系列语言模型的最新迭代版本,即Gemini 1.0,它取代了之前的Bard并成为了新的对话应用的基础。Gemini根据参数量的不同,分为Ultra、Pro和Nano三个版本,旨在满足不同的使用需求和设备要求。

https://gemini.google.com/app
文心一言
文心一言是由百度推出的知识增强型语言大模型,基于文心大模型的最新4.0版本,专注于提升中文处理能力。该模型包含多种类型的大模型,涵盖NLP、CV、跨模态和生物计算等领域。文心一言
星火大模型
星火大模型是科大讯飞开发的集文本生成、语言理解、知识问答等多能力于一体的认知智能大模型,具备跨领域知识理解与自然对话能力,并在数学、代码等方面展现出色性能。其特点包括对中文的深度优化、多模态交互能力以及适应国产算力平台的高效训练讯飞星火认知大模型-AI大语言模型-星火大模型-科大讯飞

1.2 常见开源大模型简介

模型名称参数量大模型架构类型大模型框架词表上下文长度改进点inference扩展
baichuan2-13B130亿2.6T 多语言tokens预训练casual-decoder12569640961.7b:RoPE ; 13b:ALiBi
2.SwiGLU作为激活函数
3.Layer Normalization; RMSNorm
4.AdamW+NormHead+Max-z损失
Llama-2-13b-chat130亿2T 0.13%中文casual-decoder2048->4096

LayerNorm换成了RMSNorm

llama1:MQA
llama2:  GQA

position embedding:RotayEmbedding
增加了RLHF
强化学习阶段采用了GAtt机制解决上下文遗忘问题

Qwen-7B-Chat70亿3T 多语言tokens预训练casual-decoder152k训练:2048

预测外推:8192
1.embedding和输出映射不进行权重共享
2.使用了RoPE(旋转位置编码)进行位置编码
3.在大多数层中移除了Bias,但在QKV层保留
4.使用了预归一化(Pre-Norm)和RMSNorm进行规范化
5.SwiGLU作为激活函数
6.Flash Attention
 
NKT感知插值
LogN-Scaling
窗口Self-Attention
ChatGLM2-6B60亿在1.4万亿中英文tokens数据集上训练,并做了模型对齐prefix-decoder 
->
casual-decoder
32k1.更长的上下文:使用了FlashAttention技术,升级到32K
2.Multi-Query Attention

二、检索增强RAG

2.1 RAG简介

检索增强生成(Retrieval-Augmented Generation,简称RAG)是一种结合了信息检索和自然语言生成的自然语言处理方法。它的核心原理在于利用信息检索技术从大量的文本数据中获取相关信息,然后结合这些信息使用自然语言生成技术来产生符合用户需求的文本结果。

RAG模型通常包括信息检索和生成两个主要模块。在信息检索模块,模型通过理解和解析用户输入,使用索引和检索算法从大规模的文本数据中快速提取与查询相关的内容。随后,在生成模块,RAG利用检索到的信息作为上下文,通过自然语言生成模型(如大型语言模型)生成自然语言文本,以更加贴近用户需求。

2.2 RAG 基本流程

RAG 的工作流程主要分为三个步骤:检索、增强和生成。

检索: 使用用户查询从外部知识源中检索相关上下文。将用户查询嵌入到向量空间中,与向量数据库中的附加上下文进行相似性搜索,返回前 N 个最接近的数据对象。

增强: 使用用户查询和检索到的附加上下文填充提示模板。

生成: 将经过检索增强的提示传递给LLM。

三、LangChain

3.1 Langchain简介

LangChain 是一个用于构建由语言模型驱动的应用程序的框架。它旨在实现数据感知和主动性,允许语言模型与其他数据源连接,并与其环境进行交互。

LangChain 提供了模块化的组件抽象和一系列用例特定链,这些链可以被看作是以特定方式组装这些组件,以便最好地完成特定用例

如上图,每个椭圆形代表了 LangChain 的一个模块,例如数据收集模块或预处理模块。
每个矩形代表了一个数据状态,例如原始数据或预处理后的数据。箭头表示数据流的方向,从一个模块流向另一个模块。

3.2 Langchain核心模块

  1. 模型输入输出(Model I/O): 这是 LangChain 框架的核心元素,包括与语言模型交互的构建块。LangChain 提供了与大型语言模型(LLM)进行交互的接口和集成,不提供自己的 LLM,而是提供了一个标准接口,用于与许多不同的 LLM 进行交互。

  2. 数据连接(Data Connection): 数据连接模块提供了文档加载器和文档转换器等工具,用于将非结构化文本转换为可处理的数据。这些工具包括文本拆分器、冗余过滤器、元数据提取器、多语言转换器和对话转换器等,大大增强了 LangChain 框架的灵活性。

  3. 链(Chains): 链允许将多个组件组合在一起,创建一个单一的、连贯的应用程序。LangChain 中主要有基础链(LLMChain)、路由链(RouterChain)、顺序链(SequentialChain)和转换链(TransformChain)等,用于组合和连接不同的功能。

  4. 记忆(Memory): Memory 组件用于在链之间存储和传递信息,实现对话的上下文感知能力。它可以存储之前对话和验证信息的状态,用于后续链的输入,允许链访问和操作共享的内存,实现链之间的协作。

  5. 代理(Agents): 代理(Agents)的核心思想是使用 LLM 作为大脑自动思考,自动决策选择执行不同的动作,最终完成任务。代理模块包括代理(Agent)、工具(Tools)和工具集(Toolkits),使得代理可以调用不同的工具来完成任务。

  6. 回调(Callbacks): LangChain 提供了一个回调系统,允许连接到 LLM 申请的各个阶段,这对于日志记录、监控、流传输和其他任务(如添加标签、计算 Token 等)非常有用
     

四.大模型开发流程

  • 设计

    在开始应用开发前,需明确目标场景、用户群和价值主张。建议个体开发者或小团队从最小可行性产品(MVP)入手,逐步完善。

    功能设计上,先确定核心功能,再规划相关辅助功能。例如,开发个人知识库助手时,核心是知识库内容的问答,辅助功能包括上传和管理知识库,以及纠正模型回答。这样的设计确保了从核心需求出发,逐步扩展,满足用户的实际需求。

  • 搭建整体架构
    在开发大模型应用时,推荐使用LangChain框架来构建项目架构,实现从用户输入到输出的流程。这包括搭建一个个性化数据库,如使用向量数据库Chroma,来支持语义检索。数据预处理是关键步骤,涉及将多种格式转换为纯文本并清洗数据。之后,对数据进行切片和向量化,以便在数据库中建立高效的索引,为大模型提供准确的数据支持。

  • Prompt Engineering
    要提升大模型性能,关键在于精心设计的Prompt。我们应通过创建小规模验证集,遵循有效原则,设计出基础但有效的Prompt,并不断迭代优化。

  • 验证迭代

    验证迭代对提升大模型效能关键,需通过测试发现问题案例并改进Prompt。完成初步设计后,应实际测试、识别Bad Case,分析并优化Prompt,直至实现稳定且满足目标的版本

  • 体验优化
    用户体验跟踪,记录 Bad Case 与用户负反馈,再针对性进行优化即可。

课程地址:动手学大模型应用开发

这篇关于datawhale动手学大模型应用开发-第一章-大模型简介的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/910375

相关文章

Android 悬浮窗开发示例((动态权限请求 | 前台服务和通知 | 悬浮窗创建 )

《Android悬浮窗开发示例((动态权限请求|前台服务和通知|悬浮窗创建)》本文介绍了Android悬浮窗的实现效果,包括动态权限请求、前台服务和通知的使用,悬浮窗权限需要动态申请并引导... 目录一、悬浮窗 动态权限请求1、动态请求权限2、悬浮窗权限说明3、检查动态权限4、申请动态权限5、权限设置完毕后

0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型的操作流程

《0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeekR1模型的操作流程》DeepSeekR1模型凭借其强大的自然语言处理能力,在未来具有广阔的应用前景,有望在多个领域发... 目录0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型,3步搞定一个应

Deepseek R1模型本地化部署+API接口调用详细教程(释放AI生产力)

《DeepseekR1模型本地化部署+API接口调用详细教程(释放AI生产力)》本文介绍了本地部署DeepSeekR1模型和通过API调用将其集成到VSCode中的过程,作者详细步骤展示了如何下载和... 目录前言一、deepseek R1模型与chatGPT o1系列模型对比二、本地部署步骤1.安装oll

Spring AI Alibaba接入大模型时的依赖问题小结

《SpringAIAlibaba接入大模型时的依赖问题小结》文章介绍了如何在pom.xml文件中配置SpringAIAlibaba依赖,并提供了一个示例pom.xml文件,同时,建议将Maven仓... 目录(一)pom.XML文件:(二)application.yml配置文件(一)pom.xml文件:首

如何在本地部署 DeepSeek Janus Pro 文生图大模型

《如何在本地部署DeepSeekJanusPro文生图大模型》DeepSeekJanusPro模型在本地成功部署,支持图片理解和文生图功能,通过Gradio界面进行交互,展示了其强大的多模态处... 目录什么是 Janus Pro1. 安装 conda2. 创建 python 虚拟环境3. 克隆 janus

本地私有化部署DeepSeek模型的详细教程

《本地私有化部署DeepSeek模型的详细教程》DeepSeek模型是一种强大的语言模型,本地私有化部署可以让用户在自己的环境中安全、高效地使用该模型,避免数据传输到外部带来的安全风险,同时也能根据自... 目录一、引言二、环境准备(一)硬件要求(二)软件要求(三)创建虚拟环境三、安装依赖库四、获取 Dee

基于Python开发PPTX压缩工具

《基于Python开发PPTX压缩工具》在日常办公中,PPT文件往往因为图片过大而导致文件体积过大,不便于传输和存储,所以本文将使用Python开发一个PPTX压缩工具,需要的可以了解下... 目录引言全部代码环境准备代码结构代码实现运行结果引言在日常办公中,PPT文件往往因为图片过大而导致文件体积过大,

DeepSeek模型本地部署的详细教程

《DeepSeek模型本地部署的详细教程》DeepSeek作为一款开源且性能强大的大语言模型,提供了灵活的本地部署方案,让用户能够在本地环境中高效运行模型,同时保护数据隐私,在本地成功部署DeepSe... 目录一、环境准备(一)硬件需求(二)软件依赖二、安装Ollama三、下载并部署DeepSeek模型选

5分钟获取deepseek api并搭建简易问答应用

《5分钟获取deepseekapi并搭建简易问答应用》本文主要介绍了5分钟获取deepseekapi并搭建简易问答应用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需... 目录1、获取api2、获取base_url和chat_model3、配置模型参数方法一:终端中临时将加

使用DeepSeek API 结合VSCode提升开发效率

《使用DeepSeekAPI结合VSCode提升开发效率》:本文主要介绍DeepSeekAPI与VisualStudioCode(VSCode)结合使用,以提升软件开发效率,具有一定的参考价值... 目录引言准备工作安装必要的 VSCode 扩展配置 DeepSeek API1. 创建 API 请求文件2.