LLM(2):准备构建 LLM

news2025/3/18 2:25:15

在了解大语言模型一文中,对 LLM 做了初步介绍,本文接续前一篇文章的内容,简要介绍 LLM 的应用和构建过程。

1.2 LLM 的应用

由于大型语言模型(LLMs)在解析和理解非结构化文本数据方面具备先进能力,它们在不同领域有着广泛的应用。如今,LLMs 被用于机器翻译、生成新文本(见图1.2)、情感分析、文本摘要及其他多种任务。最近,LLMs 还被应用于内容创作,如撰写小说、文章,甚至是计算机代码。此外,LLMs 还能驱动复杂的聊天机器人和虚拟助手,例如 OpenAI 的 ChatGPT 或谷歌的 Gemini(前身为 Bard),这些工具能够回答用户查询,并增强传统搜索引擎的功能——现在兴起的 AI 搜索,即是此功能的产品表现。

更重要的是,LLMs 可以在特定领域如医学或法律中,从海量文本中有效地检索知识,包括筛选文档、总结长篇大论及回答技术问题等。简而言之,LLMs 对于几乎任何涉及解析和生成文本的任务自动化都是不可或缺的。它们的应用几乎是无穷无尽的,随着我们不断创新并探索使用这些模型的新方法,很明显,LLMs 有潜力重新定义我们与技术的关系,使其更加对话式、直观且易于访问。

在这里插入图片描述

图 1.2 LLM 接口使用户和AI系统之间能够进行自然语言交流。此截图展示了 ChatGPT 根据用户的指定要求编写诗歌的过程。

1.3 构建和使用 LLMs

为什么我们要构建自己的 LLMs?从头开始编码一个 LLM 是理解其机制和局限性的极好实践。同时,这也为我们提供了必要的知识,以便对现有的开源LLM架构进行预训练或微调,以适应特定领域的数据集或任务。

注意:如今大多数LLM都是使用 PyTorch 深度学习库实现的,这也是我们将要使用的工具。

研究表明,在模型性能方面,针对特定任务或领域的定制构建 LLM 可以胜过通用目的的 LLM,比如由 ChatGPT 提供的那些旨在应用于广泛领域的模型。这些例子包括 BloombergGPT(专注于金融领域)以及专门用于医学问答的 LLM。当然,AI Agent 也是一个解决通用模型知识不足的重要方法,但这不是我们这里所探讨的话题。

使用定制构建的 LLM 有几个优势,特别是在数据隐私方面。例如,由于保密性考虑,公司可能不愿意与 OpenAI 等第三方 LLM 提供商共享敏感数据。此外,开发较小的定制 LLM 可以直接部署在客户的设备上,如笔记本电脑和智能手机,这是苹果等公司目前正在探索的方向。这种本地实施可以显著降低延迟并减少与服务器相关的成本。而且,定制 LLM 赋予开发者完全的自主权,使他们能够根据需要控制模型的更新和修改。

创建 LLM 的一般过程包括预训练和微调。“预训练”中的“预”指的是模型(如 LLM)在一个大而多样的数据集上进行初步训练,以发展出对语言的广泛理解。这个预训练模型然后作为一个基础资源,可以通过微调进一步优化,即模型在更窄、更特定于具体任务或领域的数据集上进行特别训练。这种包含预训练和微调的两阶段训练方法如图 1.3 所示。

在这里插入图片描述

图 1.3 预训练一个 LLM 涉及到在大型文本数据集上进行下一个词预测。预训练后的 LLM 然后可以使用一个较小的标记数据集进行微调。

创建 LLM 的第一步是使用大量的文本数据 corpus 进行训练,有时这些数据被称为原始文本。“原始”指的是这些数据只是普通的文本,没有任何标签信息。(可能会应用一些过滤,比如去除格式字符或未知语言的文档。)

注意:具有机器学习背景的读者可能会注意到,传统的机器学习模型和通过常规监督学习范式训练的深度神经网络通常需要标签信息。然而,对于 LLM 的预训练阶段而言,情况并非如此。在这个阶段,LLM 使用自监督学习,即模型从输入数据中生成自己的标签。

LLM 的第一个训练阶段也被称为预训练,通过这一过程创建一个初始的预训练 LLM,通常称为基础模型或基石模型。此类模型的一个典型例子是 GPT-3 模型(ChatGPT 原始模型的前身)。该模型能够完成文本——即完成用户提供的半成品句子。它还具有有限的少样本能力,这意味着它可以根据仅有的一些示例学习执行新任务,而不需要大量的训练数据。

