试试号称最好的7B模型(论文复现)

试试号称最好的7B模型(论文复现)

本文所涉及所有资源均在传知代码平台可获取

文章目录

    • 试试号称最好的7B模型(论文复现)
        • 概述
        • 论文原理
        • 部署与复现
          • 推理
          • 微调
          • adapter 融合

概述

Mistral 7B 是一个新型的具有 7.3 万亿参数的大语言模型。其性能甚至优于13万亿参数的 Liama2。

Mistral 7B 在所有测试基准中都优于之前最佳的 13B 模型(Llama 2),并在数学和代码生成方面超越了最佳的 34B 模型(LLaMa 34B)。此外,Mistral 7B 在编码性能上接近于 Code-Llama 7B,而不会牺牲非代码相关基准上的性能。Mistral 7B 利用了分组查询注意力(GQA)和滑动窗口注意力(SWA)。GQA 显著加快了推断速度,同时在解码过程中减少了内存需求,从而允许更高的批处理大小,提高了吞吐量,这对于实时应用非常重要。此外,SWA 旨在以较低的计算成本更有效地处理更长的序列,从而缓解了LLM(大型语言模型)的常见限制。这些注意力机制共同促进了 Mistral 7B 的增强性能和效率。

模型论文可见Mistral 7B

论文原理

Mistral 7B 基于 transformer 架构,下图将展示该架构的主要参数

在这里插入图片描述

滑动窗口注意力(SWA)利用 transformer 的堆叠层来关注超出窗口大小 W 范围之外的信息。在层 k 中的位置 i 的隐藏状态 hi 关注前一层中位置在 i − W 和 i 之间的所有隐藏状态。递归地,hi 可以访问到距离为 W × k 个标记的输入层中的标记,如图所示。在最后一层,使用窗口大小 W = 4096,理论上的注意力跨度大约为131K个标记。在实践中,对于序列长度为16K且 W = 4096,对FlashAttention 和 xFormers 进行的修改使得相对于基准的普通注意力模型速度提升了2倍。

滚动缓存缓冲区。一个固定的注意力跨度意味着我们可以使用滚动缓冲区缩小缓存的大小。缓存的大小为 W,而在时间步 i 的键和值存储在缓存的位置 i mod W 中。因此,当位置 i 大于 W 时,缓存中的过去数值被覆盖,并且缓存的大小停止增加。下图中提供了一个以 W = 3 为例的说明。在32k个标记的序列长度上,这将使缓存的内存使用减少了8倍,而不影响模型的质量

在这里插入图片描述

预先填充和分块。在生成序列时,我们需要逐个预测标记,因为每个标记都取决于前面的标记。然而,提示是预先知道的,我们可以使用提示来预先填充 (k, v) 缓存。如果提示非常大,我们可以将其分成较小的块,并使用每个块来预先填充缓存。为此,我们可以将窗口大小选择为我们的块大小。对于每个块,我们需要计算缓存和块上的注意力。图3展示了注意力掩码如何作用于缓存和块上

在这里插入图片描述

部署与复现

首先安装所需要的依赖,推荐新建 conda 环境安装

# 确保安装了 cuda 版的 pytorch, 如果已经安装了忽视这条
conda install pytorch torchvision torchaudio pytorch-cuda=11.8 -c pytorch -c nvidia
pip install -r ./requirements.txt

须在 linux 环境下运行,因为 Windows 下 bitsandbytes 包为 bitsandbytes-windows 会造成 transfromers 包无法正常识别,且 Windows 没有 Flash Attention

推理

在此处下载模型,解压到 7b-v0.1-hf/1,运行 infer.py,输入你想使用的prompt,即可得到模型的回复。推理部分可在 Windows 下进行,速度稍慢些但可以正常走完

python infer.py --prompt="As a data scientist, can you explain the concept of regularization in machine learning?"

在这里插入图片描述

微调

