什么是大语言模型以及如何构建自己的大型语言模型?

一、关于大语言模型

        LLM 对于无数的应用程序非常有用,如果我们自己从头开始构建一个,那我们可以了解底层的ML技术,并可以根据特定需求定制LLM,但是对资源的需求巨大。大型语言模型是一种 ML 模型,可以执行各种自然语言处理任务,比如创建内容或者将文本从一种语言翻译为另一种语言。 “大”一词描述了语言模型在学习期间可以改变的参数数量,拥有数十亿、百亿、千亿,甚至万亿级别的参数。

        大型学习模型必须经过预训练,然后进行微调,以教授人类语言来解决文本分类、文本生成挑战、问题解答和文档摘要。顶级大型语言模型解决各种问题的潜力在金融、医疗保健和娱乐等领域都有应用。这些 LLM 模型服务于一系列 NLP 应用程序,例如人工智能助手、聊天机器人、翻译等。大型语言模型由无数的参数组成,类似于模型在训练过程中学习时收集的记忆。您可以将这些参数视为模型的知识库。 

二、Transformer 模型

        2017年,论文“ Attention is All You Need ”面世,该论文使用了一种称之为“Transformer”的新颖架构。如今,Transformer 模型是大型语言模型最常见的架构。 Transformer 模型通过对输入进行标记并进行数学方程来识别标记之间的关系来处理数据。这使得计算系统能够看到人类在给出相同查询时会注意到的模式。

        此外,Transformer 模型采用自注意力机制,这使得模型比传统的扩展短期记忆模型学习得更快。自注意力允许 Transformer 模型封装序列的不同部分或完整的句子,以创建预测。

        Transformer 模型在自然语言处理中发挥了重要作用。随着这项革命性技术出现并涌现了无数的大语言模型,如果对于大语言模型感兴趣,肯定要了解这项技术的工作原理。尤其重要的是了解这些模型如何处理自然语言查询,使它们能够准确地响应人类的问题和请求。

三、大型语言模型的关键要素

        大型语言模型由多个神经网络层组成。这些定义的层协同工作来处理输入文本并创建所需的内容作为输出。

  • 嵌入层:是大型学习模型的关键要素。嵌入层接受输入(单词序列),并将每个单词转换为向量表示。单词的这种向量表示捕获了单词的含义以及它与其他单词的关系。

  • 前馈层:LLM 的前馈层由几个完全连接的层组成,用于转换输入嵌入。在执行此操作时,这些层允许模型提取更高级别的抽象,即通过文本输入确认用户的意图。

  • 循环层:循环层允许LLM学习依赖性并生成语法正确且语义有意义的文本。

  • 注意力机制:大语言模型中的注意力机制允许人们关注输入文本的单个元素,以验证其与手头任务的相关性。此外,这些层使模型能够创建最精确的输出。

四、大型语言模型的类型

        通常,大型语言模型是根据它们所做的任务进行分类的:

        Autoregressive LLMs、Transformer-Based LLMs、Multilingual Models、Hybrid Models

1、Autoregressive LLMs

        大型学习模型经过训练用来生成自然语言文本。 

       属于此类别的大型学习模型有 Transformers、LaMDA、XLNet、BERT 和 GPT-3

  • GPT - 3  - GPT-3 是一种革命性的语言模型,有可能根据所提供的描述提供高质量和类似人类的文本。此外,GPT-3 使用数十亿个参数和技术来创建类似人类的句子。
  • LaMDA - LaMDA 经过训练可以创建不同的创意文本模式,如诗歌、代码、脚本、音乐作品、电子邮件、信件等,并非正式地回答您的问题。
  • XLNet - XLNet 是一种自回归语言模型,可以理解文本序列的无监督表示。

2、Transformer-Based LLMs

        主要可以用来对话,此类LLM 列表有ChatGPT、BERT、BARD、InstructorGPT、Falcon-40B-instruct 等

  • BERT  - BERT(来自 Transformers 的双向编码器表示)是一种动态自回归LLM,适用于深度神经工作。它的主要重点是理解单词之间的关系,而不是关注一个单词的含义。

3、Multilingual Models

        多语言模型在不同的语言数据集上进行训练,可以处理和生成不同语言的文本。它们对于跨语言信息检索、多语言机器人或机器翻译等任务很有帮助。 

  • XLM - XLM 是 Facebook 创建的跨语言语言模型。

4、Hybrid Models

        混合模型是不同架构的混合体,以提高性能。例如,将基于变压器的架构和循环神经网络(RNN)相结合以进行顺序数据处理。

  • UniLM(统一语言模型)是一种混合大型语言模型,结合了自回归和序列到序列建模方法。

