【一文读懂】大语言模型

学习参考

项目教程:中文教程

代码仓库:代码地址

仓库代码目录说明:

requirements.txt:官方环境下的安装依赖
notebook:Notebook 源代码文件
docs:Markdown 文档文件
figures:图片
data_base:所使用的知识库源文件

在这里插入图片描述

第一章 大模型简介

项目简介

本次课程学习主要是面向小白开发者的大模型应用开发学习,旨在基于阿里云服务器,结合个人知识库助手项目,通过一个课程完成大模型开发的重点入门,主要内容包括如下的五部分内容:

  1. 大模型简介,何为大模型、大模型特点是什么、LangChain 是什么,如何开发一个 LLM 应用,针对小白开发者的简单介绍;
  2. 如何调用大模型 API,本节介绍了国内外知名大模型产品 API 的多种调用方式,包括调用原生 API、封装为 LangChain LLM、封装为 Fastapi 等调用方式,同时将包括百度文心、讯飞星火、智谱AI等多种大模型 API 进行了统一形式封装;
  3. 知识库搭建,不同类型知识库文档的加载、处理,向量数据库的搭建;
  4. 构建 RAG 应用,包括将 LLM 接入到 LangChain 构建检索问答链,使用 Streamlit 进行应用部署
  5. 验证迭代,大模型开发如何实现验证迭代,一般的评估方法有什么;

本项目主要包括三部分内容:

  1. LLM 开发入门。V1 版本的简化版,旨在帮助初学者最快、最便捷地入门 LLM 开发,理解 LLM 开发的一般流程,可以搭建出一个简单的 Demo。
  2. LLM 开发技巧。LLM 开发更进阶的技巧,包括但不限于:Prompt Engineering、多类型源数据的处理、优化检索、召回精排、Agent 框架等
  3. LLM 应用实例。引入一些成功的开源案例,从本课程的角度出发,解析这些应用范例的 Idea、核心思路、实现框架,帮助初学者明白其可以通过 LLM 开发什么样的应用。

项目意义

  • LLM 正逐步成为信息世界的新革命力量,其通过强大的自然语言理解、自然语言生成能力,为开发者提供了新的、更强大的应用开发选择。随着国内外井喷式的 LLM API 服务开放,如何基于 LLM API 快速、便捷地开发具备更强能力、集成 LLM 的应用,开始成为开发者的一项重要技能。

  • 目前,关于 LLM 的介绍以及零散的 LLM 开发技能课程已有不少,但质量参差不齐,且没有很好地整合,开发者需要搜索大量教程并阅读大量相关性不强、必要性较低的内容,才能初步掌握大模型开发的必备技能,学习效率低,学习门槛也较高。

  • 本项目从实践出发,结合最常见、通用的个人知识库助手项目,深入浅出逐步拆解 LLM 开发的一般流程、步骤,旨在帮助没有算法基础的小白通过一个课程完成大模型开发的基础入门。同时,我们也会加入 RAG 开发的进阶技巧以及一些成功的 LLM 应用案例的解读,帮助完成第一部分学习的读者进一步掌握更高阶的 RAG 开发技巧,并能够通过对已有成功项目的借鉴开发自己的、好玩的应用。


1.1 LLM大语言模型

1.1.1 理论简介

**概念:大语言模型(LLM,Large Language Model),也称大型语言模型,是一种旨在理解和生成人类语言的人工智能模型。通常包括了数百亿(或更多)参数**的语言模型,在海量的文本数据上进行训练,从而捕获一些深层次的语义理解。目前国内外已经有了很多的模型:

  • 国外:

GPT-3.5、GPT-4、PaLM、Claude、LLaMA,等等

  • 国内:

文心一言、讯飞星火、通义千问、智谱ChatGLM、百川,等等

这些语言模型不论是大语言模型还是小语言模型,都使用了一些相似的架构以及预训练的任务,但是他们所展露出来的解决问题的能力大不相同。例如,GPT-3 和 GPT-2 为例,GPT-3 可以通过学习上下文来解决少样本任务,而 GPT-2 在这方面表现较差。因此,科研界给这些庞大的语言模型起了个名字,称之为“大语言模型(LLM)”。

