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
硬件要求
硬件要求可能因模型的大小和复杂程度、项目规模和数据集而异。最好先从小规模开始,然后根据需要扩大规模。不过,以下是一些微调私有语言模型的一般准则。
- GPU(图形处理单元)进行处理。它可以基于云。
- 用于传输数据的快速可靠的互联网连接。
- 强大的多核 CPU 用于数据预处理和管理分发步骤。
- 内存充足,存储空间快速充足。
图 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
相关文章:

14-4 深入探究小型语言模型 (SLM)
大型语言模型 (LLM) 已经流行了一段时间。最近,小型语言模型 (SLM) 增强了我们处理和使用各种自然语言和编程语言的能力。但是,一些用户查询需要比在通用语言上训练的模型所能提供的更高的准确性和领域知识。此外,还需要定制小型语言模型&…...
ai智能语音机器人化繁为简让沟通无界限
人工智能这些年的飞速发展一方面顺应着国家智能化发展的规划,一方面印证着智能改动生活的预言。人工智能的开展与人们最息息相关大约就是智能手机的换代更迭,相信大家都有这方面的感受吧!如今企业的电销话务员越来越少,机器人智能…...

c++ primer plus 第15章友,异常和其他:友元类
c primer plus 第15章友,异常和其他:友元类 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 例如:友元类 提示:写完文章后,目录可以自动生成,如何生成可参考右边的…...
面试题002-Java-Java集合
面试题002-Java-Java集合 目录 面试题002-Java-Java集合题目自测题目答案1. 说说 List,Set,Map 三者的区别?三者底层的数据结构?2. 有哪些集合是线程不安全的?怎么解决呢?3. 比较 HashSet 、LinkedHashSet 和 TreeSet 三者的异同&…...

数组越界情况
数组越界情况...
工作日常学习记录
使用情景 今天开发上遇到一个搜索的需求,要求可以多选,模糊查询。我首先和前端沟通,前端多选后使用逗号分隔,拼成字符串传输给我,我后端再进行具体的处理。 具体处理 初步构想 由于需要查询的字段也是一个长的字符…...
C#中的容器
1、数组 数组是存储相同类型元素的固定大小的顺序集合 声明数组时,必须指定数组的大小 2.数组的插入和删除数据比较麻烦,但是查询比较快 2、动态数组(ArrayList) 动态数组:可自动调节数组的大小 可以存储任意类型数…...

rust + mingw安装教程
0. 说明 windows上安装rust时,需要在电脑上安装C/C构建工具。推荐的的两种工具链可以选择: visual studio build toolsmingw 官方推荐使用visual studio,若你的电脑上已经安装了visual studio,则无需再安装,直接安装…...

【sqlite3】联系人管理系统
SQLite3实现简单的联系人管理系统 有关sqlite3的基础知识请点击:SQLite3的使用 效果展示: 创建一个名为contacts.db的数据库 首先,我们需要创建一个名为contacts.db的数据库,并建立一个名为"contact"的表࿰…...

秋招Java后端开发冲刺——并发篇2(JMM与锁机制)
本文对Java的内存管理模型、volatile关键字和锁机制进行详细阐述,包括synchronized关键字、Lock接口及其实现类ReentrantLock、AQS等的实现原理和常见方法。 一、JMM(Java内存模型) 1. 介绍 JMM定义了共享内存中多线程程序读写操作的行为规…...
记录一次Chrome浏览器自动排序ajax请求的JSON数据问题
文章目录 1.前言2. 为什么会这样?3.如何解决? 1.前言 作者作为新人入职的第一天,mentor给了一个维护公司运营平台的小需求,具体需求是根据运营平台的某个管理模块所展示记录的某些字段对展示记录做排序。 第一步: myb…...
【嵌入式——FreeRTOS】任务
【嵌入式——FreeRTOS】任务 任务创建和删除动态方式创建任务静态方式创建任务 删除任务任务切换调度器任务切换流程 任务挂起任务恢复相关API函数 任务创建和删除 动态方式创建任务 任务的任务控制块以及任务的栈空间所需的内存,均由freeRTOS从freeRTOS管理的堆中…...
网关,路由器,交换机
一、网关 (Gateway) 是一种设备,用于连接不同网络,能够转发数据包并翻译协议,允许不同类型的网络通信。网关通常工作在OSI模型的应用层或传输层,提供连接和路由服务。 应用场景例子: 在企业网络中,网关可…...

sublime 3 背景和字体颜色修改
sublime 4 突然抽风,每次打开都显示 “plugin_host-3.3 has exited unexpectedly, some plugin functionality won’t be available until Sublime Text has been restarted” 一直没调好,所以我退回到sublime 3了。下载好了软件没问题,但是一…...

leetcode 403周赛 包含所有1的最小矩形面积||「暴力」
3197. 包含所有 1 的最小矩形面积 II 题目描述: 给你一个二维 二进制 数组 grid。你需要找到 3 个 不重叠、面积 非零 、边在水平方向和竖直方向上的矩形,并且满足 grid 中所有的 1 都在这些矩形的内部。 返回这些矩形面积之和的 最小 可能值。 注意…...

