当前位置: 首页 > news >正文

网站导航字体大小/线上广告推广平台

网站导航字体大小,线上广告推广平台,能挣钱的平台 正规的,乌鲁木齐疫情最新消息网易前言 如此前这篇文章《学术论文GPT的源码解读与微调:从chatpaper、gpt_academic到七月论文审稿GPT》中的第三部分所述,对于论文的摘要/总结、对话、翻译、语法检查而言,市面上的学术论文GPT的效果虽暂未有多好,可至少还过得去&am…

前言

如此前这篇文章《学术论文GPT的源码解读与微调:从chatpaper、gpt_academic到七月论文审稿GPT》中的第三部分所述,对于论文的摘要/总结、对话、翻译、语法检查而言,市面上的学术论文GPT的效果虽暂未有多好,可至少还过得去,而如果涉及到论文的修订/审稿,则市面上已有的学术论文GPT的效果则大打折扣

原因在哪呢?本质原因在于无论什么功能,它们基本都是基于API实现的,而关键是API毕竟不是万能的,API做翻译/总结/对话还行,但如果要对论文提出审稿意见,则API就捉襟见肘了,故为实现更好的review效果,需要使用特定的对齐数据集进行微调来获得具备优秀review能力的模型

继而,我们在第一版中,做了以下三件事

  1. 爬取了3万多篇paper、十几万的review数据,并对3万多篇PDF形式的paper做解析
    当然,paper中有被接收的、也有被拒绝的
  2. 为提高数据质量,针对paper和review做了一系列数据处理
  3. 基于RWKV进行微调,然因其遗忘机制比较严重,故最终效果不达预期

所以,进入Q4后,我司论文审稿GPT的项目团队开始做第二版(我司目前在不断迭代三大LLM项目,每个项目各自一个项目组,除了论文审稿GPT之外,还有:AIGC模特生成系统、企业知识库问答),并着重做以下三大方面的优化

  • 数据的解析与处理的优化,meta的一个ocr 能提取出LaTeX
  • 借鉴GPT4做审稿人那篇论文,让ChatGPT API帮爬到的review语料,梳理出来 以下4个方面的内容
    1 重要性和新颖性,2 论文被接受的原因,3 论文被拒绝的原因,4 改进建议
  • 模型本身的优化,比如mistral或llama longlora

第一部分 多种PDF数据的解析

1.1 Meta nougat

nougat是Meta推出的学术PDF解析工具,其主页和代码仓库分别为

  • nougat主页
    https://facebookresearch.github.io/nougat/
  • nougat仓库
    https://github.com/facebookresearch/nougat

对比下

  • nougat比较好的地方在于可以把公式拆解成latex,很多模型底模会学习到latex的规则,会较之直接地希腊符号好些,另外就是识别出来的内容可以通过“#”符号来拆解文本段
    缺陷就是效率很低、非常慢,拿共约80页的3篇pdf来解析的话,大概需要2分钟,且占用20G显存,到时候如果要应用化,要让用户传pdf解析的话,部署可能也会有点难度
  • sciencebeam的话就是快不少,同样量级的3篇大约一分钟内都可以完成,和第一版用的SciPDF差不多,只需要cpu就可以驱动起来了

当然,还要考虑的是解析器格式化的粒度,比如正文拆成了什么样子的部分,后续我们需不需要对正文的特定部分专门取出来做处理,如果格式化粒度不好的话,可能会比较难取出来

// 待更

第二部分 第二版数据处理的优化:借鉴GPT4审稿的思路

2.1 斯坦福:让GPT4首次当论文的审稿人

近日,来自斯坦福大学等机构的研究者把数千篇来自Nature、ICLR等的顶会文章丢给了GPT-4,让它生成评审意见、修改建议,然后和人类审稿人给出的意见相比较

  • 在GPT4给出的意见中,超50%和至少一名人类审稿人一致,并且超过82.4%的作者表示,GPT-4给出的意见相当有帮助
  • 这个工作总结在这篇论文中《Can large language models provide useful feedback on research papers? A large-scale empirical analysis》,这是其对应的代码仓库