1.1.2 LLM大模型的出现

对语言进行分析的研究最早是从统计学(20世纪90年代)的角度来进行分析,通过分析已经出现的词汇来预测下一个词汇,但是在理解一些更加复杂的语言规则方面,例如在训练和测试过程中词序列的顺序的差异,仍然存在很大的局限性。因此,在2003年研究者Bengio发表了一篇经典论文《A Neural Probabilistic Language Model》,首次将深度学习的思想引入了语言模型,具体来说构建了一个三层的神经网络模型来对语言进行建模,如下图所示。

在这里插入图片描述

自此之后,基于深度学习的思想逐渐引入了语言模型中,随着《attention is all you need》的出现,研究者们发现Transformer这种考虑整句中每一个词之间的相互关系可能对于最后的预测效果是非常好的。注意:对Transformer的细节讲解可以参考我之前的博客——Transformer_李宏毅_2021。此外,研究者还发现随着语言模型规模(参数量/更多数据)的不断扩大,模型展现出了一种非常惊人的能力涌现能力,因此引发了人们对于LLM大语言模型一发不可收拾的探索。

1.1.3 LLM大模型的发展

常见的大语言模型的发展历程虽然只有短短不到五年的时间,但是发展速度相当惊人,截止 2023 年 6 月,国内外有超过百种大模型相继发布。下图根据参考文章:A Survey of Large Language Models按照时间线给出了 2019 年至 2023 年 6 月比较有影响力并且模型参数量超过 100 亿的大语言模型:

在这里插入图片描述

根据代码是否开源目前的大语言模型可以分为两大类:开源闭源

一、闭源LLM
GPT系列

体验地址:ChatGPT

最经典但是同时也是名声最大的就是由OpenAI公司提出的GPT系列,最早是OpenAI公司在2018年提出的GPT (Generative Pre-Training)生成式语言模型,原则上通过语言建模将世界知识压缩到仅解码器 (decoder-only) 的 Transformer 模型中,这样它就可以恢复(或记忆)世界知识的语义,并充当通用任务求解器。大致上的研究可以划分为如下的几个阶段:

在这里插入图片描述

2022年11月,OpenAI发布了基于GPT模型的会话应用ChatGPT(支持GPT-3.5和GPT-4两个版本),本质上来说是一个LLM的应用。

有一个可以直观区分ChatGPT版本的简单方式——Prompt输入为:“鲁迅和周树人是同一个人吗”,回答分别如下:

  • GPT-3.5
    在这里插入图片描述
  • GPT-4

在这里插入图片描述

根据官方公布的模型参数量,我们可以对比得出如下的结论:

模型规模性能安全性二次开发能力
GPT-3.51750亿参数速度快,但处理复杂任务效果较差容易被诱导输出一些有害信息不能使用插件,二次开发能力有限,且API调用受限
GPT-4约1.8万亿参数上下文表示能力强,具有更强解决复杂任务的能力难以被诱导,更安全可以自由使用多种插件,二次开发更灵活

总体来说,GPT-4由于包含了更多的参数已经在复杂任务的处理上远远超越了GPT-3.5但是,随着模型体积的增加回答的耗时也不可避免的增加了。

Claude系列

Claude 系列模型是由 OpenAI 离职人员创建的 Anthropic 公司开发的闭源语言大模型。

体验地址:Claude

最早的 Claude2023 年 3 月 15 日发布,在 2023 年 7 月 11 日,更新至 Claude-2, 并在 2024 年 3 月 4 日更新至 Claude-3

Claude 3 系列包括三个不同的模型,分别是 Claude 3 Haiku、Claude 3 Sonnet 和 Claude 3 Opus,它们的能力依次递增,旨在满足不同用户和应用场景的需求。

PaLM/Gemini系列

体验地址:PaLM

体验地址:Gemini

PaLM 系列语言大模型由 Google 开发。其初始版本于 2022 年 4 月发布,并在 2023 年 3 月公开了 API。2023 年 5 月,Google 发布了 PaLM 22024 年 2 月 1 日,Google 将 Bard(之前发布的对话应用) 的底层大模型驱动由 PaLM2 更改为 Gemini,同时也将原先的 Bard 更名为 Gemini

