如何训练一个大语言模型(LLMs)

目录

  • 前言
  • 大语言模型 Vs机器学习模型
  • 训练过程
    • 步骤1:数据策划(Data Curation)
    • 步骤2:格式化与预处理
    • 步骤3:训练模型
    • 步骤4:模型评估
  • LLM Leaderboard
      • [LLM Leaderboard 2024](https://www.vellum.ai/llm-leaderboard)
      • [Open LLM Leaderboard - Hugging Face](https://huggingface.co/spaces/HuggingFaceH4/open_llm_leaderboard)
      • CompassRank
      • [Arena Leaderboard](https://chat.lmsys.org/?leaderboard)
  • 总结
  • 参考文章链接

前言

在当今数字时代,语言模型已经成为自然语言处理任务的强大工具,从文本生成到情感分析和机器翻译等各个方面都有涉猎。然而,训练这些模型需要仔细的规划、大量的计算资源以及机器学习技术方面的专业知识。

那么一个大型语言模型(LLMs)到底是如何训练出来的呢?在查阅了解之后,我们将相关内容整理出来。在本文中,将和大家一起探讨训练LLMs所涉及的步骤,欢迎各位读者指正与补充。
在这里插入图片描述


大语言模型 Vs机器学习模型

大语言模型和传统机器学习模型在模型训练步骤方面有一些相同点,比如它们都需要:

  • 准备和整理训练数据
  • 选择合适的模型架构和超参数
  • 进行模型训练和评估

在这里插入图片描述

不过,它们也存在一些不同点,和机器学习模型相比,大语言模型通常:

  • 更复杂,需要大量微调以适应特定任务
  • 需要大量的文本数据,然后再进行
  • 需要更大的计算资源和时间。

而传统机器学习模型可能更加灵活,可以根据任务的需求选择不同的特征工程和算法,在较小的数据集和资源下也能取得良好的效果。

  • 更灵活
  • 根据任务需求选择算法
  • 较小的数据集和资源
    在这里插入图片描述

训练过程

步骤1:数据策划(Data Curation)

在大模型训练过程中,数据清洗不单单是删除一些错误数据、重复项,还包括对不同语料数据的重新组织整合,同时,这些数据也可以重复训练不同的模型任务。因此,这里没有选择更佳熟悉的Data Cleaning,而是选用了Data Curation一词,感觉更佳恰当。

来自维基百科翻译:
数据策划是对从各种来源收集的数据进行组织和整合的过程。它涉及数据的标注、发布和呈现,以确保数据的价值随着时间的推移得以保持,并且数据仍然可以用于重复使用和保存。数据策划包括“所有为了原则性和受控的数据创建、维护和管理所需的过程,以及增加数据价值的能力”。

在训练数据整理阶段,收集大量的数据是关键。训练数据的质量和数量对LLMs的性能有着重要影响。收集的数据应该与模型的目标相关,多样化并且具有代表性的数据集,包括书籍、文章、网站或特定领域的语料库的文本。

数据收集完毕后,不能直接用于模型训练,还要进行各种处理,比如:

  • 语言选择:收集的语料包含了各种语言,要选择哪几种语言进行训练。
  • 质量检查:确保数据符合期望的质量标准,适合预期的用途
  • 去重:删除相似性高的内容,以提高训练的准确性,同时减少占用的存储空间。
  • 删除个人敏感信息 PII( Personally Identifiable Information)
  • 数据净化:识别和删除污染物、异常以及不需要的元素,有助于减轻使用受污染数据所带来的风险,例如偏见分析或不准确的见解。

步骤2:格式化与预处理

在将数据提供给模型之前,需要对其进行格式化和预处理。确保数据清洁、统一,以提高模型的训练效果。这包括:

  • 格式化:将文本转换为模型可接受的输入格式
  • 清洗文本:清洗文本以去除不必要的字符、标点符号、HTML标签、特殊字符或噪音等。
  • 移除停用词:在语言中频繁出现但通常没有特定的含义或信息量,例如英文中的 “the”, “is”, “and” 等。
  • 标记化/分词 (Tokenization):将一句话切割成词组、短语或字符等离散单元,可以通过空格、标点符号或特定规则进行分割。

这个步骤最常用的工具库就是Tokenizers,支持多种算法和语言,能快速对文本进行清洗和预处理。

步骤3:训练模型

选择合适的训练框架是至关重要的,常用的框架包括TensorFlow、PyTorch等,根据需求和技术熟练程度选择合适的框架。同样重要的还有配置训练环境,包括硬件资源和软件依赖项,并确保训练过程的顺利运行。

配置训练环境

  1. 硬件资源
    • GPU:训练LLMs需要大量的图形处理单元(GPU)来加速计算。通常使用NVIDIA的GPU,如Tesla V100、Tesla T4等。
    • TPU:谷歌的Tensor Processing Units(TPU)也可以用于训练大型语言模型,提供了高效的计算能力。
    • 内存:大规模语言模型需要大量内存来存储模型参数和中间结果,通常需要数百GB甚至数TB的内存。
  2. 软件资源
    • CUDA和cuDNN:如果使用GPU,需要安装NVIDIA的CUDA和cuDNN库来加速深度学习计算。
    • 深度学习框架:安装所选框架的最新版本,例如TensorFlow或PyTorch。
    • 预训练模型:如果使用预训练的语言模型作为基础,需要下载或准备相应的预训练模型权重。

训练框架

  1. TensorFlow:由Google开发的开源深度学习框架,提供了丰富的工具和资源来训练大规模的语言模型。
  2. PyTorch:由Facebook开发的深度学习框架,因其灵活性和易用性而受到青睐。
  3. Hugging Face Transformers:提供了一系列预训练的语言模型和自然语言处理模型的实现,包括BERT、GPT、RoBERTa等,基于PyTorch实现,提供了方便的模型和预训练权重加载。
  4. DeepSpeed:微软开发的深度学习框架,专注于大规模分布式训练和高效模型优化。它使ChatGPT等模型训练仅需一键操作即可完成,同时在各个规模上实现了前所未有的成本降低。
  5. Llama:Llama是一系列预训练和微调的LLM,参数范围从70亿到700亿。它是Meta(Facebook的母公司)AI团队开发的。Llama 2 Chat LLMs专为对话用例进行了优化,并已在各种基准测试中表现出色,超过了许多开源聊天模型。
  6. LangChain:是一个 Python 库和框架,旨在赋能开发者创建由语言模型驱动的应用程序,特别关注像 OpenAI 的 GPT-3 这样的大型语言模型。它配备了多种功能和模块,旨在优化与语言模型合作时的效率和可用性。

步骤4:模型评估

在训练完成后,对模型进行评估是必不可少的。

在机器学习模型训练中,我们会通常比较看重预测结果的准确性,使用准确度、召回率、F1分数等这些评估指标来衡量模型的性能,同时,将模型在测试集上进行评估,以确保其在未见数据上的泛化能力。

而在LLM中,使用者希望模型能够完成问答、总结、文本分析、翻译等等文本处理任务,因此,评估一个大语言模型(LLM)涉及多个方面,包括模型的语言能力、生成能力、语义理解、文本生成质量等,所使用的指标也各有不同。

下面选取了几个:

  1. 困惑度(Perplexity):用于衡量语言模型在给定文本序列下预测下一个单词的准确性,困惑度越低表示模型预测越准确。
  2. BLEU分数:评估生成文本与参考文本之间的相似度,尤其在机器翻译任务中常用,分数越高表示生成结果越接近参考文本。
  3. ROUGE指标:评估生成文本与参考文本之间的重叠程度,特别适用于自动摘要生成任务,ROUGE值越高表示生成结果与参考文本越接近。
  4. ARC: AI2 Reasoning Challenge 涉及推理和逻辑推断的任务,用于评估语言模型在逻辑推理方面的能力。
  5. HellaSwag:用于评估语言模型(LM)能否理解具有挑战性的自然语言理解任务的指标。
  6. MMLU: Massive Multitask Language Understanding,评估LLM在多任务处理方面的表现能力。
  7. TruthfulQA:用于评估语言模型的知识和推理能力的问答(QA)基准

LLM Leaderboard

这是在收集资料过程中,发现的一些大模型排行榜, 通过不同的指标对比现在大模型的各种性能表现。

LLM Leaderboard 2024

在这里插入图片描述

Open LLM Leaderboard - Hugging Face

![[未命名 1-20240418160003018.webp]]

CompassRank

![[未命名 1-20240418155713975.webp]]

Arena Leaderboard

![[未命名 1-20240418155507763.webp]]


总结

本文探讨了训练大型语言模型(LLMs)的过程步骤,从数据处理到模型评估和实际应用。LLMs在解决文本任务中发挥着重要作用,随着自然语言处理技术的进步,它们在日常工作和生活中的应用也日益广泛。

在查阅资料的过程中,我们也发现了各种教程、指南和代码示例,以及多样的评估指标和领域专用模型,如图片和视频生成模型,这表明了LLMs在不断进步和创新,其复杂性和多样性也在日益变化。

希望本文能够为读者提供一些有价值的信息和启发,激发大家对于LLMs和自然语言处理技术的兴趣和探索欲望。让我们共同期待着LLMs在未来的发展中发挥更大的作用,为我们的生活和工作带来更多便利和可能性。


参考文章链接

A Step-by-Step Guide to Training Your Own Large Language Models (LLMs)
What are Large Language Models(LLMs)?
Large language model - Wikipedia
Frameworks for Serving LLMs. A comprehensive guide into LLMs inference and serving | by Sergei Savvov | Jul, 2023 | Medium | Better Programming
Understanding LangChain - A Framework for LLM Applications
Evaluating Large Language Model (LLM) systems: Metrics, challenges, and best practices | by Jane Huang | Data Science at Microsoft | Mar, 2024 | Medium
An In-depth Guide to Benchmarking LLMs | Symbl.ai
LLM Benchmarks: MMLU, HellaSwag, BBH, and Beyond - Confident AI
LLM Benchmarks: Guide to Evaluating Language Models | Deepgram
How to Evaluate LLMs: A Complete Metric Framework - Microsoft Research
Evaluating Large Language Models
How to Evaluate LLMs? - Analytics Vidhya

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

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

相关文章

软考 系统架构设计师系列知识点之大数据设计理论与实践(13)

接前一篇文章:软考 系统架构设计师系列知识点之大数据设计理论与实践(12) 所属章节: 第19章. 大数据架构设计理论与实践 第4节 Kappa架构 19.4.2 Kappa架构介绍 Kappa架构由Jay Kreps提出(Lambda由Storm之父Nayhan M…

智慧水务是什么样的?如何打造智慧水务大屏?

在信息化和数字化快速发展的今天,智慧水务作为城市供水管理的重要组成部分,正变得越来越重要。智慧水务大屏作为智慧水务系统的可视化核心,不仅提升了水务管理的效率,而且通过数据的实时监控和分析,为决策者提供了强有…

持续发力新能源新材料产业,企企通 ×『瑞翔新材』SRM项目启动,积极推动企业发展新质生产力

近日,南通瑞翔新材料有限公司(以下简称“瑞翔新材”)与企企通达成战略合作,并成功召开SRM项目启动会,瑞翔新材与企企通高层领导、项目负责人及项目组成员共同出席此次启动会。 本次项目建设,企企通将助力瑞…

微服架构基础设施环境平台搭建 -(六)Kubesphere 部署Redis服务 设置访问Redis密码

微服架构基础设施环境平台搭建 -(六)Kubesphere 部署Redis服务 & 设置访问Redis密码 微服架构基础设施环境平台搭建 系列文章 微服架构基础设施环境平台搭建 -(一)基础环境准备 微服架构基础设施环境平台搭建 -(二…

矿产资源管理系统:开启智慧矿业新篇章

项目背景 在全球经济发展的大背景下,矿产资源作为工业的“粮食”和“血液”,其合理开发与有效管理对于国家的经济发展、能源安全和工业稳定供应具有不可替代的作用。然而,随着资源的日益紧张和环境保护要求的提高,传统的矿产资源…

canvas 学习

最近的项目涉及到 canvas 相关的知识,就在网站上找资源先大概了解一下,然后再细细研究。 看到了一篇 “canvas详细教程” 的资源,感觉十分不错,就分享给大家: canvas详细教程! ( 近1万字吐血总结)这期是潘潘整理的万…

Recommended Azure Monitors

General This document describes the recommended Azure monitors which can be implemented in Azure cloud application subscriptions. SMT incident priority mapping The priority “Blocker” is mostly used by Developers to prioritize their tasks and its not a…

第二届阿里巴巴大数据智能云上编程大赛亚军比赛攻略_北方的郎队

关联比赛: 第二届阿里巴巴大数据智能云上编程大赛-智联招聘人岗智能匹配 查看更多内容,欢迎访问天池技术圈官方地址:第二届阿里巴巴大数据智能云上编程大赛亚军比赛攻略_北方的郎队_天池技术圈-阿里云天池

C#-使用Harmony库实现DLL文件反射调用

一. Harmony工作原理 利用C#运行时Runtime的反射机制,动态加载dll中的方法,字段,属性,实现对DLL方法的重写和代码注入。 二. Harmony下载及安装 1.下载Harmony_lib库lib.harmony.2.3.3.nupkg 霸王•吕布 / CSharpHarmonyLib GitCodehttps://gitcode.net/qq_35829452/csharph…

【黑马点评Redis——003优惠券秒杀】

1.优惠券秒杀 1.1 全局ID生成器 1.1.1 什么是全局ID生成器 全局ID生成器,是一种在分布式系统下用来生成全局唯一ID的工具。 需要满足以下特性: 唯一性高可用高性能递增性安全性 1.1.2 为什么需要全局ID生成器? 自增ID存在的问题&#…

字节跳动(社招)三面算法原题

TikTok 喘息 继上月通过强制剥离 TikTok 法案后,美国众议院在当地时间 20 日下午以 360 票赞成 58 票反对通过了新的法案:剥离 TikTok 的期限由生效后 165 天调整至 270 天之内,即今年 11 月的美国总统大选后。 之前我们讲过,TikT…

5款制作表格的软件,一键帮你实现数据可视化

数据可视化是许多企业决定未来方向、产品研发和用户研究的关键。只有大量的数据支持才能做出最明智的决定,因此表格在可视化中逐渐发挥着不可替代的作用。可以看出,掌握表格制作技巧是多么重要。然而,不能制作表格的小型合作伙伴不必担心。国…

Linux内核驱动开发-001字符设备开发-003独立按键杂项驱动

1驱动程序 /*************************************************************************> File Name: key_misc.c> Author: yas> Mail: rage_yashotmail.com> Created Time: 2024年04月22日 星期一 17时20分42秒**********************************************…

QT QZipReader改进,以支持大于2G的zip文件

QZipReader对ZIP文件读取非常方便好用。即使在最新版的QT 6.6.1里,仍然存在一些问题:对于大于2G的zip文件不支持。 虽然有标准zlib可调用,但包装成一个易用且功能成熟的zip解压功能库,还是有很大的工作量,也需要有一定…

交通工程绪论

一、交通工程 交通工程学定义交通工程学研究的内容交通工程学的产生与发展交通工程学在道路运输管理中的作用 1. 交通工程学定义 早在20世纪30年代,美国交通工程师协会(American Institute of Traffic Engineers)给交通工程学(Traffic Engineering)下了一个定义&a…

每日一题 — 二分查找

704. 二分查找 - 力扣(LeetCode) 朴素二分查找模板: while(.......){//防止溢出int mid left(right - left)/2;if(........){right mid-1;}else if(......){left mid1;}else{return mid;}} 代码: public int search(int[] num…

jdbc操作数据库 and 一个商品管理页面

文章目录 1. 介绍1.1 应用知识介绍1.2 项目介绍 2. 文件目录2.1 目录2.2 介绍以下(从上到下) 3. 相关代码3.1 DBConnection.java3.2 MysqlUtil.java3.3 AddServlet.java3.4 CommodityServlet.java3.5 DelectServlet.java3.6 SelectByIdServlet.java3.7 S…

揭秘Faiss:大规模相似性搜索与聚类的技术神器深度解析!

Faiss(由Facebook AI Research开发)是一个用于高效相似性搜索和密集向量聚类的库。它用C编写,并提供Python绑定,旨在帮助研究人员和工程师在大规模数据集上进行快速的相似性搜索和聚类操作。 一、介绍: Faiss的核心功…

双链向表专题

1.链表的分类 链表的种类非常多组合起来就有 2 2 8种 链表说明: 虽然有这么多的链表的结构,但是我们实际中最常⽤还是两种结构: 单链表 和 双向带头循环链表 1. 无头单向⾮循环链表:结构简单,⼀般不会单独⽤来存数…

Ultralytics YOLOv8 英伟达™ Jetson®处理器部署

系列文章目录 前言 本综合指南提供了在英伟达 Jetson设备上部署Ultralytics YOLOv8 的详细攻略。此外,它还展示了性能基准,以证明YOLOv8 在这些小巧而功能强大的设备上的性能。 备注 本指南使用Seeed Studio reComputer J4012进行测试,它基于…