“最强7B模型”论文发布,揭秘如何超越13B版Llama 2

news2024/11/20 15:17:18

来自“欧洲OpenAI”的“最强7B开源模型”Mistral最近可谓是圈粉无数。

它各方面的测试指标全面超越了13B的Llama2,甚至让一众网友觉得羊驼不香了。

最新消息是,Mistral AI团队已经发布了相关论文,透露背后的技术细节。

在这里插入图片描述

Mistral不仅全面战胜了13B Llama2,在数学、代码和推理方面,34B的Llama1也不是Mistral的对手。

在推理任务上,Mistral的表现更是直逼10倍参数量的Llama2-70B。

但Mistral消耗的资源却很少,只需要6GB显存,MacBook就能流畅运行。

为了用更少消耗达到更好的效果,Mistral可谓是使出了浑身解数。

那么关于Mistral的这篇论文都透露了哪些技术信息呢?

多种机制降低运算消耗
基础结构上,Mistral基于Transformer架构设计,一共有32个n_layer,上下文长度达到了8192 token。

具体的参数如下表所示:
在这里插入图片描述

而Mistral能做到高性能低消耗,则要归功于所用到的多种优化策略。

首先是最核心的注意力机制,其直接作用是减少计算量,具体包括了两个方面。

第一种是滑动窗口(Sliding Window)注意力机制。

推理阶段中,会设定出一个窗口长度,并在划分出的注意力层范围之内进行注意力运算,而不是针对全文。

通过滑动方式,各注意力层之间会有所重叠,从而实现长文本序列的处理。

4096的长度,理论上可以处理13.1万token。

在这里插入图片描述

这种注意力机制和标准注意力相比,可以将速度提升到两倍。

另一种则是分组查询(Grouped-query)注意力机制。

这种机制将查询(query)拆分成多个组,每个组只与key的一个子集进行注意力运算,然后拼接出结果。

这样不仅能降低运算量,也能让组间通信次数减少,并提高查询吞吐。

除了在注意力机制上下功夫,开发者还引入了滚动缓冲区缓存(Rolling Buffer Cache)。

这种存储方式固定了缓冲区的大小,从而限定了内存消耗的最大值。

在这里插入图片描述

如果把缓冲区比作一座仓库,每存进一个新东西,都会占据相应的位置。

而仓库的总容量是固定的,当仓库被装满时,就会把最先放入的东西移除,让新的物品继续进仓。

但入仓时间更接近的物品则会留在仓库中,就能在节约资源的同时保留一定长度的序列。

利用这种缓存机制,只要缓冲区大小设置得合理,就能实现预算效率与记忆力的平衡。

此外还有一种预填充和分块机制,它的直接作用是减少重复运算。

在这里插入图片描述

假如需要处理一个很长的句子,那么这个句子将被分割成小块。

训练完前面的小块之后,再加入后面的块,以此类推……

这样存储空间中就有了前面的块信息,用来建立长序列。

这种方式避免了从头开始的重复运算,从而使效率得到了提升。

以上就是开发者在Mistral中使用的优化策略,而为了评估模型的泛化能力,开发者使用了HF上的公开数据集进行了指导性微调。

结果Mistral的表现全面超过了13B参数的Llama 2,其中推理技能更是与70B版本十分接近。

在这里插入图片描述

单块3090即可微调
Mistral的火爆程度,直接让第三方工作室也推出了微调教程。

在这里插入图片描述

据介绍,用这种方法微调之后,可以进一步提升Mistral的性能并降低消耗。

而这个微调的过程,用一块3090就能完成。

首先是根据使用目的准备数据集,转化为prompt形式并划分出训练和验证集。

然后是对模型进行初始化,加载Mistral并设置4-bit量化和Lora等参数。

接着是构建Trainer,输入数据、模型等信息正式开始训练,然后测试并保存。

具体的细节可以到教程原文中去了解。

论文地址:
https://arxiv.org/abs/2310.06825
微调教程:
https://wandb.ai/byyoung3/ml-news/reports/Fine-Tuning-Mistral7B-on-Python-Code-With-A-Single-GPU—Vmlldzo1NTg0NzY5