五、如何构建大型语言模型?

        我们将使用 TensorFlow 或 PyTorch 等机器学习框架来创建模型。这些框架提供了用于创建和培训LLM的预构建工具和库,因此几乎不需要重新发明轮子。

        我们首先概述LLM的架构。另外,您需要选择要使用的模型类型,例如循环神经网络变压器,以及层数和每层中的神经元数量。

        接下来是使用收集的预处理数据来训练模型。

        不同类型的LMM的训练是不同的。假设你想建立一个生成自然语言文本的LLM;与对话优化的LLM相比,方法将完全不同。

1、Autoregressive LLMs

第 1 步:收集数据集

第 2 步:数据集预处理和清理 

        接下来是数据集预处理和清理步骤。由于数据集是从众多网页和不同来源爬取的,因此数据集很可能包含各种但细微的差异。因此,消除这些细微差别并为模型训练创建高质量的数据集至关重要。

        首先,实际步骤取决于您当前正在处理的数据集。

        标准预处理措施包括:

  • 解决拼写错误。
  • 删除有偏见的数据。
  • 将表情符号转换为对应的文本。
  • 删除数据重复。

        训练数据可能有重复或几乎相同的句子,因为它是从互联网上的众多数据源收集的。因此将重复数据删除的工作不能逃避,这样的话模型不用训练相同的数据,并且有助于更​​好地评估LLM,因为测试和培训数据包含非重复信息。

第 3 步:准备数据  

        数据集准备是清理、转换和组织数据,使其成为机器学习的理想选择。这是任何机器学习项目中的重要步骤,因为数据集的质量对模型的性能有直接影响。

        在预训练阶段,LLM 接受训练来预测文本中的下一个标记。因此,相应地开发了输入和输出对。 

第 4 步:定义模型架构 

        您可以在 Hugging Face Open LLM 排行榜上了解所有 LLM 的概览。

https://huggingface.co/spaces/HuggingFaceH4/open_llm_leaderboardicon-default.png?t=N7T8https://huggingface.co/spaces/HuggingFaceH4/open_llm_leaderboard        通常,研究人员从现有的大型语言模型架构(例如 GPT-3)开始。

第 5 步:超参数调优 

        解决这个问题的理想方法是使用当前工作的超参数;例如,如果您正在使用 GPT-3,请将其超参数与相应的架构结合使用,然后在小范围内确定最佳超参数,然后将它们插值以获得最终模式。

        主要包含位置嵌入、学习率、权重初始化、优化器、激活、损失函数、层数、参数和注意力头、密集层与稀疏层分组。

        学习率调度器:经过验证的方法是随着训练的进行最小化学习率,因为它克服了局部最小值并提高了模型稳定性。

        正则化:LLM通常容易出现过度拟合。因此,有必要使用 Dropout、Batch Normalization 和 L1/L2 正则化等技术来挽救模型免于过度拟合。

        批量大小:理想情况下,选择适合 GPU 内存的大批量大小。

        权重初始化:模型收敛很大程度上取决于训练前初始化的权重。毕竟,初始化合适的权重可以加快收敛速度​​。但请记住,仅在定义自己的 LLM 架构时才使用权重初始化。

2、Transformer-Based LLMs

        在此类LLM中,第一步也是最重要的一步与之前相同。训练完成,LLM就有完成文本的能力。然后,为了生成特定问题的答案,LLM在监督数据集(包括问题和答案)上进行了微调。到这一步结束时,您的LLM就可以为所提出的问题创建解决方案。

        例如, ChatGPT 是一个对话优化的 LLM,其训练与上面讨论的步骤类似。唯一的区别是,除了预训练和监督微调之外,它还包含一个额外的RLHF(人类反馈强化学习)步骤。

六、如何评估大语言模型?

        大语言模型的评价不能是主观的。相反,它必须是评估LLM表现的逻辑过程。

        如果是分类任务或回归挑战场景中的评估,比较实际表和预测标签有助于了解模型的性能。通常,我们会为此查看混淆矩阵。但是LLM是生成文本的,我们怎么办?

1、内在方法 

        传统的语言模型是使用每个字符的位数、困惑度、BLUE 分数等内在方法进行评估的。这些度量参数跟踪语言方面的性能,即模型在预测下一个单词方面的表现。

  • 困惑度:困惑度是衡量LLM预测序列中下一个单词的能力的指标。较低的困惑度表明更好的性能。
  • BLEU 分数: BLEU 分数衡量LLM生成的文本与参考文本的相似程度。 BLEU 分数越高表示性能越好。
  • 人工评估:人工评估涉及要求人工评委对LLM生成的文本的质量进行评分。这可以通过使用各种不同的评估来实现,例如流畅性、连贯性和相关性。

        此外,同样重要的是要注意,不存在一刀切的评估指标。每个指标都有自己的优点和缺点。因此,有必要使用各种不同的评估方法来全面了解LLM的表现。

        以下是评估LLM的一些额外注意事项:

  • 数据集偏差:LLM接受大型文本和代码数据集的训练。如果这些数据集有偏差,那么LLM也会受到限制。必须意识到数据集中可能存在偏差并采取措施减轻偏差。
  • 安全:LLM可用于生成有害内容,例如仇恨言论和错误信息。制定保护机制以防止LLM被用来创建有害内容至关重要。
  • 透明度:LLM的培训和评估方式必须保持透明。这将有助于建立对LLM的信任并确保负责任地使用它们。