目前的 Gemini 是第一个版本,即 Gemini 1.0,根据参数量不同分为 Ultra, Pro 和 Nano 三个版本。

文心一言

体验地址:文心一言

文心一言是基于百度文心大模型的知识增强语言大模型,于 2023 年 3 月在国内率先开启邀测。文心一言的基础模型文心大模型于 2019 年发布 1.0 版,现已更新到 4.0 版本。更进一步划分,文心大模型包括 NLP 大模型、CV 大模型、跨模态大模型、生物计算大模型、行业大模型。中文能力相对来说非常不错的闭源模型。

文心一言网页版分为免费版专业版

  • 免费版使用文心 3.5 版本,已经能够满足个人用户或小型企业的大部分需求。
  • 专业版使用文心 4.0 版本。定价为 59.9 元/月,连续包月优惠价为 49.9 元/月

同时也可以使用 API 进行调用(计费详情)。

星火大模型

体验地址:星火大模型

讯飞星火认知大模型科大讯飞发布的语言大模型,支持多种自然语言处理任务。该模型于 2023 年 5 月首次发布,后续经过多次升级。2023 年 10 月,讯飞发布了讯飞星火认知大模型 V3.02024 年 1 月,讯飞发布了讯飞星火认知大模型 V3.5,在语言理解,文本生成,知识问答等七个方面进行了升级,并且支持 system 指令,插件调用等多项功能。

二、开源LLM

在浏览了这么多的闭源LLM之后,肯定广大的开发者们并不会只是满足于使用和欣赏他人的成果,下面我们来列出一些常用的开源LLM大模型。

LLaMA系列

体验地址:Meta LLaMA

开源地址:LLaMA

LLaMA 系列模型是 Meta 开源的一组参数规模 从 7B 70B 的基础语言模型。LLaMA 于2023 年 2 月发布,2023 年 7 月发布了 LLaMA2 模型,并于 2024 年 4 月 18 日发布了 LLaMA3 模型。展示了如何仅使用公开可用的数据集来训练最先进的模型,而不需要依赖专有或不可访问的数据集。这些数据集包括 Common Crawl、Wikipedia、OpenWebText2、RealNews、Books 等。LLaMA 模型使用了大规模的数据过滤和清洗技术,以提高数据质量和多样性,减少噪声和偏见。LLaMA 模型还使用了高效的数据并行流水线并行技术,以加速模型的训练和扩展。特别地,LLaMA 13B 在 CommonsenseQA 等 9 个基准测试中超过了 GPT-3 (175B),而 LLaMA 65B 与最优秀的模型 Chinchilla-70B 和 PaLM-540B 相媲美。LLaMA 通过使用更少的字符来达到最佳性能,从而在各种推理预算下具有优势。

与 GPT 系列相同,LLaMA 模型也采用了 decoder-only 架构,同时结合了一些前人工作的改进:

  • Pre-normalization 正则化
  • SwiGLU 激活函数
  • 旋转位置编码(RoPE,Rotary Position Embedding)

LLaMA3在 LLaMA 系列模型的基础上进行了改进,提高了模型的性能和效率:

  • 更多的训练数据量

  • 更长的上下文长度

  • 分组查询注意力(GQA,Grouped-Query Attention)

  • 更大的词表

通义千问

体验地址:通义千问体验

开源地址:通义千问开源

通义千问由阿里巴巴基于“通义”大模型研发,于 2023 年 4 月正式发布。2023 年 9 月,阿里云开源了 Qwen(通义千问)系列工作。2024 年 2 月 5 日,开源了 Qwen1.5(Qwen2 的测试版)。并于 2024 年 6 月 6 日正式开源了 Qwen2。 Qwen2 是一个 decoder-Only 的模型,采用 SwiGLU 激活RoPEGQA的架构。中文能力相对来说非常不错的开源模型。

目前,已经开源了 5 种模型大小:0.5B、1.5B、7B、72B 的 Dense 模型和 57B (A14B)的 MoE 模型;所有模型均支持长度为 32768 token 的上下文。并将 Qwen2-7B-Instruct 和 Qwen2-72B-Instruct 的上下文长度扩展至 128K token

