14-4 深入探究小型语言模型 (SLM)

大型语言模型 (LLM) 已经流行了一段时间。最近,小型语言模型 (SLM) 增强了我们处理和使用各种自然语言和编程语言的能力。但是,一些用户查询需要比在通用语言上训练的模型所能提供的更高的准确性和领域知识。此外,还需要定制小型语言模型,这些模型可以匹配 LLM 的性能,同时降低运行时费用并确保安全且完全可管理的环境。

在本文中,我们探讨了小型语言模型、它们的区别、使用它们的原因及其应用。我们还在小型语言模型 Llama-2–13b 上使用微调方法来解决上述问题。

此外,我们的目标是研究使该流程独立于平台的可能性。为此,我们选择了 Databricks 作为可以在 Azure、Amazon Web Services (AWS) 或 Google Cloud Platform 之间转移的平台。

在人工智能和自然语言处理的背景下,SLM可以代表“小型语言模型”。它是一种轻量级的生成式 AI 模型。在这种情况下,“小型”标签指的是 a) 模型神经网络的大小、b) 参数数量和 c) 模型训练的数据量。有几种实现可以在单个 GPU 上运行,并且参数超过 50 亿个,包括Google Gemini Nano、微软的Orca-2–7b和Orca -2–13b、Meta 的Llama-2–13b等。

SLM 和 LLM 之间存在一些差异。首先,与 SLM 相比,LLM 规模更大,并且经过了更广泛的训练。其次,LLM 具有显著的自然语言处理能力,可以捕捉复杂的模式并在自然语言任务(例如复杂推理)中胜出。最后,LLM 可以更彻底地理解语言,而 SLM 对语言模式的接触有限。这并不会让 SLM 处于劣势,在适当的用例中使用时,它们比 LLM 更有益。

使用这些模型的原因有很多。它们在各种应用中越来越受欢迎,并且越来越重要,尤其是在可持续性和训练所需的数据量方面。从硬件的角度来看,运行成本更低,即 SLM 需要更少的计算能力和内存,并且适合本地和设备部署,使其更安全。从使用的角度来看,这些是小型语言模型,针对特定领域或任务进行训练或微调,因此它们可以拥有从法律术语到保护知识产权的医疗诊断的专业术语和知识。根据场景的不同,SLM 会更便宜、更高效。

SLM 广泛应用于医疗保健、科技等各个领域。所有这些行业的常见用例包括摘要文本、生成新文本、情绪分析、聊天机器人、识别命名实体、纠正拼写、机器翻译、代码生成等。

语言模型微调是向预训练的语言模型提供额外训练的过程,使其更加针对特定领域或任务。此过程涉及使用额外的训练数据更新模型的参数,以提高其在特定领域或应用(如文本生成、问答、语言翻译、情绪分析等)中的表现。我们对“特定领域微调”感兴趣,因为当我们希望模型理解和生成与特定行业或用例相关的文本时,它特别有用。ParagogerAI训练营 2img.ai

硬件要求

硬件要求可能因模型的大小和复杂程度、项目规模和数据集而异。最好先从小规模开始,然后根据需要扩大规模。不过,以下是一些微调私有语言模型的一般准则。

  1. GPU(图形处理单元)进行处理。它可以基于云。
  2. 用于传输数据的快速可靠的互联网连接。
  3. 强大的多核 CPU 用于数据预处理和管理分发步骤。
  4. 内存充足,存储空间快速充足。

图 1. 用于微调过程的虚拟机。

数据准备

数据集的质量和可行性会显著影响微调模型的性能。为了实现此阶段的目标,我们需要从 PDF 中提取文本,清理和准备文本,然后从给定的文本块生成问题和答案对。最后,继续进行微调过程。

值得注意的是,我们使用了 GPT-3.5 之类的 LLM 来生成问答对(这可能会违背这里的目的),但是,我们也可以尝试使用 SLM 来根据用例生成这些对。

图 2. 准备微调数据集的关键步骤。

微调过程

我们使用了 HuggingFace 及其全套组件,并将它们集成在一起来完成这项任务。

图 3. 用于微调的集成组件。

我们选择了预训练语言模型Llama-2–13b-chat-hf。对于特定领域的数据集,我们将其转换为 HuggingFace 数据集类型,并使用可通过 HuggingFace API 访问的标记器。此外,量化用于降低模型中数值的精度,从而实现数据压缩、计算和存储效率以及降噪。还启用了性能配置,以有效适应预训练模型。最后,训练参数用于定义训练过程的细节,并向训练器传递参数、数据和约束。更多资讯,请访问 2img.ai

训练过程

我们对模型进行了 50 个 epoch 的微调。一个 epoch 指的是训练数据集的一个完整周期。它需要大约 16 个小时才能完成,并且我们的 CPU 和 RAM 资源在此过程中没有得到充分利用。具有有限 CPU 和 RAM 资源的机器可能适合这个过程。我们的 GPU 使用情况符合所述模型要求;也许增加批量大小可以加速训练过程。

图 4. CPU 和 RAM 使用情况。