在通过对大型文本数据集进行训练获得预训练的 LLM 之后(在此过程中,LLM 被训练来预测文本中的下一个词),我们可以进一步使用标记数据对 LLM 进行训练,这个过程也被称为微调。

微调 LLM 最受欢迎的两类方法是指令微调和分类微调。

  • 在指令微调中,标记数据集由指令和答案对组成,比如一个要求翻译文本的查询及其正确翻译后的文本。
  • 在分类微调中,标记数据集包含文本及其相关的类别标签——例如,与“垃圾邮件”和“非垃圾邮件”标签关联的电子邮件。

原文:Sebastian Raschka. Build a Large Language Model(From Scratch),此处为原文的中文翻译,为了阅读方便,有适当修改。

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

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

相关文章

pytest+allure+jenkins

本地运行参考:pytestallure 入门-CSDN博客 jenkins运行如下: 安装插件:allure 配置allure安装目录 配置pytest、allure 环境变量 配置流水线 进行build,结果如下 ,点击allure report 查看结果

【linux篇】--linux常见指令

文章目录 一、Linux基本概念 二、Linux入门 1.目录结构 2.Linux命令 *Linux基础命令 ls命令的选项: 3.目录切换相关命令(cd & pwd) 4.相对&绝对路径和特殊路径符 4.1相对路径 4.2绝对路径 4.3 你特殊路径符 5.创建目录命令(mkdir) 6.…

Kubernetes的组成和架构