2.) 外部方法 

        随着当今LLM的进步,外在方法正在成为评估LLM表现的首选。建议评估LLM的方法是考察他们在推理、解决问题、计算机科学、数学问题、竞争性考试等不同任务中的表现。

        EleutherAI推出了一个名为语言模型评估框架的框架来比较和评估LLM的表现。 HuggingFace 集成了评估框架来衡量社区创建的开源LLM。

        该框架评估四个不同数据集的LLM。最终得分是每个数据集得分的累加。以下是参数:

  • A12 推理 -这是为小学生设计的科学问题集。
  • MMLU -这是一项评估文本模型的多任务精度的综合测试。它包含 57 项不同的任务,包括美国历史、数学、法律等科目。
  • TruthfulQA -此测试评估模型创建准确答案并跳过生成在线常见虚假信息的倾向。
  • HellaSwag -这是一项挑战最先进模型的测试,以做出对人类来说很容易的常识性推论,精度为 95%。

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

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

相关文章

LeetCode 315—— 计算右侧小于当前元素的个数

阅读目录 1. 题目2. 解题思路一3. 代码实现一4. 解题思路二5. 代码实现二 1. 题目 2. 解题思路一 参考 剑指 Offer——数组中的逆序对,我们依然借助于归并排序中的合并操作来计算某个元素右侧小于它的元素个数。 如上图最左边所示,第五行开始进行第一次…

国内首个48小时大模型极限挑战赛落幕,四位“天才程序员”共同夺冠

4月21日晚,第四届ATEC科技精英赛(ATEC2023)线下赛落幕。本届赛事以大模型为技术基座,围绕“科技助老”命题,是国内首个基于真实场景的大模型全链路应用竞赛。ATEC2023线下赛采用48小时极限挑战的形式,来自东…

2024年最新版云开发cms开通步骤,开始开发微信小程序前的准备工作,认真看完奥!

小程序官方有改版了,搞得石头哥不得不紧急的再新出一版,教大家开通最新版的cms网页管理后台 一,技术选型和技术点 1,小程序前端 wxml css JavaScript MINA原生小程序框架 2,数据库 云开发 云数据库 云…

springboot 批量下载文件, zip压缩下载

一、使用hutool 工具类 效果&#xff1a;下载速度可以 1、依赖&#xff1a;hutool <dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.8.26</version> </dependency>2、调用方式 im…

Android Studio开发工具学习之Git分支操作

这里写目录标题 2.1 查看、创建本地分支2.1.1 命令行查看与创建2.1.2 Git窗口查看与创建 2.2 切换分支&#xff1a;Checkout2.3.1 通过命令行切换 2.3.2 通过Git窗口切换 2.3 合并分支&#xff1a;Merge2.3.1 操作command_new、gui-new分支2.3.1 通过命令行将gui-new分支合并至…

LT8711UXD助力新款Swtich游戏机底座《4K/60HZ投屏方案》

Nintendo Switch&#xff08;OLED版&#xff09;正面搭载了一块分辨率为720P的7.0英寸OLED屏幕&#xff1b;具有白色和电光蓝电光红2种颜色&#xff1b;机身长度102毫米&#xff0c;宽度242毫米&#xff0c;厚度13.9毫米&#xff0c;重量约420克。 [2]Nintendo Switch&#xff…

举个栗子!Tableau 技巧(271):同时筛选不同年份的 TopN 数据

零售企业的销售数据分析中&#xff0c;经常用排序来查看过去一年或者几年的数据 TopN 情况。如果可以在同一视图中&#xff0c;呈现很多年的数据排名&#xff0c;且通过筛选能灵活调整 TopN 的 N 值&#xff0c;岂不是更方便&#xff1f; 如下示例&#xff1a;图表呈现了各品牌…

centos7上搭建mongodb数据库

1.添加MongoDB的YUM仓库&#xff1a; 打开终端&#xff0c;执行以下命令来添加MongoDB的YUM仓库&#xff1a; sudo vi /etc/yum.repos.d/mongodb-org-4.4.repo 在打开的文件中&#xff0c;输入以下内容&#xff1a; [mongodb-org-4.4] nameMongoDB Repository baseurlh…