所以,怎样让LLM给你审稿呢?具体来说,如下图所示

  1. 爬取PDF语料
  2. 接着,解析PDF论文的标题、摘要、图形、表格标题、主要文本
  3. 然后告诉GPT-4,你需要遵循业内顶尖的期刊会议的审稿反馈形式,包括四个部分
    成果是否重要、是否新颖(signifcance andnovelty)
    论文被接受的理由(potential reasons for acceptance)
    论文被拒的理由(potential reasons for rejection)
    改进建议(suggestions for improvement)
  4. 最终,GPT-4针对上图中的这篇论文一针见血地指出:虽然论文提及了模态差距现象,但并没有提出缩小差距的方法,也没有证明这样做的好处

2.2 为了让模型对review的学习更有迹可循:规划Review的格式很重要(需要做选取和清洗)

上一节介绍的斯坦福这个让GPT4当审稿人的工作,对我司做论文审稿GPT还挺有启发的

  1. 正向看,说明我司这个方向是对的,至少GPT4的有效意见超过50%
  2. 反向看,说明即便强如GPT4,其API的效果还是有限:近一半意见没被采纳,证明我司做审稿微调的必要性、价值性所在
  3. 审稿语料的组织 也还挺关键的,好让模型学习起来有条条框框 有条理 分个 1 2 3 4 不混乱
    比如要是我们爬取到的审稿语料 也能组织成如下这4块,我觉得 就很强了,模型学习起来 会很快
    1) 成果是否重要、是否新颖
    2) 论文被接受的理由
    3) 论文被拒的理由
    4) 改进建议

对于上面的“第三大点 审稿语料的组织”,我们(特别是阿荀)创造性的想出来一个思路,即让通过提示模板让ChatGPT来帮忙梳理咱们爬的审稿语料,好把审稿语料 梳理出来上面所说的4个方面的常见review意见

那怎么设计这个提示模板呢?借鉴上节中斯坦福的工作,提示模板可以如下设计

// 待更


第三部分 从Mistral、Zephyr到LongLora

3.1 Mistral 7B:通过分组查询注意力 + 滑动窗口注意力超越13B模型

今年5月,DeepMind和Meta的三位前员工在巴黎共同创立了Mistral AI(其CEO Arthur Mensch此前在DeepMind巴黎工作,CTO Timothée Lacroix和首席科学家Guillaume Lample则在Meta共同参与过LLaMA一代的研发,很像当年OpenAI的部分员工出走成立Anthropic啊),今年10月,他们发布了第一个基座大模型,即Mistral 7B

据其对应的论文《Mistral 7B》称( 另,这是其GitHub地址)

  1. Mistral 7B在所有评估基准中均胜过了目前最好的13B参数模型(Llama 2),并在推理、数学和代码生成方面超越了发布的34B参数模型(Llama 34B)
    Mistral 7B outperforms the previous best 13B model (Llama 2, [26]) across all testedbenchmarks, and surpasses the best 34B model (LLaMa 34B, [25]) in mathematics and codegeneration.
  2. 该模型采用了分组查询注意力(GQA),GQA显著加快了推理速度,还减少了解码期间的内存需求,允许更高的批处理大小,从而提高吞吐量
    GQA significantly accelerates the inference speed, and also reduces the memory requirement during decoding, allowing for higher batch sizes hence higher throughput

    关于GQA,请参见《一文通透各种注意力:从多头注意力MHA到分组查询注意力GQA、多查询注意力MQA》
  3. 同时结合滑动窗口注意力(slidingwindow attention,简称SWA)以有效处理任意长度的序列,
    SWA is designed to handle longer sequences more effectively at a reduced computational cost

此外,作者提供了一个针对遵循指令进行了微调的模型,名为Mistral 7B-Instruct,它在人工和自动化基准测试中均超过了LLaMA 2 13B-chat模型

3.1.1 滑动窗口注意力:扩展上下文长度

vanilla attention的操作次数在序列长度上是二次型的,记忆量随着token数量线性增加。在推理时,由于缓存可用性的降低,这导致了更高的延迟和更小的吞吐量(The number of operations in vanilla attention is quadratic in the sequence length, and the memory increases linearly with the number of tokens. At inference time, this incurs higherlatency and smaller throughput due to reduced cache availability)