Kubernetes(K8s)是一个开源的容器编排平台,用于自动化部署、扩展和管理容器化应用程序。它由多个组件组成,这些组件可以分为两类:控制平面(Control Plane)组件和节点(Node&#xff0…

Android之RecyclerView列表拖动排序

文章目录 前言一、效果图二、实现步骤1.xml布局2.activity代码3.adapter 总结 前言 随着需求的变化,很多地方需要加拖动改变顺序的需求,用RecyclerView就可以实现列表拖动排序,列如像朋友圈图片拖动排序,或者音乐播放器列表拖动排…

C# WPF 基础知识学习(一)

一、WPF 简介 Windows Presentation Foundation(WPF)是微软推出的一款用于构建用户界面的框架,它为开发 Windows 桌面应用程序提供了统一的编程模型、语言和框架。WPF 将用户界面的设计与业务逻辑分离开来,采用了 XAML&#xff0…

MATLAB基于ResNet18的交通标志识别系统

1. 数据准备 数据集:该数据集包含了大量标注好的交通标志图片,每类标志都有不同的样本。数据预处理:图像需要进行一些基本的预处理,如调整大小、归一化等,以适应ResNet18的输入要求。 2. 网络设计 使用MATLAB自带的…

CSS3-流星雨

1. 绘制标签 <div class"container"><span></span> </div>2. 设置div背景 在百度上搜索一幅星空的图片 <style>* {/* 初始化 */margin: 0;padding: 0;}body {/* 高度100% */height: 100vh;/* 溢出隐藏 */overflow: hidden;}.contai…

数学建模 第一节

目录​​​​​​ 前言 一 优化模型的类型 二 线性规划1 线性规划2 三 0-1规划 总结 前言 数学建模主要是将问题转化为模型&#xff0c;然后再以编程的形式输出出来 算法都知道&#xff0c;数学建模也需要用到算法&#xff0c;但是不是主要以编程形式展示&#xff0c;而是…

平方矩阵问题

Ⅰ 回字形二维数组 #include <iostream> #include <iomanip> using namespace std; int main(){int n;while(cin>>n,n){for(int i0; i<n;i){for(int j0; j<n; j){int upi, downn-i1, leftj, rightn-j1;cout<<min(min(up,down),min(left,right)…

自动化立体仓库堆垛机HMI屏幕程序施耐德HMIGXU系列 Vijeo Designer功能设计

堆垛机HMI屏幕功能概况 在自动化立体仓库堆垛机的HMI屏幕程序里,有着施耐德HMIGXU系列Vijeo Designer功能设计。此HMI程序运用标准的工程组织结构,凭借拖拽方式迅速构建人机交互界面。 其主要功能涵盖:设备参数、设备状态、手动/自动操作控制、报警显示、IO信息监控等模块…

实验- 分片上传 VS 直接上传

分片上传和直接上传是两种常见的文件上传方式。分片上传将文件分成多个小块&#xff0c;每次上传一个小块&#xff0c;可以并行处理多个分片&#xff0c;适用于大文件上传&#xff0c;减少了单个请求的大小&#xff0c;能有效避免因网络波动或上传中断导致的失败&#xff0c;并…

生活中的可靠性小案例12:类肤材质老化发粘问题

我一直觉得我买的某品牌车载吸尘器很好用&#xff0c;用了几年&#xff0c;目前性能也是杠杠的。然而它现在有个最大的问题&#xff0c;就是表面发粘了&#xff0c;用起来粘手&#xff0c;非常不舒服。 这一类问题在生活中不少见&#xff0c;尤其是一些用了类肤材质涂层的物件。…

qt 自带虚拟键盘的编译使用记录

一、windows 下编译 使用vs 命令窗口&#xff0c;分别执行&#xff1a; qmake CONFIG"lang-en_GB lang-zh_CN" nmake nmake install 如果事先没有 指定需要使用的输入法语言就进行过编译&#xff0c;则需要先 执行 nmake distclean 清理后执行 qmake 才能生效。 …

python中print函数的flush如何使用

在 Python 中&#xff0c;print 函数的 flush 参数是一个布尔值&#xff0c;默认值为 False。当设置为 True 时&#xff0c;它会强制将输出缓冲区的内容立即刷新到目标设备&#xff08;通常是控制台&#xff09;&#xff0c;而不是等待缓冲区满或者程序结束时才输出。 要注意fl…

【软考-架构】5.2、传输介质-通信方式-IP地址-子网划分

✨资料&文章更新✨ GitHub地址&#xff1a;https://github.com/tyronczt/system_architect 文章目录 传输介质网线光纤无线信道 通信方式和交换方式会考&#xff1a;交换方式 &#x1f4af;考试真题第一题第二题 IP地址表示子网划分&#x1f4af;考试真题第一题第二题 传输…

websocket学习手册及python实现简单的聊天室

概述 WebSocket 是一种网络通信协议&#xff0c;允许在单个 TCP 连接上进行全双工通信。它最核心的优势就在于实现了持久连接&#xff0c;实现了实时的数据传输。HTTP 协议有一个很大的缺点&#xff0c;通信只能由客户端发起&#xff0c;服务器返回响应后连接就会关闭&#xf…

SpringMVC (二)请求处理

目录 章节简介 一 请求处理&#xff08;初级&#xff09; eg:请求头 二 请求处理&#xff08;进阶&#xff09; eg:请求体 三 获取请求头 四 获取Cookie 五 级联封装 六 使用RequestBoby封装JSON对象 七 文件的上传 八 获取整个请求 HttpEntity 九 原生请求 Spring…

1.6、Java继承、构造方法、数组

子类可以增加字段、增加方法或覆盖父类方法&#xff0c;但继承不会删除任何字段和方法不恰当认为super 同 this 引用是类似的概念&#xff0c;其实super不是一个对象的引用&#xff0c;不能将值super赋给另一个对象变量&#xff0c;super只是一个指示 编译器调用父类方法的特殊…

通义万相 2.1 与蓝耘智算平台的深度协同,挖掘 AIGC 无限潜力并释放巨大未来价值

我的个人主页 我的专栏&#xff1a; 人工智能领域、java-数据结构、Javase、C语言&#xff0c;希望能帮助到大家&#xff01;&#xff01;&#xff01; 点赞&#x1f44d;收藏❤ 引言&#xff1a;AIGC 浪潮下的新机遇 在当今数字化飞速发展的时代&#xff0c;人工智能生成内容&…

专题|Python贝叶斯金融数据应用实例合集:随机波动率SV模型、逻辑回归、参数更新、绩效比较BEST分析亚马逊股票、普尔指数...

原文链接&#xff1a;https://tecdat.cn/?p41020 本专题合集系统梳理了贝叶斯方法在金融数据分析与分类建模中的前沿应用。合集聚焦于PyMC3概率编程框架&#xff0c;深度探讨了共轭先验参数更新、贝叶斯逻辑回归、贝叶斯夏普比率等核心算法在实际场景中的落地实践&#xff08;…