SeqGPT: 开箱即用的开放域自然语言理解大模型

2023-10-29

论文链接:SeqGPT: An Out-of-the-box Large Language Model for Open Domain Sequence Understanding(https://arxiv.org/abs/2308.10529)

GitHub链接:https://github.com/Alibaba-NLP/SeqGPT

体验地址:https://www.modelscope.cn/studios/TTCoding/open_ner/summary

a0263e91a7131c9c0bebb42a41c78ac3.jpeg

概念介绍

自然语言理解(Natural Language Understanding, 简称NLU)任务是帮助机器理解自然语言的任务的总称,与自然语言生成(Natural Language Generation,简称NLG) 合称为自然语言处理(Natural Language Processing,简称NLP)。NLU任务覆盖文本分类、信息抽取、情感分类、关系抽取、事件抽取等子任务,是各类信息处理系统,如信息管理系统、推荐系统、搜索引擎的重要基础组件。

正是由于其重要性和应用的广泛性,NLU一直是NLP从业人员重点研发的方向。在过去几十年中,尤其自BERT诞生后,NLU技术取得长足进步。在各类细分场景中,基于大规模高质量的标注数据,采用监督学习的NLU模型达到了极高的精度。但是,监督模型高昂的定制成本(数据标注成本、研发时间成本等)限制了它的应用范围。除了需求相对固定,有大规模使用可以摊薄成本的场景外,对于成本敏感、数据标注难度大、需求变化快的场景,很难实际落地。因此,研究者一直致力于探索一种没有领域(可以等价为场景)限制的通用模型,即开放域(open domain)模型,期望在任何场景都可以开箱即用。

动机

然而,受限于小模型的泛化性不足,真正的开放域模型如凤毛麟角。随着大规模语言模型,特别是GPT3的出现,研究者看到了理想实现的可能性。ChatGPT的出现则直接将开放域模型变成了现实。用户只需仔细描述自己的需求,无需标注大量数据,即可以获得相对可靠的结果。但是深度使用过类似ChatGPT的做NLU任务用户应该不难发现,还存在一些问题。

  1. 成本问题,NLU任务作为基础性任务,其调用量巨大,长期的调用成本甚至超过了专门研发监督模型的成本。

  2. 数据安全问题,对于一些数据安全管理严格的场景,是不可能将输出传输到外部互联网服务器的。

  3. 推理速度问题,ChatGPT接口的并发数和RT很难支持NLU这一类基础任务每天大规模的实时请求。

  4. 提示工程繁琐,ChatGPT的效果受提示影响很大,对于不同任务需要精心设计提示语。严格来说,不能算开箱即用的开放域模型,因为对不同任务还是有提示设计的成本。

  5. 范围格式可解析性与稳定性差,ChatGPT等模型的输出为自然语言形式,没有严格的模式(即使通过提示语进行限制,依然会有很高比例的例外),给下游任务利用模型结果造成困难。

  6. 闭源模型,无法结合沉淀的业务数据深度定制。通用版本的效果难以满足高准确率需求的场景。

因此,研发一款规模较小(使用成本低、推理速度快)、输入输出简洁(类似于API)、可私有定制的模型,有其必要性。

方法简述

统一任务范式

大规模语言模型输入是序列,包含任务相关知识,然后输出答案。为了用一个模型和一致的输入输出格式解决不同的NLU任务,我们将NLU统一转换成两个原子任务:

  • 抽取:该任务识别输入句子中每个查询的所有相关片段。查询可以是单个单词、短语(如实体类型)或自然语言描述(如机器阅读理解问题)。

  • 分类:该任务旨在将整个输入与给定标签集合中合适的子集相关联,支持多标签分类。

对于每个原子任务,我们设计了一个简单的提示模板(如下图所示),它包含(1)一些控制词,区分输入的不同要素,(2)要分析的具体文本,以及(3)所需要的的标签列表。输出答案则根据原子任务类型格式化为固定且易于解析的形式。特别地,对于抽取任务,答案逐行列出。每行包含用户输入的类型,后面跟着相应答案的短语列表。对于分类任务,答案格式化为单行列表,其中包含提供的标签集合中的答案标签。

645362fa02a7974068a894dc53cd321e.png

通常,大多数任务只涉及其中一个原子任务。NLI和NER是仅依靠分类或提取的任务的示例。然而,有些任务需要将其分解为多个原子任务。例如,关系抽取(RE)首先识别实体,然后进行分类以区分每对实体之间的关系。此外,我们还进行了必要的提示设计工作,以处理特定任务的输入。例如,NLI涉及两个句子(即前提和假设)。我们使用分隔符将它们连接起来。

训练流程

我们基于BLOOMZ训练SeqGPT,并采用两阶段的训练策略,包括预训练(Pre-training, 简称PT)和微调(Fine-tuning, 简称FT),并在每个阶段使用不同的训练数据。在我们的初步实验中,这种策略优于使用PT和FT数据的简单混合训练。训练方式采用标准的因果语言模型(Causal language model, 简称CLM)训练方法,训练参数细节请参考论文。

预训练数据

相关研究证明,丰富数据多样性有利于提升模型的泛化能力。因此,我们构建了一个大规模的预训练(PT)数据集,包含来自多个领域(包括维基百科、新闻和社交媒体等)极其多样化的标签集的数据。我们主要选择了三个任务:分类(CLS)、实体分类(ET)和实体识别(NER)。我们通过调用ChatGPT为每个样本获得伪标签。最终,PT数据集包含1,146,271个实例和817,075个不同的标签。下表列出了详细的统计信息。

eaac97d1fb5d85f1c07405fdfe14cbdc.png

负例采样:由于ChatGPT生成的PT数据缺乏负例标签,即没有答案的标签(抽取任务)或不正确的类别(分类任务),因此不能直接用于训练。我们使用随机抽样的标签来增加PT数据中的负样本。由于标签集规模较大,这些抽样的细粒度标签很可能与输入句子无关(没有相关类型实体或不是对应的目标类别),因此可以安全地假设是负例标签。

微调数据

为了进一步校准模型以执行各类NLU任务并消除PT数据中的错误造成的影响,我们收集了来自不同领域的大规模高质量NLU数据集进行微调。如下图所示,我们的微调(FT)数据集包含110个NLU数据集,涵盖英语和中文两种语言以及10大类任务。除了任务多样性外,领域(包括医学、新闻和与AI助手的对话)的多样性以及标签多样性也保证了数据多样性。每个任务被转化为原子任务,共产生了139个分类原子任务和94个抽取原子任务。我们手动选择了其中一小部分NLU数据集作为零样本评估的评估集。

a1dd3f014fdefd1dbfa7252bc85e2005.png

FT数据集包含大量的数据集,以确保多样性,但与此同时,也引入了数据不平衡的问题。以两个分类数据集为例,IFLYTEK和AG News的平均每个标签的实例数分别为124和31,900。因此,我们为每个数据集-标签对设置了一个配额来平衡数据。对于那些实例数少于配额的数据集-标签对,我们使用整个实例集而不进行上采样。然后我们将所有数据混合在一起,并在训练中均匀地从中采样。

结果分析

评价方式

考虑到语言模型有时会生成合理但不完全匹配的答案,传统的Micro-F1指标对于评估来说不够平滑。为了缓解这个问题并使评估更容忍一些次要缺陷,我们提出将Micro-F1和更平滑的ROUGE分数结合作为整体指标。具体而言,我们将ROUGE-1、ROUGE-2和ROUGE-L的平均值作为ROUGE分数,将Micro-F1和ROUGE分数的平均值作为最终得分。

本文重点评估模型泛化能力,我们将数据集分为held-in和held-out两部分,两部分从数据集层面没有交集。下文如无特殊说明,均为在held-out数据集上效果。为了提高效率,我们从每个测试集拆分中随机抽取48个记录(我们前期的实验证明这个结果与使用完整测试集是无偏的)。此外,在涉及被拆分的任务时,我们报告原子任务的平均分数。

效果对比

cb5d9d4ca48ac2f1968078c905f2e2b2.png

上表中比较了SeqGPT家族和基线模型的测试集性能。我们有以下发现:

(1)最小的SeqGPT-560m在性能上大幅超过ChatGPT,超出了19.1个百分点,证明了我们的框架的有效性,说明小型模型可以学习到强大的自然语言理解能力。需要说明是,ChatGPT的总体得分较低有两方面原因,一是我们没有针对每个任务进行仔细的提示工程,而是采用了和我们构建数据集类似的提示进行发问。二是因为ChatGPT生成的输出格式无法总是严格遵守我们的评估数据格式,自动评估脚本无法处理。因此,我们补充了进行了人工评价,结果参考最后人工评价部分。

(2)通过使用更大的7b1主干模型,平均得分进一步提高到65.5,我们认为这一提升可以归功于更好的复杂推理能力和更多样化的世界知识,这些都是更大的预训练语言模型所带来的。(3)弱监督的超细粒度预训练数据对于较小的模型尤为有帮助。如果不使用预训练数据,SeqGPT-560m的性能从57.2下降到53.9。具体而言,对于需要对实体进行多样化理解的实体分类任务,各个大小的SeqGPT的得分都显著下降。(4)然而,利用预训练数据所实现的性能提升随着模型的增大而减小。我们认为这是因为在我们的预训练数据中的超细粒度知识也可以在LLM的预训练阶段直接学习,并且这些知识会随着预训练LLM模型的增大而更好地学习和保留。

规模缩放实验

3dce344eb64bc676441dedaabf727528.png

ec158402be2310fa38d5e5d0f4579e04.png

1d221d711afea3bce973cfb53ebf1791.png

我们也做了多组缩放实验,分别是:(1)模型参数量缩放;(2)任务数缩放;(3)每个任务的数据量缩放。相应结果如上图展示。可以有以下结论:

  1. 在一定范围内,是符合scalig law的,模型规模越大,数据越多模型效果越好。

  2. 在held-in数据上,模型规模持续增长的边际效益递减,held-out数据集上这个问题没有那么明显。

  3. 任务数的增加对提升held-out效果至关重要,即数据多样性非常重要。

  4. 与3相对的是,每个任务的数据量不是越多越好,边际效应递减甚至为负,因此如果要提升模型效果,多样性优先于数据量。这个多样性体现在任务的多样性、数据领域多样性、相同任务的标签集多样性等。

跨语言实验

3b59ef74c9d1d04e6d7aaf23e64c1b1a.png

我们使用了大量来自英语和中文的训练数据。为了探索每种语言数据的影响以及SeqGPT的跨语言泛化能力,我们进行了跨语言泛化实验(1B7),主要结果如上表所示。我们可以看到,使用单一语言(英语/中文)训练的模型可以推广到另一种语言的任务,并取得较好的性能。比较仅使用英语和使用两种语言的数据训练的结果,我们发现不仅中文任务上效果得到提升,在英语任务也可以得到提升,表明语言之间存在一些共通的能力,可以通过多语言训练阶段学习到。

跨任务实验

2b9ffc86a2b072c340c77e1955f76483.png

尽管在我们对所有任务使用相同的提示模版,但解决不同任务所需的能力是多样的。为了分析SeqGPT在训练期间未见过的任务上的工作方式以及训练任务如何影响不同测试任务的性能,我们使用单一任务数据训练了一系列模型,上图中展示了结果。在大多数评估任务中,当训练和测试任务相同时取得了最高或接近最高的性能。对于NLI任务,结论相反,使用NLI数据训练的模型效果最差。我们认为这是因为虽然我们把NLI任务转化为了分类任务,但其本质是逻辑推理,不同数据集的分类逻辑差别较大,因此模型很难泛化。在EE、MRC和RE上训练的模型可以很好地推广到所有测试任务,这表明解决这些任务所需的多样化知识对其他任务也至关重要。这些任务的数据可以作为针对通用领域自然语言理解的模型的重要训练资源。

人工评价

1709b1859e098beef469e4c542936f7c.png

为了进一步了解我们模型指标上优于ChatGPT的原因,排除格式问题引入的误差,我们对保留的数据集进行了人工评估。评估聘请了十名专业的标注员,并向他们展示了ChatGPT和SeqGPT-7B的答案(隐藏了模型名称)。标注员需要从核心内容上(忽略格式和额外解释性语言)决定哪个模型给出了更好的答案,或者两个模型效果相近。结果如上图所示。从结果可以看出,SeqGPT-7B的确在大多数任务上准确率更好,这证明了使用多样化NLU任务数据的训练模型的收益。此外,我们发现SeqGPT-7B的输出比ChatGPT的输出更简洁,更容易被解析。

总结

本文介绍了SeqGPT,用一个统一的模型,通过将不同的NLU任务转化为两个通用的原子任务来处理。SeqGPT提供了一致的输入输出格式,使其能够通过任意变化的标签集来解决未见过的任务,而不需要繁琐的提示工程而且结果易于解析。我们使用极细粒度的合成数据和各种领域的大量NLU数据集对模型进行训练。训练过程进一步增强了数据平衡和随机采样负标签。无论是自动基准测试还是对未见任务的人工评估,SeqGPT都相对于ChatGPT的有一定优势。此外,我们通过实验揭示了训练任务数量和模型性能之间的对数相关性。我们还评估了SeqGPT在各种任务和语言上的泛化能力。然而,还有一些值得继续深入的问题。比如为什么PT数据无法增强SeqGPT-7B1,而FT数据的增加可以呢?如何生成更多高质量的NLU数据来满足SeqGPT的数据需求?我们希望未来的研究能够解答这些问题,进一步改进开放域NLU模型。

讨论

最后,还想讨论一个从ChatGPT出现就一直被提起的问题:大模型时代,还有必要做原子化的NLU模型的?我们认为这还是有必要的,虽然说一些以NLU为辅助的任务可以使用LLM进行端到端重构,但是还是有大量的场景需要专用的、小的NLU模型。这里举一些例子,抛转引玉。

  1. 受资源、成本、时间要求等限制,无法使用大模型的场景,如端上场景等。

  2. 以NLU为最终目的的场景,从性价比考虑,无需使用通用大模型。如数据挖掘等。

  3. 以NLU为重要组件,整体方案成熟,无需使用LLM重构的场景,如信息检索等。

因此,大模型的出现只是缩小了NLU的使用范围,但对高效高质专用模型的需求依然存在。超算替代不了PC, intel 酷睿也替代不了Arm单片机,其中原因相似。以上仅一家之言,还请各位指教。

一起交流

想和你一起学习进步!『NewBeeNLP』目前已经建立了多个不同方向交流群(机器学习 / 深度学习 / 自然语言处理 / 搜索推荐 / 图网络 / 面试交流 / 等),名额有限,赶紧添加下方微信加入一起讨论交流吧!(注意一定o要备注信息才能通过)

ca97f7e6673bf153700cd4d1cdfd5cc5.jpeg

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SeqGPT: 开箱即用的开放域自然语言理解大模型 的相关文章

  • 内部泄漏,惊现BAT互联网大厂薪资和职级表,你离年薪40W还差多少

    互联网大厂新入职员工各职级薪资对应表 技术线 上面的表格不排除有很极端的收入情况 但至少能囊括一部分同职级的收入 这个表是 技术线 新入职员工的职级和薪资情况 非技术线 如产品 运营 销售等 以及老员工的情况会和图中的范围有所出入 以校招生
  • ESP32开发路程LVGL篇(一)——移植完整过程,花屏问题解决,ST7735显示方向

    目录 移植 准备工作 开始移植 编译运行 花屏问题 ST7735显示方向 LVGL官方文档 文档链接 本文使用屏幕 ST7735 1 8寸 分辨率128 160 本文使用框架 ESP IDF VSCODE 移植 准备工作 下载 lvgl 注
  • keil错误 ERROR:PREPROCESSOR: MACROS TOO NESTED

    1 错误显示 2 找到错误文件夹 3 错误为 h文件写成 c文件 4 更改为 include dmafe h 即可
  • doget和dopost的区别

    doget和dopost的区别 get和post是http协议的两种方法 这两种方法有本质的区别 get只有一个流 参数附加在url后 大小个数有严格限制且只能是字符串 post的参数是通过另外的流传递的 不通过url 所以可以很大 也可以
  • 相关子查询

    文章目录 关联子查询 关键字 EXISTS 和 NOT EXISTS 相关链接 关联子查询 关联子查询 是指子查询的执行依赖于外部查询 通常是因为子查询中的表用到了外部的表 并进行了条件关联 因此每执行一次外部查询 子查询都要重新计算一次
  • Windows Style Builder学习制作笔记(一)

    前言 网上电脑主题风格多样 但总有一些地方不符合个人喜好 Windows Style Builder软件可以根据自身爱好修改主题样式 把主题变成自己喜欢的风格 也可以东拼西凑把不同主题的某些样式拼在一起 目标 制作开始菜单列表伸展 提醒 制
  • 新手——教你一步步搭建selenium框架

    新手 教你一步步搭建selenium框架 一 准备工作 1 安装python 去官网 https www python org 下载 安装任意版本的python 接下来去我的电脑 属性 高级设置去配置一下python的环境变量 找到环境变量
  • Android开发中尺寸单位

    手机尺寸相关概念 手机的尺寸 屏幕对角线的长度 单位为英寸 2 54cm 手机分辨率 屏幕能显示的像素的数量 一般用在长方向上数量 宽方向上数量来表达 手机的像素密度 pixels per inch 也称ppi 即每英寸屏幕能显示的像素数
  • Mybatis中提取公共查询条件

    我们在使用mybatis写sql语句的时候 经常会遇到很多sql都会有拥有某些相同的查询条件 如果只是一个两个还感觉不到什么 可是如果查询语句特别多 而且又都拥有共同的查询条件的时候 我们可以考虑将中相同的条件抽取出来 然后封装一下 在需要
  • 商用服务器性能,多核服务器性能实测篇—浪潮

    多核服务器性能实测篇 浪潮 计算机世界实验室 李献 至强5500多 核处理器尽管问世只有半年多时间 但目前基于它的服务器产品在市场上已经很常见了 可以说在主流的1 2路服务器新品中都可以看到它的身影 而此间的旗舰机型基本上都定位为2U高度的
  • Tomcat的两种安装方式(zip安装和exe安装)

    注意 安装Tomcat需要先安装jdk 一 zip解压安装 1 我们进入Tomcat官网 http tomcat apache org 此处我们选择Tomcat 9 的64位zip解压式的安装包 2 下载后解压目录如下 3 我们复制tomc
  • CSS transform变换(二)

    5 perspective 设置透视距离 属性定义 3D 元素距视图的距离 以像素计 该属性允许您改变 3D 元素查看 3D 元素的视图 透视原理 近大远小 perspective 500px 值越小 视点越近 图像越大 当为元素定义 pe
  • 论文笔记:BridgeDPI: a novel Graph Neural Network for predicting drug–protein interactions

    2022 Bioinformatics 1 introduction 使用图神经网络预测药物和蛋白质的相互作用 DPI drug protein interaction 目前预测药物和蛋白质相互作用的方式主要有以下几种 基于对接的方法 do
  • 力扣431.等差数列划分 差分法无需DP击败100%

    题目 如果一个数列 至少有三个元素 并且任意两个相邻元素之差相同 则称该数列为等差数列 例如 1 3 5 7 9 7 7 7 7 和 3 1 5 9 都是等差数列 给你一个整数数组 nums 返回数组 nums 中所有为等差数组的 子数组
  • ROS之基于TX2的视频图像的发布与订阅

    ROS订阅并发布图像节点 该程序实现tx2板上opencv获取USB相机图像 并发布为一个图像消息以供PC上的从机获取并显示 环境 ubuntu 1604 ROS kinetic 平台 TX2 相机 罗技C270 头文件 include
  • 记vue input框获取剪切板图片,进行上传

    记vue input框获取剪切板图片 进行上传 样式参考微博网页版私信聊天上传剪切板图片
  • vue校验生僻字

    前言 在使用正则校验姓名的时候 会发现 很多生僻字根本校验不到 这里提供方法 经测试可用 方法 methods utf8ToUtf16 h l var sum h 0xD800 0x400 l 0xDC00 0x10000 return s
  • 国产的CEC-IDE和Visual Studio Code

    1 前言这个CEC号称自主国产 很多文章已经评论过了 vscode是微软官方开源编辑器 注意它不是编译器 界面UI90 以上的相似 有人拿出了vscode跟它的对比 基本上是100 的复制照抄 这里不再赘述 这里想要说的是这种东西的影响 2
  • 动态数组打印杨辉三角

    一般情况下 我们习惯性的将数组定义为静态数组 例如int arr 3 6 当数组大小需要随时改变的时候 对于静态数组 我们需要在main函数下去修改数组的大小 这样反复修改很麻烦 动态数组 malloc 使得数组可以随意改变 静态数组 在栈
  • 从页面代码看火车票订票系统 12306的代码质量

随机推荐

  • onclick判断组件调用_从子组件Onclick更新状态

    onclick判断组件调用 How to update the state of a parent component from a child component is one of the most commonly asked Rea
  • stm32 HAL工程KE架构

    在写了很多代码之后 如果前期没规划好 后期维护是一个大难题 所以参考了RTthread源码和linux驱动之后 写了这个嵌入式项目架构 分为了APL BLL FML HDL BSP HARDWARE KE架构在stm32的应用 如果是stm
  • linux运维笔记:epel源简介

    EPEL是一个由特别兴趣小组创建 维护并管理的 针对红帽企业版 Linux RHEL 及其衍生发行版 比如 CentOS Scientific Linux Oracle Enterprise Linux 的一个高质量附加软件包项目 官方网址
  • 24点卡牌游戏(C++)

    一 题目 24点游戏是经典的纸牌益智游戏 mfc是一个很优秀的同学 他学习认真 经常刷题 偶尔也会打打游戏来放松omfc最喜欢卡牌类型游戏24点 游戏的规则是 你会被分配抽取N张扑克牌 分别从A K 其中我们规定牌面为A的牌 其数值为1点
  • Java8新特性-Stream

    1 1 Stream的创建 1 1 1 Stream of 创建Stream最简单的方式是直接用Stream of 静态方法 传入可变参数即创建了一个能输出确定元素的Stream public class Main public stati
  • SD、SDIO和MMC接口基础和规范介绍

    在MMC规范发展的过程中出现了很多的名词 如SDHC SDIO SDXC等 每次看到这些不同的规范都有点懵 也很容易搞混 所以本篇文章就来介绍一下MMC规范发展过程中出现的一些新的规范 并详细地理解一下SD和SDIO 文章目录 1 MMC规
  • 【cdk的使用】C/C++ TCP 粘包 拆包 及解决方案

    Github地址 https github com wujin1989 cdk TCP因为没有边界 所以会有粘包的问题 看下面代码 server c include cdk h include
  • 怎样利用 python 学习爬虫?

    一文搞懂Python gt 爬虫需要学什么 附送课程 笔记 关于Python爬虫 我们需要学 1 Python基础语法学习 基础知识 首先 你需要熟悉Python的基本语法 包括变量 数据类型 条件语句 循环 函数等 2 对HTML页面的内
  • 后缀mcp用什么软件打开_如何打开MCP文件?

    下载通用文件查看器 File Magic 安装可选产品 File Magic Solvusoft EULA Privacy Policy Terms Uninstall 步骤1 尝试不同的软件程序 如果无法打开MCP文件 则可能没有在计算机
  • JS实现插入排序

    1 算法简介 插入排序的工作原理就是将未排序数据 对已排序数据序列从后向前扫描 找到对应的位置并插入 插入排序通常采用占位的形式 空间复杂度为O 1 因此 在从后向前扫描的过程中 需要反复的把已排序的元素逐步向后挪位 为新插入元素提供插入的
  • xpath案例-解析所有城市名称

    第一种方法把热门城市和所有城市分开来考虑 import requests from lxml import etree if name main headers User Agent Mozilla 5 0 Windows NT 10 0
  • MQTT协议学习:1、MQTT协议了解

    MQTT协议学习 1 MQTT协议了解 文章目录 MQTT协议学习 1 MQTT协议了解 1 前言 2 MQTT简介 1 概述 2 相关名称 3 协议应用 4 开源方案 3 适用于FreeRTOS的MQTT库 4 最后 1 前言 MQTT可
  • CNN模型之LeNet-5

    一 介绍 卷积神经网络是当前深度学习领域比较火的研究方法 其应用主要是在计算机视觉上 例如 图像分类 目标检测 人脸识别等等 并且已经在这些领域取得了相当大的成就 本文主要介绍卷积神经网络的开篇之作 LeNet 5 LeNet 5由Y Le
  • vue在线预览word、excel、PDF

    1 安装依赖 docx文档预览组件 npm install vue office docx vue demi 0 13 11 S excel文档预览组件 npm install vue office excel vue demi 0 13
  • P4 晶体管四种工作状态+静态分析【更新】

    gt 晶体管四种工作状态 放大 饱和 截止 倒置 gt 静态分析 定量分析晶体管处于何种工作状态 注意 不安全区暂时不用关注 倒置状态暂时也可以不关注 放大区 之所以称为放大区 因为在这个区域 iB 与iC满足放大beta倍的关系 这是表面
  • getopt函数(未更新完)

    2023年7月28日 周五上午 这是我目前碰到过的比较复杂的函数之一 为了彻底弄懂这个函数 我花了几个小时 为了更好的说明这个函数 之后我可能会录制讲解视频并上传到B站 如果我上传到B站 我会在文章添加视频链接的 内容太多了 没写完 有空再
  • java Logback输出日志内容到文件

    要将logger info的信息输出到文件 您可以使用Logback配置 下面是一个简单的示例 1 首先 在您的项目中添加Logback依赖 例如在Maven项目中的pom xml文件中添加以下代码
  • 基于OpenCV的交通标志识别(SVM+Hu不变矩, 部分测试源代码)

    最近跟着老师做一个交通识别的项目 总算明白了一个道理 这水啊 不去亲自蹚上一遭就不知道有多深 更根本的原因当然还是自己学的不够扎实 不够好 经过了一个寒假的折磨 终于做出了一个原型来 想到了自己当时被折磨的头疼的样子 想着将一部分源代码发上
  • 前端post请求中body和query传参的区别

    前端发送请求最常用的是get请求还有post请求 get请求只能传query参数 query参数都是拼在请求地址上的 post可以传body和query两种形式的参数 如下 编辑项目列表 export function editProjec
  • SeqGPT: 开箱即用的开放域自然语言理解大模型

    论文链接 SeqGPT An Out of the box Large Language Model for Open Domain Sequence Understanding https arxiv org abs 2308 10529