使用准备好的数据集微调模型。你也可以使用自己的数据集,打开train.py 编辑dataset 的路径即可,该数据的风格为指令由 [INST] [/INST] 包围,进行微调后,模型便可以很好地处理类似的prompt,运行train.py

python train.py

在这里插入图片描述

adapter 融合

微调后的模型可以使用 PeftModel 连接 adapter,重新进行推理。所有代码已经准备在adapter.py中,运行即可,输入数据集风格的 prompt

python adapter.py --prompt="<s>[INST] How become a certified data professional [/INST]"

在这里插入图片描述

文章代码资源点击附件获取

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

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

相关文章

sql-labs靶场第一关测试报告

目录 一、测试环境 1、系统环境 2、使用工具/软件 二、测试目的 三、操作过程 1、寻找注入点 2、注入数据库 ①Order by判断列数 ②判断回显地方 ③爆库&#xff0c;查看数据库名称 ④爆表&#xff0c;查看security库的所有表 ⑤爆列&#xff0c;查看users表的所有…

IT新秀系列:Go语言的兴起

Go语言&#xff08;Golang&#xff09;由谷歌于2007年发起&#xff0c;并于2009年正式开源。它的诞生背景可以追溯到互联网技术的高速发展时期。那时&#xff0c;软件开发面临着多核计算、大规模并发处理、部署和维护效率低下等挑战。作为一种新型的编程语言&#xff0c;Go主要…

win11 升级报 0x80073713 错误

安装错误 - 0x80073713 通常是由于系统文件损坏或 Windows Update 组件异常引起的。‌ 这个问题可能阻止您的系统正常接收和安装更新&#xff0c;影响系统的稳定性和安全性。 可以尝试如下如下方法&#xff1a; 首先&#xff0c;您可以尝试使用命令提示符运行系统文件检查器…

四、Drf认证组件

四、Drf认证组件 4.1 快速使用 from django.shortcuts import render,HttpResponse from rest_framework.response import Response from rest_framework.views import APIView from rest_framework.authentication import BaseAuthentication from rest_framework.exception…

.NET 一款支持冰蝎的免杀WebShell

01阅读须知 此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等&#xff08;包括但不限于&#xff09;进行检测或维护参考&#xff0c;未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失&#xf…

在掌控板中加载人教版信息科技教学指南中的educore库

掌控板中加载educore库 人教信息科技数字资源平台&#xff08;https://ebook.mypep.cn/free&#xff09;中的《信息科技教学指南硬件编程代码说明》文件中提到“本程序说明主要供教学参考。需要可编程主控板须支持运行MicroPython 脚本程序。希望有更多的主控板在固件中支持ed…

uniapp 上了原生的 echarts 图表插件了 兼容性还行

插件地址&#xff1a;echarts - DCloud 插件市场 兼容性这块儿不知道后期会不会支持其他浏览器 H5 的话建议可以用原生的不用这个插件

Geoserver关于忘记密码的解决方法

第一次安装后&#xff0c;如果你设置密码那一栏一直都是默认的话&#xff0c;那么登录密码应该是账户 admin&#xff0c;密码 geoserver 但是&#xff0c;如果你自己设置了密码和账户&#xff0c;登录又登录不上&#xff0c;或者忘记了&#xff0c;有以下方法可以解决。 本质…

Ubuntu22.04之mpv播放器高频快捷键(二百七十)

简介&#xff1a; CSDN博客专家、《Android系统多媒体进阶实战》一书作者 新书发布&#xff1a;《Android系统多媒体进阶实战》&#x1f680; 优质专栏&#xff1a; Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 优质专栏&#xff1a; 多媒体系统工程师系列【…

微软准备了 Windows 11 24H2 ISO “OOBE/BypassNRO“命令依然可用

Windows 11 24H2 可能在未来几周内开始推出。 微软已经要求 OEM 遵循新的指南准备好 Windows 11 24H2 就绪的驱动程序&#xff0c;并且现在已经开始准备媒体文件 (.ISO)。 OEM ISO 的链接已在微软服务器上发布。 一个标有"X23-81971_26100.1742.240906-0331.ge_release_sv…