Stable Diffusion web UI 插件
2024.7.3更新,持续更新中 如果需要在linux上自己安装sd,参考:stable diffusion linux安装 插件复制到 /stable-diffusion-webui/extensions 目录下,然后重新启动sd即可 一、插件安装方法 每种插件的安装方法可能略有不同…...
深度学习中的反向传播算法的原理
深度学习中的反向传播算法的原理,以及如何计算梯度 反向传播算法(Backpropagation)是深度学习中最核心的优化技术之一,用于训练神经网络。它基于链式法则,通过从输出层逆向计算误差并逐层传递到输入层来更新模型参数&…...
身处奇瑞看三星:既“开卷“又“起火“,却更难受了
三星"起火" 这几天奇瑞的事情,让大家破防了,纷纷表示国内的就业市场环境普遍恶劣。 那我们转个眼,看看海外企业的情况。 最近一周,三星频频登上新闻,颇有"起火"之势。 在刚步入下半年的 7 月 1 日…...

系统架构设计师教程(清华第2版)<第1章 绪论>解读
系统架构设计师教程 第一章 绪论 1.1 系统架构概述1.1.1 系统架构的定义及发展历程1.1.2 软件架构的常用分类及建模方法1.1.3 软件架构的应用场景1.1.4 软件架构的发展未来1.2 系统架构设计师概述1.2.1 架构设计师的定义、职责和任务1.2.2 架构设计师应具备的专业素质1.3 如何成…...

Vue + Element UI + JSEncrypt实现简单登录页面
安装依赖 npm install jsencrypt --save局部引入 import JSEncrypt from jsencrypt/bin/jsencrypt;登录页面index.vue <template><div class"loginbody"><div class"logindata"><div class"logintext"><h2>Wel…...
ES6从入门到精通:前言
ES6简介 ES6(ECMAScript 2015)是JavaScript语言的重大更新,引入了许多新特性,包括语法糖、新数据类型、模块化支持等,显著提升了开发效率和代码可维护性。 核心知识点概览 变量声明 let 和 const 取代 var…...

树莓派超全系列教程文档--(61)树莓派摄像头高级使用方法
树莓派摄像头高级使用方法 配置通过调谐文件来调整相机行为 使用多个摄像头安装 libcam 和 rpicam-apps依赖关系开发包 文章来源: http://raspberry.dns8844.cn/documentation 原文网址 配置 大多数用例自动工作,无需更改相机配置。但是,一…...

Debian系统简介
目录 Debian系统介绍 Debian版本介绍 Debian软件源介绍 软件包管理工具dpkg dpkg核心指令详解 安装软件包 卸载软件包 查询软件包状态 验证软件包完整性 手动处理依赖关系 dpkg vs apt Debian系统介绍 Debian 和 Ubuntu 都是基于 Debian内核 的 Linux 发行版ÿ…...

基于Flask实现的医疗保险欺诈识别监测模型
基于Flask实现的医疗保险欺诈识别监测模型 项目截图 项目简介 社会医疗保险是国家通过立法形式强制实施,由雇主和个人按一定比例缴纳保险费,建立社会医疗保险基金,支付雇员医疗费用的一种医疗保险制度, 它是促进社会文明和进步的…...
oracle与MySQL数据库之间数据同步的技术要点
Oracle与MySQL数据库之间的数据同步是一个涉及多个技术要点的复杂任务。由于Oracle和MySQL的架构差异,它们的数据同步要求既要保持数据的准确性和一致性,又要处理好性能问题。以下是一些主要的技术要点: 数据结构差异 数据类型差异ÿ…...
Python如何给视频添加音频和字幕
在Python中,给视频添加音频和字幕可以使用电影文件处理库MoviePy和字幕处理库Subtitles。下面将详细介绍如何使用这些库来实现视频的音频和字幕添加,包括必要的代码示例和详细解释。 环境准备 在开始之前,需要安装以下Python库:…...
今日科技热点速览
🔥 今日科技热点速览 🎮 任天堂Switch 2 正式发售 任天堂新一代游戏主机 Switch 2 今日正式上线发售,主打更强图形性能与沉浸式体验,支持多模态交互,受到全球玩家热捧 。 🤖 人工智能持续突破 DeepSeek-R1&…...

Map相关知识
数据结构 二叉树 二叉树,顾名思义,每个节点最多有两个“叉”,也就是两个子节点,分别是左子 节点和右子节点。不过,二叉树并不要求每个节点都有两个子节点,有的节点只 有左子节点,有的节点只有…...
Angular微前端架构:Module Federation + ngx-build-plus (Webpack)
以下是一个完整的 Angular 微前端示例,其中使用的是 Module Federation 和 npx-build-plus 实现了主应用(Shell)与子应用(Remote)的集成。 🛠️ 项目结构 angular-mf/ ├── shell-app/ # 主应用&…...
python报错No module named ‘tensorflow.keras‘
是由于不同版本的tensorflow下的keras所在的路径不同,结合所安装的tensorflow的目录结构修改from语句即可。 原语句: from tensorflow.keras.layers import Conv1D, MaxPooling1D, LSTM, Dense 修改后: from tensorflow.python.keras.lay…...