智谱ChatGLM系列

体验地址:ChatGLM 体验

开源地址:ChatGLM 开源

GLM 系列模型是清华大学和智谱 AI 等合作研发的语言大模型。2023 年 3 月 发布了 ChatGLM。6 月发布了 ChatGLM 2。10 月推出了 ChatGLM3。2024 年 1 月 16 日 发布了 GLM4,并于 2024 年 6 月 6 日正式开源。

GLM-4-9B-Chat 支持多轮对话的同时,还具备网页浏览、代码执行、自定义工具调用(Function Call)和长文本推理(支持最大 128K 上下文)等功能。

开源了对话模型 GLM-4-9B-Chat基础模型 GLM-4-9B长文本对话模型 GLM-4-9B-Chat-1M(支持 1M 上下文长度)、多模态模型GLM-4V-9B 等全面对标 OpenAI。2024 年 1 月 16 日 发布了最新 ChatGLM4,但目前还没有开源

Baichuan

体验地址:百川体验

开源地址:百川开源

Baichuan 是由百川智能开发的开源可商用的语言大模型。其基于Transformer 解码器架构(decoder-only)

2023 年 6 月 15 日发布了 Baichuan-7BBaichuan-13B。百川同时开源了预训练对齐模型,预训练模型是面向开发者的“基座”,而对齐模型则面向广大需要对话功能的普通用户

Baichuan22023年 9 月 6 日推出。发布了 7B、13BBaseChat 版本,并提供了 Chat 版本的 4bits 量化

2024 年 1 月 29 日 发布了最新 Baichuan 3。但是目前还没有开源

1.2 LLM大模型的特点

LLM大语言模型的能力非常巨大,根据《周枫:当我们谈论大模型时,应该关注哪些新能力?》一文可以总结归纳为一下三种:1、涌现能力、2、作为基座模型支持多元应用的能力、3、支持对话作为统一入口的能力。具体来说:

Central Topi

同时,大语言模型也具有非常多的特点例如:

  1. 巨大的规模: LLM 通常具有巨大的参数规模,可以达到数十亿甚至数千亿个参数。这使得它们能够捕捉更多的语言知识和复杂的语法结构。

  2. 预训练和微调: LLM 采用了预训练和微调的学习方法。首先在大规模文本数据上进行预训练(无标签数据),学习通用的语言表示和知识。然后通过微调(有标签数据)适应特定任务,从而在各种 NLP 任务中表现出色。

  3. 上下文感知: LLM 在处理文本时具有强大的上下文感知能力,能够理解和生成依赖于前文的文本内容。这使得它们在对话、文章生成和情境理解方面表现出色。

  4. 多语言支持: LLM 可以用于多种语言,不仅限于英语。它们的多语言能力使得跨文化和跨语言的应用变得更加容易。

  5. 多模态支持: 一些 LLM 已经扩展到支持多模态数据,包括文本、图像和声音。使得它们可以理解和生成不同媒体类型的内容,实现更多样化的应用。

  6. 伦理和风险问题: 尽管 LLM 具有出色的能力,但它们也引发了伦理和风险问题,包括生成有害内容、隐私问题、认知偏差等。因此,研究和应用 LLM 需要谨慎。

  7. 高计算资源需求: LLM 参数规模庞大,需要大量的计算资源进行训练和推理。通常需要使用高性能的 GPU 或 TPU 集群来实现。

大语言模型是一种具有强大语言处理能力的技术,已经在多个领域展示了潜力。

1.3 LLM大模型的影响

LLM大语言模型已经在非常多的领域取得了瞩目的成果,但是伴随着成果的同时也带来了很多的问题与挑战,例如安全问题、伦理问题、模型规模问题等等。因此,研究者们还在努力让大语言模型去更好的训练学习,以提升人机交互的水平。在未来,大语言模型仍然具有非常巨大的研究价值。

1.4 环境配置