为了缓解这个问题,我们使用滑动窗口注意力(sliding window attention)

  1. 每个token最多可以关注来自上一层的W个token(上图中,W = 3)。请注意,滑动窗口之外的token仍然影响下一个单词预测
    each token can attend to at most W tokens from the previous layer (here, W = 3). Note that tokensoutside the sliding window still influence next word prediction.

    举个例子,在我们面对这个序列时:The cat sat on the
    如果是标准注意力,在计算最后一个token “the”时,得计算the本身所对应的query与整个上文每个token对应的key的内积,当序列长度一长时,该计算量还是比较大的
    但如果是滑动窗口注意力,则在计算最后一个token “the”时,只需计算the本身所对应的query与上文中3个token对应的key的内积
  2. 在每个注意力层,信息可以向前移动W个token。因此,在k层注意力之后,信息最多可以向前移动k个×W个token
    At each attention layer, information can moveforward by W tokens. Hence, after k attention layers, information can move forward by up to k ×W tokens.

3.1.2 滚动缓冲区缓存(Rolling Buffer Cache)

固定的注意力长度意味着我们可以使用滚动缓存来限制我们的缓存大小(A fixed attention span means that we can limit our cache size using a rollingbuffer cache)

  1. 缓存的大小是固定的W,时间步长i的键和值存储在缓存的位置i mod W中。因此,当位置i大于W时,缓存中过去的值就会被覆盖,缓存的大小就会停止增加
    The cache has a fixed size of W, and the keys and values for the timestep i are storedin position i mod W of the cache. As a result, when the position i is larger than W, past valuesin the cache are overwritten, and the size of the cache stops increasing

    以“The cat sat on the mat”为例..
    当 i = 0 时,指The,0 mod  3=0
    当 i = 1 时,指cat,1 mod  3=1
    当 i = 2 时,指sat,2 mod  3=2

    当 i = 3 时,指on,3 mod  3=0
    当 i = 4 时,指the,4 mod  3=1
    当 i = 5 时,指mat,5 mod 3 = 2
  2. 在32k token的序列长度上,这减少了8倍的缓存内存使用,而不影响模型质量
    On a sequence length of 32k tokens, this reduces the cache memory usageby 8x, without impacting the model quality.

如果把缓冲区比作一座仓库,每存进一个新东西,都会占据相应的位置,而仓库的总容量是固定的,当仓库被装满时,就会把最早放入的东西移除,让新的物品继续进仓,相当于入仓时间更接近当前时间的物品则会留在仓库中,如此,即能在节约资源的同时保留一定长度的序列

3.1.3 预填充与分块:减少重复运算

在生成序列时,我们需要一个一个地预测token,因为每个token都以前面的token为条件。然而,prompt是提前知道的,我们可以用prompt预填充(k, v)缓存,即

  1. 如果prompt非常大,我们可以把它分成更小的块,用每个块预填充缓存。为此,我们可以选择窗口大小作为我们的分块大小。因此,对于每个块,我们需要计算缓存和块上的注意力
  2. 下图展示了注意力掩码在缓存和分块上的工作原理

    在预填充缓存时,长序列被分块,以限制内存使用
    我们把一个序列分成三个块来处理,“The cat sat on”,“the mat and saw”,“the dog go to”。上图中显示了第三块(“the dog go to”)发生的情况:它使用因果掩码(最右块)来关注自己,使用滑动窗口(中心块)来关注缓存,并且不关注过去的token,因为它们在滑动窗口之外(左块)

// 待更

3.2 LongLora

// 待更


参考文献与推荐阅读

  1. GPT4当审稿人那篇论文的全文翻译:【斯坦福大学最新研究】使用大语言模型生成审稿意见
  2. GPT-4竟成Nature审稿人?斯坦福清华校友近5000篇论文实测,超50%结果和人类评审一致
  3. 几篇mistral-7B的中文解读
    从开源LLM中学模型架构优化-Mistral 7B
    开源社区新宠Mistral,最好的7B模型
  4. Mistral 7B-来自号称“欧洲OpenAI”Mistral AI团队发布的最强7B模型

