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

一、关于大语言模型

        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://xiahunao.cn/news/2979562.html

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

相关文章

Quartz - 任务调度

文章目录 关于 QuartzQuartz的体系结构核心概念设计模式 常用API基本使用 关于 Quartz 官网:https://www.quartz-scheduler.orggithub : https://github.com/quartz-scheduler/quartz文档:https://www.quartz-scheduler.org/documentation/ 相关教程/博…

autodesk系列软件打开提示Flexnet License Finder

错误如图 解决方法如下 打开autoremove,点击扩展功能,输入flex,点击搜索 选择对应的这个按钮,点击,提示修复成功即可尝试打开软件

深入学习Linux中的“文件系统与日志分析”

目录 1.文件系统的组成 1.1inode和block 1.2inode的内容 1.3inode的号码 ​1.4文件存储小结 ​1.5inode大小 1.6inode的特殊作用 2. 链接文件 3.文件恢复 3.1EXT类型文件恢复 3.2磁盘有空间,但是仍然无法写入新文件 3.3恢复XFS类型的文件 3.3.1xfsdump…

Unity 中(提示框Tweet)

using UnityEngine; using UnityEngine.UI; using DG.Tweening; using System; public class Message : MonoBehaviour {public float dropDuration 0.5f; // 掉落持续时间public float persisterDuration 1f; // 持续显示时间public float dorpHeight;public static Message…

vue【vuex状态管理】

1:vuex是什么: vuex是一个状态管理工具,状态就是指的数据,可以将数据存放到vuex中以供其他组件使用时进行调用 2:应用场景: ①:像用户登录客户端,这个用户的数据需要在多个组件中…

一维递归:递去

示例&#xff1a; /*** brief how about recursive-forward-1? show you here.* author wenxuanpei* email 15873152445163.com(query for any question here)*/ #define _CRT_SECURE_NO_WARNINGS//support c-library in Microsoft-Visual-Studio #include <stdio.h>…

Linux多进程(一)创建进程与进程控制

一、进程状态 进程一共有五种状态分别为&#xff1a;创建态&#xff0c;就绪态&#xff0c;运行态&#xff0c;阻塞态(挂起态)&#xff0c;退出态(终止态)其中创建态和退出态维持的时间是非常短的&#xff0c;稍纵即逝。主要是就绪态, 运行态, 挂起态三者之间的状态切换。 就绪…

ABB机器人IRB4400平衡缸维修小技巧

ABB平衡缸是机器人是一个不可忽视的重要组成部分。ABB机器人平衡缸通常采用高强度材料制造&#xff0c;设计精巧&#xff0c;方便地集成到IRB4400机器人手臂中。此外&#xff0c;平衡缸还具备良好的密封性能&#xff0c;防止气体或液体泄漏&#xff0c;确保其耐用性和稳定性。因…

Mac电脑清理微信聊天记录 Mac电脑微信缓存怎么删

细心网友突然发现微信已经成为占用电脑存储空间最大的软件&#xff0c;其中包括聊天记录、缓存的文件、图片、视频等等&#xff0c;少则几个G&#xff0c;多则十几个G&#xff0c;让原本就不富裕的Mac存储空间更是雪上加霜。mac电脑清理微信聊天记录成为大家迫切解决的问题&…

MySQL文件目录结构:表在文件系统中的表示

以下内容基于Linux系统&#xff0c;MySQL的 /var/lib/mysql/ 目录下的数据文件 &#x1f496; Innodb 引擎 MySQL 5.7 MySQL 8.0 &#x1f31f; 总结 Innodb 是聚簇索引&#xff0c;索引及数据&#xff0c;数据即索引&#xff0c;所以数据和索引是存储在同一个文件中的 MyS…

Java基本语法(基础部分)

Java基本语法 文章目录 Java基本语法前言一、准备工作1.1 计算机软件与硬件1.2 计算机编程语言1.3 Java语言概述&程序分析1.4 Java环境搭建&Java API1.5 Java核心机制JVM 二、变量2.1 关键字&标识符2.2 变量2.3 数据类型(基本数据类型)2.3.1 基本数据类型2.3.2 基本…

【八股文】Spring 谈谈你对AOP的理解

AOP AOP(Aspect-Oriented Programming&#xff0c;面向切面编程)&#xff1a;是一种新的方法论&#xff0c;是对传统 OOP(Object-Oriented Programming&#xff0c;面向对象编程)的补充。 面向对象是纵向继承&#xff0c;面向切面是横向抽取。 OOP思想是一种垂直纵向的继承体…

HARDVS: Revisiting Human Activity Recognition with Dynamic Vision Sensors

标题&#xff1a;HARDVS: 用动态视觉传感器重新审视人类行为识别 原文链接&#xff1a;HARDVS: Revisiting Human Activity Recognition with Dynamic Vision Sensors| Proceedings of the AAAI Conference on Artificial Intelligencehttps://ojs.aaai.org/index.php/AAAI/ar…

PHP 爬虫如何配置代理 IP(CURL 函数)

在 PHP中 配置代理IP&#xff0c;可以通过设置 CURL 库的选项来实现&#xff0c;代码如下&#xff1a; 当然你要有代理ip来源&#xff0c;比如我用的这个 代理商 &#xff0c;如果想服务稳定不建议找开源代理池&#xff0c;避免被劫持。 <?php // 初始化cURL会话 $ch cu…

数据分析师必备的8个思维框架

什么是框架性思维&#xff1f;它是由一个个的思维框架积累而来。本文介绍分析常用的几个思维框架。 一些职位描述中会要求分析师有框架性思维&#xff0c;能够被考察的是思维框架&#xff0c;通过思维框架判断框架性思维能力。笔者查阅了多篇文章&#xff0c;定义思维框架为&a…

文件上传漏洞-白名单检测

如何确认是否是白名单检测 上传一张图片与上传一个自己构造的后缀&#xff0c;如果只能上传图片不能上传其它后缀文件&#xff0c;说明是白名单检测。 绕过技巧 可以利用 00 截断的方式进行绕过&#xff0c;包括 %00 截断与 0x00 截断。除此之外如果网站存在文件包含漏洞&…

统一SQL 支持Oracle unpivot列转行

统一SQL介绍 https://www.light-pg.com/docs/LTSQL/current/index.html 源和目标 源数据库&#xff1a;Oracle 目标数据库&#xff1a;TDSQL-MySQL 操作目标 在Oracle中&#xff0c;可以使用unpivot将列转换成行&#xff0c;在TDSQL-MySQL中没有对应的功能&#xff0c;由…

面试官竟然是个小黑子,问我用过状态机吗

状态机的组成 状态机是一种抽象的数学模型&#xff0c;描述了对象或系统在特定时间点可能处于的各种状态以及状态之间的转换规则。它由一组状态、事件、转移和动作组成&#xff0c;用于模拟对象在不同条件下的行为和状态变化。 状态机包括以下基本组成部分&#xff1a; 状态&…

【IR 论文】Query2doc — 使用 LLM 做 Query Expansion 来提高信息检索能力

论文&#xff1a;Query2doc: Query Expansion with Large Language Models ⭐⭐⭐⭐⭐ Microsoft Research, EMNLP 2023 文章目录 背景介绍Query2doc 论文速读实现细节实验结果和分析总结分析 背景介绍 信息检索&#xff08;Information Retrieval&#xff0c;IR&#xff09;指…

数据清洗:异常值检测方法

异常值检测方法总结 一、基于分布1、3σ原则2、Z_score方法3、boxplot一、基于分布 1、3σ原则 3σ原则又称为拉依达法则。该法则就是先假设一组检测数据只含有随机误差,对原始数据进行计算处理得到标准差,然后按一定的概率确定一个区间,认为误差超过这个区间的就属于异常…