在任务一的最后,由于后续涉及到自己实际编写代码,所以需要结合教程的环境进行配置,具体的配置过程在基于VScode+Codespace玩转LLM,有需要的小伙伴可以参考一下。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/62359.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

大数据-234 离线数仓 - 异构数据源 DataX 将数据 从 HDFS 到 MySQL

点一下关注吧!!!非常感谢!!持续更新!!! Java篇开始了! 目前开始更新 MyBatis,一起深入浅出! 目前已经更新到了: Hadoop&#xff0…

鸿蒙进阶篇-Stage模型、UIAbility

“在科技的浪潮中,鸿蒙操作系统宛如一颗璀璨的新星,引领着创新的方向。作为鸿蒙开天组,今天我们将一同踏上鸿蒙基础的探索之旅,为您揭开这一神奇系统的神秘面纱。” 各位小伙伴们我们又见面了,我就是鸿蒙开天组,下面让我们进入今…

学习threejs,使用specularMap设置高光贴图

👨‍⚕️ 主页: gis分享者 👨‍⚕️ 感谢各位大佬 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍⚕️ 收录于专栏:threejs gis工程师 文章目录 一、🍀前言1.1 ☘️THREE.MeshPhongMaterial高…

一个简洁的ajax注册登录找回密码切换的前端页面

成功和失败不同颜色显示&#xff0c;纯原生代码不需要jq等第三方插件 <% Language"VBScript" CodePage"65001"%> <% Response.Charset "UTF-8" Session.CodePage "65001" Response.Addheader "Content-Type",&q…

uniapp首页样式,实现菜单导航结构

实现菜单导航结构 1.导入字体图标库需要的文件 2.修改引用路径iconfont.css 3.导入到App.vue中 <style>import url(./static/font/iconfont.css); </style>导航区域代码 VUE代码 <template><view class"home"><!-- 导航区域 --><…

解析客服知识库搭建的五个必要性

在当今竞争激烈的商业环境中&#xff0c;客服知识库的搭建已成为企业提升服务质量、优化客户体验的重要手段。一个完善的客服知识库不仅能帮助企业高效管理客户服务流程&#xff0c;还能显著提升客户满意度和忠诚度。以下是搭建客服知识库的五个必要性&#xff1a; 1. 提升服务…

淘宝Vision Pro:革新购物体验的沉浸式未来

引言 简要介绍淘宝Vision Pro版的背景,包括它在美区AppStore的发布及WWDC上的展示。阐述本文的目的:为读者提供一个全面的功能概览与设计背后的思考。设计原则 列出并简要解释5条设计原则(熟悉、直观、真实、实用、易用)。说明这些原则如何指导整个产品设计过程。核心功能详…

【CSS in Depth 2 精译_062】第 10 章 CSS 中的容器查询(@container)概述 + 10.1 容器查询的一个简单示例

当前内容所在位置&#xff08;可进入专栏查看其他译好的章节内容&#xff09; 【第十章 CSS 容器查询】 ✔️ 10.1 容器查询的一个简单示例 ✔️ 10.1.1 容器尺寸查询的用法 ✔️ 10.2 深入理解容器10.3 与容器相关的单位10.4 容器样式查询的用法10.5 本章小结 文章目录 第 10…

HCIE:详解OSPF,从基础到高级特性再到深入研究

目录 前言 一、OSPF协议基本原理 简介 基本原理 OSPF路由器类型 OSPF网络类型 OSPF报文类型和封装 OSPF邻居的建立的维护 DR和BDR的选举 伪节点 LSDB的更新 OSPF的配置 二、OSPF的高级特性 虚连接&#xff08;Virtual-Link&#xff09; OSPF的LSA和路由选择 OSPF…

think php处理 异步 url 请求 记录

1、需求 某网站 需要 AI生成音乐&#xff0c;生成mp3文件的时候需要等待&#xff0c;需要程序中实时监听mp3文件是否生成 2、用的开发框架 为php 3、文件结构 配置路由设置 Route::group(/music, function () {Route::post(/musicLyrics, AiMusic/musicLyrics);//Ai生成歌词流式…

【VRChat 改模】开发环境搭建:VCC、VRChat SDK、Unity 等环境配置