创作、修改、完善记录

  1. 11.2日,开写本文
  2. 11.3日,侧重写第二部分、GPT4审稿的思路
  3. 11.4日,侧重写第三部分中的Mistral 7B
  4. 11.5日,继续完善Mistral 7B的部分

相关文章:

七月论文审稿GPT第2版:从Meta Nougat、GPT4审稿到Mistral、LongLora

前言 如此前这篇文章《学术论文GPT的源码解读与微调:从chatpaper、gpt_academic到七月论文审稿GPT》中的第三部分所述,对于论文的摘要/总结、对话、翻译、语法检查而言,市面上的学术论文GPT的效果虽暂未有多好,可至少还过得去&am…...

Unreal Engine 学习笔记 (1)—— 日夜交替

1.创建关卡 文件新建关卡空白关卡保存关卡(命名为NewWorld) 2.创建蓝图类 创建蓝图类(继承自Actor) 命名为SunAndMoon 3.编辑SunAndMoon蓝图类 添加SkyAtmosphere添加SkyLight添加DirectionalLight将DirectionalLight重命名为…...

leetcode:189. 轮转数组(python3解法)

难度:中等 给定一个整数数组 nums,将数组中的元素向右轮转 k 个位置,其中 k 是非负数。 示例 1: 输入: nums [1,2,3,4,5,6,7], k 3 输出: [5,6,7,1,2,3,4]解释: 向右轮转 1 步: [7,1,2,3,4,5,6] 向右轮转 2 步: [6,7,1,2,3,4,5] 向右轮转 3…...

基于PHP + MySQL实现的文章内容管理系统源码+数据库,采用前后端分离的模板和标签化方式

文章内容管理系统 dc-article是一个通用的文章内容管理系统,基于开源的caozha-admin开发,采用前后端分离的模板和标签化方式,支持文章内容管理、栏目分类管理、评论管理、友情链接管理、碎片管理、远程图片获取器等功能。可以使用本系统很轻…...

这可能是全网最晚的低代码技术总结

低代码的发展一向结伴着质疑前行,一些人认为低代码平台限制了开发人员的创新能力,使得开发过程变得过于简单,缺乏深度的定制和灵活性。他们担心,低代码平台可能只适合于简单的应用程序,无法满足复杂业务需求。另一面&a…...

leetcode2054

leetcode 2054 #include <iostream> #include <vector> #include <tuple> #include <algorithm>using namespace std;struct Event {// 时间戳int ts;// op 0 表示左边界&#xff0c;op 1 表示右边界int op;int val;Event(int _ts, int _op, int _v…...

c面向对象编码风格(上)

面向对象和面向过程的基本概念 面向对象和面向过程是两种不同的编程范式&#xff0c;它们在软件开发中用于组织和设计代码的方式。 面向过程编程&#xff08;Procedural Programming&#xff09;是一种以过程&#xff08;函数、方法&#xff09;为核心的编程方式。在面向过程…...

【星海出品】VUE(六)