【sping】在logback-spring.xml 获取项目名称

在日志文件中我们想根据spring.application.name 创建出的文件夹。 也不想死在XML文件中。 application.yml spring:application:name: my-demo logback-spring.xml <springProperty name"application_name" scope"context" source"spring.app…

如何用微信小程序实现远程控制无人售货柜

如何用微信小程序实现远程控制无人售货柜呢&#xff1f; 本文描述了使用微信小程序调用HTTP接口&#xff0c;实现控制无人售货柜&#xff0c;独立控制售货柜、格子柜的柜门。 可选用产品&#xff1a;可根据实际场景需求&#xff0c;选择对应的规格 序号设备名称厂商1智能WiFi…

自动驾驶光学校准反射板

光学校准反射板是一种用于光学系统校准的重要工具。它以其高反射率和精确的几何特性&#xff0c;为光学仪器、光学系统和光学元件的校准提供了可靠的参考。在现代光学领域&#xff0c;光学校准反射板的应用已经深入到各个领域&#xff0c;从科学研究到工业生产&#xff0c;都离…

# IDEA2019 如何打开 Run Dashboard 运行仪表面板

IDEA2019 如何打开 Run Dashboard 运行仪表面板 段子手168 1、依次点击 IDEA 上面工具栏 —> 【View】 视图。 —> 【Tool Windows】 工具。 —> 【Run Dashboard】 运行仪表面板。 2、如果 【Tool Windows 】工具包 没有 【Run Dashboard】 运行仪表面板 项 依次…

慈航医疗“五进”实践活动第九场:范庄村爱心义诊,村民健康有“医”靠

为落实推进“健康中国”战略&#xff0c;提升居民健康意识和预防疾病能力&#xff0c;4月18日&#xff0c;慈航医疗健康前往范庄村开展健康义诊活动&#xff0c;为100余位村民送上了一份暖心的公益关爱。 义诊当天&#xff0c;在志愿服务队队员的引领下&#xff0c;慈航医疗健康…

数据结构|树形结构|并查集

数据结构|并查集 并查集 心有猛虎&#xff0c;细嗅蔷薇。你好朋友&#xff0c;这里是锅巴的C\C学习笔记&#xff0c;常言道&#xff0c;不积跬步无以至千里&#xff0c;希望有朝一日我们积累的滴水可以击穿顽石。 有趣的并查集剧情演绎&#xff1a;【算法与数据结构】—— 并…

JavaScript —— APIs(三)

一、事件流 &#xff08;一&#xff09;定义 &#xff08;二&#xff09;事件捕获 事件捕获&#xff0c;对话框从大到小弹出&#xff0c;先弹出爷爷&#xff0c;最后弹出儿子 &#xff08;三&#xff09;事件冒泡 冒泡事件&#xff0c;对话框从小到大弹出&#xff0c;先弹出…

详解QString与QByteArray使用对比

QString与QByteArray是Qt库中两种不同的字符串/字节序列容器&#xff0c;各自服务于特定的应用场景。本篇文章将详细解析它们的异同&#xff0c;帮助您在实际编程中准确选择和有效地使用这两种类型。 参考 QString类的使用 相同之处 构造与初始化&#xff1a; 两者都支持直接使…

Apache Answer 开源问答社区安装体验

Answer 是由 SegmentFault 思否团队打造的一款问答平台软件,后端使用 Go 语言编写,于2022年10月24日(程序员节)正式开源。你可以免费使用 Answer 高效地搭建一个问答社区,并用于产品技术问答、客户支持、用户交流等场景。 2023年10月9日,Answer 顺利通过投票,以全票通过…

华为sr-mpls policy配置案例

SR&#xff0d;MPLS POLICY在ensp上面做不了&#xff0c;这是官方上的配置

编译Milkv-duo固件

Milk-V Duo 是一款基于 CV1800B 芯片的超紧凑型嵌入式开发平台。它可以运行Linux和RTOS&#xff0c;为专业人士、工业ODM、AIoT爱好者、DIY爱好者和创作者提供可靠、低成本、高性能的平台。 硬件 CPU&#xff1a;CVITEK CV1800B (C9061Ghz C906700MHz)双 RV64 内核&#xff…

node+vue3的websocket前后端消息推送

nodevue3的websocket前后端消息推送 前期写web项目时&#xff0c;前端获取数据的方式一般是向后端发起数据请求&#xff0c;然后后端向前端发送数据&#xff0c;然后对数据进行渲染&#xff0c;这是最常规的一种数据通讯方式&#xff0c;适用于绝大部分前后端分离的项目 实际…