一、配置 Unity 相关 1.下载 UnityHub 下载地址&#xff1a;https://unity.com/download 安装打开后如图所示&#xff1a; 2.下载 VRChat 官方推荐版本的 Unity 跳转界面&#xff08;VRChat 官方推荐页面&#xff09;&#xff1a;https://creators.vrchat.com/sdk/upgrade/…

ollama部署bge-m3,并实现与dify平台对接

概述 这几天为了写技术博客,各种组件可谓是装了卸,卸了装,只想复现一些东西,确保你们看到的东西都是可以复现的。 (看在我这么认真的份上,求个关注啊,拜托各位观众老爷了。) 这不,为了实验在windows上docker里运行pytorch,把docker重装了。 dify也得重装: Dify基…

详细介绍HTTP与RPC:为什么有了HTTP,还需要RPC?

目录 一、HTTP 二、RPC 介绍 工作原理 核心功能 如何服务寻址 如何进行序列化和反序列化 如何网络传输 基于 TCP 协议的 RPC 调用 基于 HTTP 协议的 RPC 调用 实现方式 优点和缺点 使用场景 常见框架 示例 三、问题 问题一&#xff1a;是先有HTTP还是先有RPC&…

Lesson 10 GNN

听课&#xff08;李宏毅老师的&#xff09;笔记&#xff0c;方便梳理框架&#xff0c;以作复习之用。本节课主要讲了生成式对抗网络&#xff08;GNN&#xff09;。 目录 Generation Network as Generator 到目前为止&#xff0c;我们学习到的是类似于函数的network&#xf…

Scala入门基础(20)数据集复习拓展

一.Stack栈二.Queue 队列 一.Stack栈 Stack:栈&#xff0c;特殊的结构。它对元素的操作是在头部&#xff1a;栈顶 先进后出的队列。pop表示取出&#xff0c;push表示在栈中添加元素 二.Queue 队列 Queue 队列;先进先出.enqueue入队&#xff0c;dequeue出队。

Ubuntu20.04运行DM-VIO

目录 环境配置非ROS环境运行编译运行结果图 ROS环境参考 环境配置 Ubuntu20.04 将项目中Cmakelists.txt中C 和 opencv版本修改下 C 使用 14 opencv使用4 非ROS环境运行 编译 按照官网即可 cd dm-vio mkdir build cd build cmake .. make -j运行 DM-VIO给的命令是 bin/d…

TDengine 签约深圳综合粒子,赋能粒子研究新突破

在高能物理和粒子研究领域&#xff0c;实验装置的不断升级伴随着海量数据的产生与处理。尤其是随着大湾区综合性国家科学中心的建设步伐加快&#xff0c;深圳综合粒子设施研究院&#xff08;以下简称“研究院”&#xff09;作为承载“双区驱动”战略的重要科研机构&#xff0c;…

IDEA连接Apifox客户端

IDEA连接Apifox客户端 一、下载Apifox安装包二、IDEA配置三、配置Apifox和IDEA项目同步 一、下载Apifox安装包 Apifox官网&#xff0c;根据自己的操作系统下载对应的Apifox安装包&#xff0c;我是windows系统所以下载的是windows版。 下载 默认仅为我安装&#xff0c;点击下一…

(C语言) 8大翻译阶段

(C语言) 8大翻译阶段 文章目录 (C语言) 8大翻译阶段⭐前言&#x1f5c3;️8大阶段&#x1f5c2;️1. 字符映射&#x1f5c2;️2. 行分割&#x1f5c2;️3. 标记化&#x1f5c2;️4. 预处理&#x1f5c2;️5. 字符集映射&#x1f5c2;️6. 字符串拼接&#x1f5c2;️7. 翻译&…

php反序列化1_常见php序列化的CTF考题

声明&#xff1a; 以下多内容来自暗月师傅我是通过他的教程来学习记录的&#xff0c;如有侵权联系删除。 一道反序列化的CTF题分享_ctf反序列化题目_Mr.95的博客-CSDN博客 一些其他大佬的wp参考&#xff1a;php_反序列化_1 | dayu’s blog (killdayu.com) 序列化一个对象将…