插槽Slots 传递属性 attribute App,vue <script> import SlotsBase from "./components/SlotsBase.vue" import SlotsTow from "./components/SlotsTow.vue" export default {components:{SlotsBase,SlotsTow},data(){return{message: "父集 m…...

华为政企闪存存储产品集

产品类型产品型号产品说明 maintainProductOceanStor Dorado 2000 SAS 128GB华为OceanStor Dorado 2000是一款简单、可靠、绿色的全闪存存储系统&#xff0c;极简部署、智能运维、轻量便捷&#xff0c;功能齐全&#xff0c;广泛适用于虚拟化、数据库、办公自动化、分支机构等…...

【项目源码】反编译Java字节码生成源码

【项目源码】反编译Java字节码生成源码 文章目录 【项目源码】反编译Java字节码生成源码参考资料一、什么是反编译&#xff1f;二、反编译Java字节码文件1. &#xff08;不一定有效&#xff09; 使用IDEA提供的插件 - Java Bytecode Decomplier2. &#xff08;推荐&#xff09;…...

技术分享 | 测试人员必须掌握的测试用例

测试用例&#xff08;Test Case&#xff09;是为特定的目的而设计的一组测试输入、执行条件和预期结果的文档。它的作用其实就是为了测试是否满足某个特定需求。测试用例是指导测试工作进行的依据。 测试用例的组成 标准的测试用例通常由以下几个模块组成&#xff1a; 用例编…...

Rabbit的高可用机制

RabbitMQ是一个消息中间件&#xff0c;提供了多种高可用机制来确保系统在出现故障时仍能保持可用性。以下是RabbitMQ的一些高可用机制&#xff1a; 镜像队列&#xff08;Mirrored Queues&#xff09;&#xff1a; 作用&#xff1a; 镜像队列可以在集群中复制队列的消息到多个节…...

函数调用指令, 返回机制分析(x86_64)

预备 #include <stdio.h>int addDetail(int a, int b) {return a b; }int add(int a, int b) {int c;c addDetail(a, b);return c; }int main(int argc, char *argv[]) {int sum;sum add(3, 5);printf("sum %d\n", sum);return 0; }汇编 main add addDeta…...

mkl库配置

cmake卸载旧版本&#xff0c;并升级 https://blog.csdn.net/weixin_41010198/article/details/109343347 pip install -U cmake3.25.2BUILDMODEDEBUG . build.sh安装mkl https://www.intel.com/content/www/us/en/developer/tools/oneapi/onemkl-download.html?operatingsyst…...

MPLAB X IDE 仿真打断点提示已中断的断点?

这种中间带裂缝的是无效断点。 原因可能与XC编译器的优化有关&#xff0c;最后生成的汇编与C语言并不是一一对应的(官方给的解释是效率高)。所以这一行C语言转换的汇编代码可能并不在这个位置&#xff0c;也可能与其它汇编合并后根本就没有 我的解决方法是把优化等级调到最低&a…...

Appium 移动端自动化测试,触摸(TouchAction) 与多点触控(MultiAction)

一、触摸 TouchAction 在所有的 Appium 客户端库里&#xff0c;TouchAction 触摸对象被创建并被赋予一连串的事件。 规范里可用的事件有&#xff1a; * 短按(press) * 释放(release) * 移动到(moveTo) * 点击(tap) * 等待(wait) * 长按(longPress) * 取消(cancel) * 执行(per…...

大厂面试题-innoDB如何解决幻读

从三个方面来回答&#xff1a; 1、Mysql的事务隔离级别 Mysql有四种事务隔离级别&#xff0c;这四种隔离级别代表当存在多个事务并发冲突时&#xff0c;可能出现的脏读、不可重复读、幻读的问题。 其中InnoDB在RR的隔离级别下&#xff0c;解决了幻读的问题。 2、什么是幻读&…...

深度学习之基于Tensorflow人脸面部表情识别系统

欢迎大家点赞、收藏、关注、评论啦 &#xff0c;由于篇幅有限&#xff0c;只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 基于Tensorflow的人脸面部表情识别系统是一种基于深度学习技术的图像处理应用&#xff0c;该系统主要通过人脸图像数…...

centos7安装oxidized备份软件

首先需要提前下载ruby&#xff0c;因为默认yum安装的版本太低 https://cache.ruby-lang.org/pub/ruby/3.1/ruby-3.1.0.tar.gz 1、yum remove ruby ruby-devel&#xff08;有就卸载&#xff0c;没有则忽略&#xff09; 2、将下载好的ruby包解压到/opt下 [rootoxidized ruby-…...

技术分享 | App测试时常用的adb命令你都掌握了哪些呢?

adb 全称为 Android Debug Bridge&#xff08;Android 调试桥&#xff09;&#xff0c;是 Android SDK 中提供的用于管理 Android 模拟器或真机的工具。 adb 是一种功能强大的命令行工具&#xff0c;可让 PC 端与 Android 设备进行通信。adb 命令可执行各种设备操作&#xff0…...

JMeter的使用——傻瓜式学习【下】

目录 前言 1、自动录制脚本 1.1、原理 1.2、JMeter脚本录制 2、JMeter直连数据库 2.1、直连数据库的作用 2.2、JMeter直连数据库的步骤 案例&#xff1a; 3、JMeter的逻辑控制器 3.1、if控制器 案例&#xff1a; 3.2、循环控制器 案例&#xff1a; 3.3、ForEach控…...

嵌入式中利用VS Code 远程开发原理

VS Code几乎是所有的程序员必备的工具之一&#xff0c;据说全球一般的开发者都使用过VS Code这款工具。 今天分享一篇 VS Code 实现远程办公相关的文章。 1、概 述 通常&#xff0c;我们都是每天到工作的办公室进行办公&#xff0c;但是&#xff0c;如果下班回家&#x…...

【多媒体文件格式】MP4、MPG、TS、3GP、3G2、3GPA

MP4 mp4或称MPEG-4 Part 14&#xff0c;是一种多媒体容器格式&#xff0c;扩展名为.mp4。 历史[6]&#xff1a; 2001年&#xff0c;apple的QuickTime格式&#xff0c;.qt和.mov的后缀名。2001年&#xff0c;MPEG-4 Part1&#xff0c;把基于QuickTime的box布局的容器格式添加…...

学习Opencv(蝴蝶书/C++)相关——1. 前言 和 第1章.概述

文章目录 1. 整体架构1.1 OpenCV3.01.2 Opencv4.xX. 在线文档X.1 Opencv cheatsheet(小抄)1. 整体架构 1.1 OpenCV3.0 对于Opencv3.x版本,网上最常见的图,图自OpenCV Tutorial-Itseez 现在已经不是500+的算法了,而是2500+,详见:About...

【数据分享】8个城市的共享单车数据(数据量约10亿条\免费获取)

共享单车数据是我们最常使用的交通大数据之一&#xff0c;但是共享单车数据没有公开的获取渠道&#xff0c;有些学者可能能通过与相关机构合作拿到数据&#xff0c;但是对于绝大多数普通人是没有这个机会的&#xff01;那就完全没有机会能获取到共享单车数据了吗&#xff1f; …...

软件测试进阶篇----移动端测试

一、移动端测试概述 移动端测试不是一个新的领域&#xff0c;所采用的测试的理论、原则和方法、技术和之前web的是一样的。 移动端的手工测试&#xff0c;和web端的点点点是一样的。 移动端的自动化测试&#xff0c;pythonappiumunittest/pytestddtBeautifulReport/alluregi…...

偏序关系用分治优化建图:ARC165F

https://atcoder.jp/contests/arc165/tasks/arc165_f 首先可以建图&#xff0c;然后变成求字典序最小的的拓扑排序 然后发现这样复杂度会炸&#xff0c;观察连边的条件是什么&#xff1a; l i < l j l_i<l_j li​<lj​ r i < r j r_i<r_j ri​<rj​ 这是个…...

StripedFly恶意软件:悄无声息运行5年,感染百万设备

导语&#xff1a;最近&#xff0c;俄罗斯网络安全公司Kaspersky发布的一项调查显示&#xff0c;一种名为StripedFly的高级恶意软件伪装成加密货币挖矿程序&#xff0c;悄无声息地在全球范围内运行了超过5年&#xff0c;感染了100万台设备。这是一种复杂的模块化框架&#xff0c…...

Flink SQL DataGen Connector 示例

Flink SQL DataGen Connector 示例 1、概述 使用 Flink SQL DataGen Connector&#xff0c;可以快速地生成符合规则的测试数据&#xff0c;可以在不依赖真实数据的情况下进行开发和测试。 2、使用示例 创建一个名为 “users” 的表&#xff0c;包含 6 个字段&#xff1a;id…...

【监控指标】监控系统-prometheus、grafana。容器化部署。go语言 gin框架、gRPC框架的集成

文章目录 一、监控有哪些指标二、prometheus、grafana架构Prometheus 组件Grafana 组件架构优点 三、安装prometheus和node-exporter1. docker pull镜像2. 启动node-exporter3. 启动prometheus 四、promql基本语法五、grafana的安装和使用1. 新建空文件夹grafana-storage&#…...