本文来源量子位,如有侵权请联系删除

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

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

相关文章

多个子div在父中垂直居中

在一个div下&#xff0c;有多个子div&#xff0c;且子div都是水平垂直居中 <template><div><div class"far"><!-- 注意需要多包裹一层 --><div><div class"son1">1</div><div class"son2">222…

30天工作量,推荐4个ai写作生成器工具,一键搞定!

全新升级&#xff01;畅销热门AI写作工具盘点40强&#xff0c;助你一键呈现顶尖文案&#xff01; AI写作工具&#xff0c;引领时代潮流&#xff0c;让办公生活更高效&#xff01;小编特意整理了市面上最好用的AI写作工具&#xff0c;共计40款&#xff01;你使用过哪些&#xff…

Centos中如何删除带有特殊符号的乱码文件_rz命令产生的乱码文件如何删除_使用文件号删除乱码文件---Linux运维工作笔记058

在使用rz命令进行文件上传的时候,偶尔会产生一堆的乱码文件,比如: 可以看到有一堆的乱码文件. 普通的乱码文件,直接rm -rf 文件名就可以删除了,但是有一些不行,包含特殊符号的,比如: 这个文件报错了,可以看到用rm -rf 根本删除不掉. 这个文件后面包含了一个.对吧 那该怎么解决…

C++前缀和算法应用:矩形区域不超过 K 的最大数值和

基础知识点 C算法&#xff1a;前缀和、前缀乘积、前缀异或的原理、源码及测试用例 题目 给你一个 m x n 的矩阵 matrix 和一个整数 k &#xff0c;找出并返回矩阵内部矩形区域的不超过 k 的最大数值和。 题目数据保证总会存在一个数值和不超过 k 的矩形区域。 示例 1&#x…

消息队列(中间件)

通信协议&#xff1a; 为了实现客户端和服务器之间的通信来完成的逻辑&#xff0c;基于TCP实现的自定义应用层协议。通过这个协议,完成客户端–服务器远程方法调用。 序列化/反序列化&#xff1a; 通过网络传输对象把对象存储到硬盘上。 序列化&#xff1a;把对象转化为二进制的…

windwos文件句柄数限制

1、修改注册表&#xff0c;位置如下&#xff1a; HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows NT/CurrentVersion/Windows​ 2、设置 1、GDIProcessHandleQuota 此项设置GDI句柄数量&#xff0c;默认值为2710(16进制)/10000(10进制)&#xff0c;该值的允许范围为 256 ~ 16…

pip快速安装torch、opencv、scipy库

目录 一、pip安装torch 1.1 torch介绍 1.2 torch.nn相关库的导入 1.3win10上torch的安装命令 二、pip安装Opencv 三、pip安装scipy库 一、pip安装torch 1.1 torch介绍 torch的基本功能&#xff1a; ①torch&#xff1a;张量的相关运算&#xff0c;例如&#xff1a;创…

微信小程序------框架

目录 视图层 WXML 数据绑定 列表渲染 条件渲染 模板 wsx事件 逻辑层 生命周期 跳转 视图层 WXML WXML&#xff08;WeiXin Markup Language&#xff09;是框架设计的一套标签语言&#xff0c;结合基础组件、事件系统&#xff0c;可以构建出页面的结构。 先在我们的项目中…

GitLab(1)——GitLab安装

目录 一、使用设备 二、使用rpm包安装 Gitlab国内清华源下载地址&#xff1a; ①下载命令如下&#xff1a; ②安装命令如下&#xff1a; ③删除rpm包 ④配置 ⑤重载 ⑥重启 ⑦配置自启动 ⑧打开8989端口并重启防火墙 三、GitLab登录 ①访问GitLab的URL ②输入用户…

scratch身高统计 2023年9月中国电子学会图形化编程 少儿编程 scratch编程等级考试三级真题和答案解析

目录 scratch身高统计 一、题目要求 1、准备工作 2、功能实现 二、案例分析