总体而言,尽管最初在理解互连方面面临挑战,并且面临多次失败的尝试,但微调过程似乎进展顺利且一致。此微调过程的金钱成本约为 100 美元/83 英镑。但是,上述成本不包括最终微调过程的所有试验和错误的成本。

图 5. 以英镑计算的微调成本。

结果与观察

请注意,我们使用 GPT-3.5 从训练数据中生成问题和答案。我们微调的模型是 Llama-2–13b-chat-hf,它只有 130 亿个参数,而 GPT-3.5 有 1750 亿个参数。换句话说,我们期望小模型的表现与大模型一样好。因此,由于 GPT-3.5 和 Llama-2–13b-chat-hf 规模不同,直接比较答案并不合适,但是答案必须是可比的。

为 SLM 和 GPT-3.5 生成的答案创建了嵌入,并使用余弦距离来确定两个模型的答案的相似性。

图 6. GPT-3.5 答案和 Llama-2–13b-chat-hf 答案的相似度分布。

根据图 6,0.5 被设定为质量的临界值,0.6 代表 Llama-2–13b-chat-hf 产生的结果的平均质量。高于 0.5 的任何值都被认为是可接受的,低于 0.5 的任何值都是不可接受的。这是因为,类似地,范围从 -1 表示相反,1 表示完全匹配,0 表示与 0.5 的值无关,这似乎是合理的论点。

对于微调过程,我们使用了大约 10,000 个从版本 1 的内部文档中生成的问答对。但为了进行评估,我们只选择了与版本 1 和过程相关的问题。对结果的进一步分析表明,超过 70% 的问题与 GPT-3.5 生成的答案非常相似,即相似度为 0.5 及以上(见图 6)。总共有 605 个被认为是可接受的答案,118 个有点可接受的答案(低于 0.4),以及 12 个不可接受的答案。

经过微调的模型似乎能够提取和维护知识,同时展示出生成特定领域答案的能力。平台无关的方法使我们能够在 AWS 上执行相同的微调过程,并在不更改代码的情况下获得几乎相同的结果。

结论

SLM 也有一些缺点.与 LLM 相比,其知识库更为有限,这意味着它无法回答诸如谁登上月球等问题和其他事实性问题。由于对语言和语境的理解狭隘,它只能给出更受限制和有限的答案。尽管如此,SLM 本身的前景还是相当光明的。语言模型的发展历程凸显了人工智能的一个基本信息,即只要不断进步和现代化,小规模也能令人印象深刻。此外,人们还认为,效率、多功能性、环保性和优化的培训方法抓住了 SLM 的潜力。

我们将拭目以待,看看与 LLM 相比,SLM 会变得多么受欢迎,尤其是最近推出的 SLM,例如 Gemini Nano、Mixtral、Phi-2等。

ParagogerAI训练营 2img.ai

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

IDEA:插件和配置推荐(2024版)

文章目录 一、插件1.1 主题1.2 代码缩略图1.3 Maven插件2.4 彩虹括号2.5 翻译插件2.6 图标插件2.7 MyBatis插件2.8 阿里巴巴开发规范 二、全局配置2.1 主题2.2 字符编码2.3 注释颜色2.4 自动导包2.5 鼠标控制界面大小 三、新项目设置3.1 Maven3.2 SDK 四、恢复初始化 一、插件 …

flutter开发实战-Charles抓包设置,dio网络代理

flutter开发实战-Charles抓包设置 在开发过程中抓包,可以看到请求参数等数据,方便分析问题。flutter上使用Charles抓包设置。dio需要设置网络代理。 一、dio设置网络代理 在调试模式下需要抓包调试,所以需要使用代理,并且仅用H…

操作系统缓存与缓冲

缓存与缓冲 缓冲区是一块临时存储数据的区域,这些数据后面会被传输到其他设备上。缓冲区更像消息队列,用以弥补高速设备和低速设备通信时的速度差,平衡读写速度。例如:IO中内核缓冲区Ring Buffer。 缓存:存在于速度相…

鸿蒙应用开发之Badge容器

在开发应用的时候,经常需要一些提示,特别当用户打开应用时,有一些事情需要提醒一下用户,但是不能自动打开这个窗口提示,这样会让用户比较烦。所以设计一些提示显示来告诉用户,这里有新东西了,赶紧来点击一下查看。 比如像下面例子显示的界面: 在这里显示红点的地方,就…

区块链加载解析方法

一.区块链加载解析 对于数据的下载主要包括三种方式: 1.实现比特币网络协议,通过该协议和其他比特币全节点建立联系,然后同步区块数据。 2.通过比特币节点提供的API服务下载区块链数据。 3.通过blickchain.com提供的rest服务下载区块数据…

Python可实现各种算法库之algorithms使用详解

概要 在软件开发和计算机科学领域,算法是解决问题的核心工具。Python 作为一种广泛使用的编程语言,提供了多种内置和第三方库来实现各种算法。algorithms 库是一个集合了多种常用算法和数据结构的 Python 库,旨在帮助开发者快速实现和应用这些算法。本文将详细介绍 algorit…