【Python】探索自然语言处理的利器:THULAC 中文词法分析库详解

THULAC&#xff08;THU Lexical Analyzer for Chinese&#xff09;是清华大学开发的一款中文词法分析工具&#xff0c;集成了分词和词性标注两大功能。THULAC 拥有强大的分词能力和高效的词性标注&#xff0c;适用于多种中文文本处理场景。该工具能够在保证高准确率的同时保持较…

网络编程套接字TCP

前集回顾 上一篇博客中我们写了一个UDP的echo server&#xff0c;是一个回显服务器&#xff1a;请求是啥&#xff0c;响应就是啥 一个正常的服务器&#xff0c;要做三个事情&#xff1a; 读取请求并解析根据请求&#xff0c;计算响应把响应写回到客户端 DatagramPacket res…

基于大数据的大屏高速公路收费系统的开发设计与实现SpringBoot+vue

目录 1. 需求分析 2. 技术选型 3. 系统架构设计 4. 开发实现 5. 代码示例和效果演示 6. 持续优化 由于我国高速公路的建设和发展与国外先进国家有很大差距。在高速公路建成后&#xff0c;收费系统往往选用国外的成熟产品。虽然这些产品在功能上基本满足了高速公路收费的要…

【AI大模型】深入Transformer架构:编码器部分的实现与解析(上)

目录 &#x1f354; 编码器介绍 &#x1f354; 掩码张量 2.1 掩码张量介绍 2.2 掩码张量的作用 2.3 生成掩码张量的代码分析 2.4 掩码张量的可视化 2.5 掩码张量总结 &#x1f354; 注意力机制 3.1 注意力计算规则的代码分析 3.2 带有mask的输入参数&#xff1a; 3.…

电子竞技信息交流平台+ssm论文源码调试讲解

2系统关键技术 2.1 微信小程序 微信小程序&#xff0c;简称小程序&#xff0c;英文名Mini Program&#xff0c;是一种全新的连接用户与服务的方式&#xff0c;可以快速访问、快速传播&#xff0c;并具有良好的使用体验[1]。 小程序的主要开发语言是JavaScript&#xff0c;它与…

利用PDLP扩展线性规划求解能力

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

【Maven】依赖管理,Maven仓库,Maven核心功能

Maven 是一个项目管理工具&#xff0c;基于 POM&#xff08;Project Object Model&#xff0c;项目对象模型&#xff09;的概念&#xff0c;Maven 可以通过一小段描述信息来管理项目的构建&#xff0c;报告和文档的项目管理工具软件 大白话&#xff1a;Maven 是一个项目管理工…

IDEA 2024将Java项目(module)打成JAR包

说明&#xff1a;标题中所说的项目在IDEA中被称为Module(模块)&#xff0c;这里实际上是要将IDEA中的建立的Module打成JAR包。 目标&#xff1a;将module打包为JAR文件&#xff0c;随后在另一Module中导入并使用该JAR包。流程&#xff1a;新建chpt03与test两个Module&#xff0…

解决银河麒麟操作系统V10软件包架构不符问题

TOC &#x1f496;The Begin&#x1f496;点点关注&#xff0c;收藏不迷路&#x1f496; 在银河麒麟桌面操作系统V10中安装软件包时&#xff0c;如果遇到“软件架构与本机架构不符”的提示&#xff0c;可以尝试以下步骤来解决问题&#xff1a; 1. 确认架构一致性 查看本机架构…

小学一年级教材识字表,写字表,笔画名称表,偏旁名称表大全,方便大家学习打印!

前言 本次巧手打字通&#xff08;一起来打字&#xff09;小课堂文章主要为大家带来小学一年级语文识字表、写字表、笔画名称表以及偏旁名称表。这份资料不仅涵盖了一年级语文课程中必须掌握的核心字词&#xff0c;还列出教程里的笔画名称表&#xff0c;旨在帮助孩子们在识字的…