二维码智慧门牌管理系统:构建未来社区管理新典范

文章目录 前言一、系统概述二、系统优势三、多领域应用四、未来展望 前言 在科技的迅猛发展下&#xff0c;我们的生活正朝着智能化迈进。最近&#xff0c;备受瞩目的“二维码智慧门牌管理系统”为社区管理带来了一场革命&#xff0c;通过建立标准要素之间的关系&#xff0c;重…

关于python pytorch 与CUDA版本相关问题

首先在终端中输入python进入python交互式环境 import torch print(torch.__version__) #注意是双下划线官网&#xff1a;https://pytorch.org/get-started/previous-versions/ CUDA Toolkit版本及可用PyTorch对应关系总结&#xff08;参考官网&#xff09; cuda版本确定后&a…

UI自动化的适用场景,怎么做?

经常有人会问&#xff0c;什么样的项目才适合进行UI自动化测试呢&#xff1f;UI自动化测试相当于模拟手工测试&#xff0c;通过程序去操作页面上的控件。而在实际测试过程中&#xff0c;经常会遇到无法找到控件&#xff0c;或者因控件定义变更而带来的维护成本等问题。 哪些场…

iOS代码混淆-从入门到放弃

​ 目录 1. 什么是iOS代码混淆&#xff1f; 2. iOS自动代码混淆的方法是什么&#xff1f; 3. iOS代码混淆的作用是什么&#xff1f; 4. 怎么样才能做到更好的iOS代码混淆&#xff1f; 总结 参考资料 1. 什么是iOS代码混淆&#xff1f; 代码混淆是指将程序中的方法名、属…

Numpy 从零快速入门教程

NumPy 介绍 什么是 NumPy? NumPy是Python中科学计算的基础包。它是一个Python库&#xff0c;提供多维数组对象&#xff0c;各种派生对象&#xff08;如掩码数组和矩阵&#xff09;&#xff0c;以及用于数组快速操作的各种API&#xff0c;有包括数学、逻辑、形状操作、排序、…

leetcode-49.字母异位词分组

1. 题目 2. 解答 #include <stdio.h> #include <stdlib.h> #include <string.h>#define MAX_STRLEN (10000 1) #define MAX_CHARLEN (100 1)char map[128] {0}; char map_start[128] {0};void solve(char input[MAX_STRLEN][MAX_CHARLEN], int num) {in…

自学\跳槽\转行做网络安全行业的一些建议

前言 前段时间&#xff0c;知名机构麦可思研究院发布了《2022年中国本科生就业报告》 &#xff0c;其中详细列出近五年的本科绿牌专业&#xff0c;其中&#xff0c;信息安全位列第一。 网络安全前景 对于网络安全的发展与就业前景&#xff0c;想必无需我多言&#xff0c;作为当…

最好的开放式蓝牙耳机有哪些?排名前五的开放式耳机五强

越来越多的人开始选择蓝牙耳机作为他们的音频解决方案。蓝牙耳机市场提供了各式各样的选择&#xff0c;不仅有常见的头戴式、耳塞式和半入耳式&#xff0c;还有一种备受欢迎的"开放式耳机"。今天&#xff0c;我将向大家介绍一些优秀的开放式蓝牙耳机款式&#xff0c;…

OTN的7层结构

文章目录 一、国际规定OTN的7层结构二、类比OTN的7层结构三、实际网络OTN的7层结构OTN分层结构的作用 OTN&#xff08;Optical Transport Network&#xff0c;光传送网&#xff09;是一个层次化网络&#xff0c;业务信号在不同层次之间进行传输。 一、国际规定OTN的7层结构 根…

将中文名格式化输出为英文名

要求&#xff1a; 编写Java程序&#xff0c;输入样式为&#xff1a;Zhong wen ming的人名&#xff0c;以 Ming,Zhong.W 的形式打印出来。其中.W是中间单词的首字母&#xff1b;例如输入”Willian Jefferson Clinton“,输出形式为&#xff1a;Clinton,Willian.J public static …