【 2024!深入了解 大语言模型(LLM)微调方法(总结)】

引言 众所周知,大语言模型(LLM)正在飞速发展,各行业都有了自己的大模型。其中,大模型微调技术在此过程中起到了非常关键的作用,它提升了模型的生成效率和适应性,使其能够在多样化的应用场景中发挥更大的价值。 那么&…

C++ Linux调试(无IDE)

跨平台IDE编译调试C很方便,如QTCreate 、VSCode、Eclipse等,但是如果只能使用Shell控制台呢,gdb调试的优势就很明显了,在没有IDE的情况下,这个方式最有效。因为上手不是很难,特此整理 参考链接 目录 1、G…

MAC下打印机启用用户代码(RICOH理光打印机)

之前一直用Windows操作公司打印机,最近研究了下用MAC(macos 13.6.7)也能成功打印。公司为了防止恶意打印,因此对打印机设置了用户代码,输入正确的用户代码才能打印,因此配置会复杂一些。 1.安装适配的打印机…

5分钟教你用AI把老照片动起来,别再去花49块9的冤枉钱了

文章目录 需要的工具 最近,AI视频在各大平台上,又火了。 只是火的形式,变成了将老照片动起来,打情感牌,或者做很多经典电视剧的再整活。 直接把可灵的生成时间,从以前的4分钟,生生的干成了20分钟…

【APK】Unity出android包,报错 Gradle build failed.See the Console for details

参考大佬的博客:报错:Gradle build failed.See the Console for details.(已解决)_starting a gradle daemon, 1 incompatible daemon co-CSDN博客 本地出Android包,Build失败 解决办法: 1.下载一个低版本…

如何在多个服务器上安装WordPress分布式部署

许多网络主机现在保证其服务的正常运行时间为 99.9%,但这仍然每年最多有 8.7 小时的停机时间。 许多公司不能够承担这种风险。例如。在超级碗比赛中失败的体育新闻网站可能会失去忠实的追随者。 我们通过设置维护高可用性 WordPress分布式部署配置来帮助 WordPres…

SF-HCI-SAP问题收集17:值映射布尔型EC数据

Complacency is the enemy of study 学习的敌人是自己的满足。 SAP SuccessFactors Employee Central 到 SAP ERP 的员工主数据复制 successfactor employee center主数据同步,一直以来排错比较难,难的地方是这个提示消息比较隐晦,而且同步的…

C#的多线程UI窗体控件显示方案 - 开源研究系列文章

上次编写了《LUAgent服务器端工具》这个应用,然后里面需要新启动一个线程去对文件进行上传到FTP服务器,但是新线程里无法对应用主线程UI的内容进行更改,所以就需要在线程里设置主UI线程里控件信息的方法,于是就有了此博文。此文记…

程序员学CFA——经济学(五)

经济学(五) 货币政策与财政政策基本术语货币政策货币货币的功能货币的定义货币的创造过程货币的供给和需求费雪效应 中央银行中央银行的职能中央银行的目标与通货膨胀的成本中央银行的有效性 货币政策工具货币传导机制货币政策的目标与形式货币政策的目标…

大象机器人开源协作机械臂机械臂接入GPT4o大模型!

本文已经或者同济子豪兄作者授权对文章进行编辑和转载 引言 随着人工智能和机器人技术的快速发展,机械臂在工业、医疗和服务业等领域的应用越来越广泛。通过结合大模型和多模态AI,机械臂能够实现更加复杂和智能化的任务,提升了人机协作的效率…

Linux 压测工具---ab

安装 yum -y install httpd-tools 本文用于压测k8s集群内pod,k8s集群master可直接测试pod ip 命令: ab -n 10000 -c 100 http://10.42.8.212/ 其中,-n表示请求数,-c表示并发数,ip必须有”/“,表示此目录…

k8s上部署单节点apache-lotdb

一、yaml文件 使用的nfs的动态存储类,需要提前搭建。 # cat iotdb_deployment.yaml apiVersion: v1 kind: PersistentVolumeClaim metadata:name: logsnamespace: lotdb spec:storageClassName: "nfs-client"accessModes:- ReadWriteManyresources:req…

[图解]企业应用架构模式2024新译本讲解21-数据映射器3

1 00:00:00,040 --> 00:00:03,300 接下来,我们就来看一下代码的示例了 2 00:00:06,910 --> 00:00:09,180 我们同样一步一步来看一下 3 00:00:35,030 --> 00:00:36,950 首先初始化数据 4 00:00:37,870 --> 00:00:41,620 这个地方跟之前我们举的例子是…

2024年小米SU7维修手册和电路图线路图接线图资料更新

此次更新了2024年小米SU7维修手册和电路图资料,覆盖市面上99%车型,包括维修手册、电路图、新车特征、车身钣金维修数据、全车拆装、扭力、发动机大修、发动机正时、保养、电路图、针脚定义、模块传感器、保险丝盒图解对照表位置等等! 汽修帮…