腾讯版GPT-4o平替方案:VITA

news2024/12/27 13:57:23

引言

庙内无僧风扫地,寺中少灯月照明。

小伙伴们好,我是微信公众号《小窗幽记机器学习》的小编:买黑神话的小男孩,紧接卖黑神话的小女孩的小作文,今天这篇小作文主要介绍腾讯开源(截至2024年8月25日尚未真正开源,只是在github创建了Repository)的GPT-4o平替方案:VITA。

简介

VITA是腾讯优图实验室在交互式全模态大语言模型方面的一次新探索。近年来,大语言模型(LLM)和多模态大语言模型(MLLM)的快速发展给人工智能领域带来了巨大变革。特别是GPT-4等模型展现出的强大多模态能力和自然交互体验,为MLLM的实际应用奠定了基础。然而,开源社区在这一领域还存在明显的差距。为了推动开源MLLM的发展,来自腾讯优图实验室等机构的研究人员提出了VITA模型,这是首个开源的能够同时处理视频、图像、文本和音频的多模态大语言模型,并且具备先进的多模态交互体验。

VITA模型的主要特点和创新点包括:

  1. 全模态处理能力: VITA可以同时处理视频、图像、文本和音频四种模态的输入,实现了真正的全模态融合。

  2. 双语理解: VITA在英语和中文两种语言上都具备出色的理解和生成能力。

  3. 自然交互体验: VITA引入了无唤醒交互和音频打断等创新交互功能,大幅提升了人机交互的自然度。

  4. 开源可用: VITA完全开源了模型、训练代码和推理部署框架,为开源社区提供了宝贵的资源。

项目主页:

https://vita-home.github.io/

论文地址:

https://arxiv.org/abs/2408.05211

代码仓库:

https://github.com/VITA-MLLM/VITA (截至2024年8月25日,尚未上传正式代码),静待花开~

VITA

在创新交互方面,VITA模型在多模态交互具体有两项重要创新:

  1. 无唤醒交互 传统的语音助手需要唤醒词(如"Hey Siri")来激活,这在实际使用中并不自然。VITA通过引入状态token,教会模型自动识别输入音频的类型,从而实现了无需唤醒词的自然交互。模型能够自动过滤背景噪音和非查询人声,只对有效的查询音频做出响应。

  2. 音频打断交互 在传统系统中,模型生成输出时无法接受新的输入。VITA采用了双工方案来解决这一问题:部署两个VITA模型,一个负责生成对当前查询的响应,另一个持续监控新的输入。当用户打断并提出新问题时,生成过程会暂停,模型立即响应最新的查询。这大大提高了交互的自然度和效率。

Fig 1:VITA的交互。传统音频交互需要预定义的唤醒词,例如,每次你提问时说“嗨!Siri∼”,或者一个按钮来控制输入问题音频(限制1)。当模型生成输出时,人机交互总是被阻塞,因为先前的系统只能按顺序响应输入查询(限制2)。相比之下,一方面,与先前的方法不同,其中音频、文本和视觉总是分开的,VITA支持这些模态端到端。另一方面,VITA对多模态交互做出了两点贡献。非唤醒交互:VITA自动过滤背景噪音,如非查询人声,从而消除了唤醒词和按钮的需求。音频中断交互:如果用户用另一个问题打断,生成过程会暂停,模型会立即响应最新的查询。

以下主要介绍VITA模型的核心架构、训练数据和训练流程。

模型架构

VITA的模型架构如下Fig 2所示。

Fig 2:VITA能够处理纯文本/音频形式的输入,以及视频/图像结合文本/音频的输入。此外,我们为不同的查询输入设置不同的状态令牌。<1>对应于有效的查询音频,例如“世界上最大的动物是什么?”,我们期望模型给出回应。<2>对应于嘈杂的音频,例如环境中有人叫我去吃饭,我们期望模型不回复。<3>对应于查询文本,即用户以文本形式提出的问题。在训练阶段,我们试图教会模型自动区分不同的输入查询。在部署阶段,通过<2>我们可以实现非唤醒交互。基于此,我们进一步引入了一种双工方案用于音频中断交互。两个模型同时运行,生成模型负责处理用户查询。当生成模型开始工作时,另一个模型监视环境。如果用户用另一个有效的音频查询打断,监视模型会汇总历史上下文来回应最新的查询,同时生成模型暂停并转为监视状态,即两个模型交换身份。

VITA模型以Mixtral 8×7B作为语言模型的基础,通过三个主要阶段的训练来实现其多模态和交互能力:

  1. 双语指令微调 研究人员首先扩展了Mixtral 8×7B的词表,将词表大小从32,000扩展到51,747,以增强其中文理解能力。随后使用500万条高质量的双语文本语料进行指令微调,使模型在中英文上都具备出色的表现。

  2. 多模态对齐 在这一阶段,研究人员致力于缩小文本与其他模态(视频、图像、音频)之间的表示差距。他们采用了InternViT-300M-448px作为视觉编码器,通过动态分块策略来处理高分辨率图像输入。对于视频,根据长度采样4-16帧进行处理。研究人员收集了大量高质量的多模态数据用于训练,包括图像描述、问答、OCR和图表理解、视频描述和问答等多个任务。

  3. 多模态指令微调 在最后阶段,研究人员构建了精心设计的多模态指令数据集,教导模型遵循文本或音频指令来理解图像或视频。他们还引入了状态标记来区分不同类型的输入查询,为后续的多模态人机交互奠定基础。

Fig 3:VITA的训练流程。第一阶段通过扩大词汇表并利用高质量的双语文本语料库对Mixtral 8×7B语言模型进行 指令微调 ,从而使其熟练掌握中文和英文。第二阶段 多模态对齐 ,将各个encoder与LLM连接起来,以处理各种模态。通过大量高质量的多模态数据,将文本特征空间与视频、图像和音频的特征空间对齐。最后一阶段多模态指令微调,使得模型遵循文本或音频指令以理解图像或视频。此外,专门设计的状态token用于区分输入query的类型,从而促进随后的多模态人机交互。

训练数据和方法

研究人员为VITA收集和构建了大量高质量的训练数据:

  1. 图像相关任务:使用了ShareGPT4V、Allava-Caption、ShareGTP4o-Image等数据集,并补充了中文图像描述数据。

  2. 图像问答:采用LLaVA-Mixture-sample、Lvis-Instruct、ScienceQA等数据集,并生成了额外的中文问答数据。

  3. OCR和图表任务:使用Anyword-3M、ICDAR2019-LSVT、ICDAR2017-RCTW、Open-Chart等数据集,并生成了补充数据。

  4. 视频任务:使用ShareGemini数据集进行视频描述,并重新标注了Video-ChatGPT和VideoChat2的数据用于视频问答。

  5. 纯文本数据:从500万条纯文本数据中采样80万条,以维持模型的文本理解能力。

在数据处理方面,研究人员采用了数据拼接策略,将纯文本和图像数据的上下文长度统一为6000个token,以提高训练效率。

多模态对齐

视觉模态

  • 视觉Encoder使用 InternViT-300M-448px 作为视觉编码器,该编码器接收 448×448 的图像作为输入,通过一个简单的两层 MLP 视觉连接器生成 256 个词元。对于高分辨率图像输入,通过动态补丁策略来捕捉局部细节。视频被视为图像的特殊情况进行处理。如果视频长度小于 4 秒,均匀采样 4 帧;如果视频长度在 4 到 16 秒之间,则每秒采样一帧;对于超过 16 秒的视频,则均匀采样 16 帧。为了防止引入过多的视觉词元,不对视频的单个帧执行动态补丁。

  • 视觉对齐在视觉对齐阶段,仅训练视觉连接器。表 1 总结了使用的训练数据(不包括纯文本SFT部分)。此外,这个阶段不使用音频形式的问题(audio questions)。

    此外,在多模态指令微调阶段,从500万个纯文本数据中采样80万个条目,以维持LLM的文本理解能力。它用于多模态指令微调而不是视觉对齐,因为后者的LLM参数是固定的。

    • 对于一般的图像描述任务,引入了 ShareGPT4V 中 GPT-4V 生成的数据,以确保数据质量。此外,还引入了 Allava-Caption 和 ShareGTP4o-Image数据集,并补充了一些由现有 MLLM (没有具体说是哪些)生成的中文图像描述。

    • 对于一般的图像问答(QA)任务,初步收集了三个数据集:LLaVA-Mixture-sample、Lvis-Instruct 和 ScienceQA。使用现有的 MLLMs 生成额外的 21.8K 中文 QA 数据。此外,从 LLaVA-150K 数据集中移除了标题子集,并将其余部分翻译(没有具体说是用什么工具翻译)为中文。

    • 对于 OCR 和图表任务, 引入了 Anyword-3M、ICDAR2019-LSVT、ICDAR2017-RCTW、Open-Chart(包括 ChartQA、DVQA、InfoVQA、Pew 和 OpenCQA)数据集,以及一些由现有 MLLMs 从其他开源数据中生成的合成数据。对于Anyword-3M, 选择答案文本长度在20到50之间的数据,问题要求识别图像中的文本。对于ICDAR2019-LSVT, ICDAR2017-RCTW和Open-Chart,使用现有MLLMs生成详细的描述和QA对。

    • 对于一般的视频描述任务,使用 ShareGemini 数据集。

    • 对于一般的视频 QA 任务,使用现有的 MLLMs 重新标注 Video-ChatGPT 和 VideoChat2 。

  • 数据拼接对于纯文本数据和图像数据,我们的目标是将上下文长度拼接到 6K token,如Fig 4 所示(拼接数据的数量在表1的拼接条目列中)。

Fig 4:不同的文本数据直接拼接到6K个token。图像首先被分成多个局部patches,然后不同的图像-文本对被对应拼接起来。视频数据直接逐帧采样作为输入,无需拼接。通过这种方式,可以统一不同训练batch中的数据长度,从而提高训练效率。

拼接不同的数据带来了两个好处:

- 支持更长的上下文长度,使得从单图像问答扩展到多图像-问答交互成为可能,从而实现更灵活的输入形式和延长的上下文;
- 提高了计算效率,因为视频帧通常包含大量视觉词元。通过拼接图像-问题对,我们在训练批次中保持了词元数量的平衡,从而提高了计算效率。此外,我们发现使用拼接数据训练的模型在性能上与未拼接数据的模型表现相当。

音频模态

  • 音频编码器输入音频首先通过 Mel 滤波器(Mel Filter Bank),将音频信号分解为 Mel 频率尺度上的各个频带,模拟人类对声音的非线性感知。随后,使用 4 层 CNN 下采样层和 24 层的transformer,共计 341M 参数,处理输入特征。采用简单的两层 MLP 作为音频-文本模态连接器。最终,每 2 秒的音频输入被编码为 25 个token。

  • 音频对齐在对齐任务中,选择自动语音识别(ASR)。使用的数据集包括 Wenetspeech,该数据集涵盖了超过 10,000 小时的多领域语音识别数据(主要集中在中文上)。同样,Gigaspeech 也包含 10,000 小时的高质量音频数据,大部分数据用于英语语音识别任务。另一个任务是音频字幕生成,依赖于 Wavcaps 的 AudioSet SL 子集,该数据集包含 400K 个音频片段及其对应的音频字幕。在对齐过程中,音频编码器和连接器都进行了训练。

多模态指令微调

在这一阶段,对模型进行指令微调,以增强其文本、音频指令的遵循能力。

训练数据

  • 数据构建:指令微调阶段的数据来源与对齐阶段相同(见表1),并进行了如下改进:

    • 音频问题替换:使用 TTS 技术(如 GPT-SoVITS)将大约一半的问题随机替换为其音频版本,以提升模型对音频query的理解能力和指令遵循能力。音频版questions和文本版questions的数量见表1。

    • 系统提示设置:设置不同的系统提示,以避免不同类型数据之间的冲突(见表2)。例如,有些问题可以基于视觉信息或模型自身知识进行回答,这可能会导致冲突。此外,由于图像数据的patch类似于视频数据的多个帧,可能会使模型感到困惑。系统提示明确区分不同的数据类型,使其更易于理解。

  • 噪声音频构建:在人机交互过程中,并非所有的音频输入都需要响应,这些被称为噪声音频。一个具有良好交互能力的系统应能主动识别音频类型,并有选择性地执行后续输出。为此,我们需要构建各种噪声音频样本以供模型识别。具体而言,我们从现有的多模态和单模态 QA 数据中随机抽取 474K 个句子。这些负样本文本集中在不需要用户响应的非query相关内容上,其长度分布与正向问题的长度分布一致。然后,使用 TTS 工具将这些句子转换为音频。噪声音频样本的构建使模型能够识别不需要响应的音频输入,这有助于实现非唤醒交互。具体的训练策略将在以下部分详细说明。

训练流程

根据上述构建的 QA 对,模型需要区分三种类型的query:

  • query音频:question由音频发起。

  • 噪声音频:输入为音频,但不包含question。

  • query文本:question由文本发起。

基于这些query类型,设计了三种状态token <1>、<2> 和 <3>。在训练阶段,在答案的开头插入对应的状态token,使模型能够灵活处理不同的交互行为。具体如下:

  • 状态token <1> 表示question输入为query音频。在这种情况下,模型的输出需要以文本或通过TTS工具转换的语音形式呈现给用户。

  • 状态token <2> 表示question输入为噪声音频。模型应输出 EOS token 作为终止符。然而,训练过程中发现突然终止输出可能会显著降低性能。因此,将噪声音频对应的文本发送给 LLM,并使用其输出文本作为训练目标。在推理过程中,<2> 作为另一种特殊的 EOS 标记。

  • 状态token <3> 表示question为纯文本,用于区分训练集中的前两种query。

在训练过程中,视觉和音频编码器保持冻结状态,而连接器与 Mixtral 8×7B 一起进行训练。

部署和工程优化

为了实现VITA的高效交互功能,研究人员进行了大量的工程优化:

  1. 双工部署方案:同时部署两个VITA模型,一个负责生成响应,另一个持续监控环境输入。

  2. 多模态vLLM适配:优化了vLLM框架以支持VITA的多模态处理需求。

  3. 状态token设计:引入不同的状态标记来区分有效查询音频、噪声音频和查询文本,实现无唤醒交互。

  4. 历史上下文聚合:在音频打断时,模型能够聚合历史上下文来响应最新查询。

非唤醒交互

非唤醒交互意味着模型可以在不需要唤醒词或按钮的情况下被激活,并对环境中的用户音频问题做出回应。部署过程必须满足以下要求:

  • 实时跟踪环境声音:这涉及确定音频内容是否属于人类语言。

  • 过滤噪声音频:模型应仅对有效的用户查询音频作出响应。

对于第一个要求,现有的语音活动检测(VAD)可以提供帮助。VITA 使用 SileroVAD ,该系统经过大规模语料库训练,涵盖超过 6,000 种语言, 并且能够在各种背景噪声下表现良好。对于第二个要求,利用第 前文介绍的状态token <2>。这使模型能够自动区分输入音频是否为有效query。如果输入为非query类型,模型将直接终止推理,从而仅对query类型的输入作出响应。

音频中断交互

音频中断交互允许用户随时用新问题打断模型的生成过程。为实现这一点,部署环境必须满足以下要求:

  • 实时跟踪和过滤外部查询:在生成响应的同时,系统必须实时跟踪和过滤外部查询。

  • 回答新问题:当出现新问题时,系统必须停止当前生成,整合历史上下文,并对当前查询作出回应。

评估

从语言、音频、多模态这3个方面的表现来衡量VITA的最终效果。语言方面,使用的评测集:C-EVAL、AGIEVAL、MMLU 和 GSM8K;音频方面,使用的评测集:Wenetspeech 和 Librispeech;多模态方面,使用的评测集:MME 、OCRBench、HallusionBench 和 Video-MME。具体评估结果,这里就不赘述了,感兴趣的小伙伴们可以看原文。

总结

VITA作为一个开源的全模态交互式大语言模型,具有重要的学术和实践意义:

  1. 推动开源MLLM发展:VITA是首个同时支持视频、图像、文本和音频处理的开源MLLM,为开源社区提供了宝贵的参考。

  2. 探索自然交互:VITA在无唤醒交互和音频打断方面的创新,为提升MLLM的交互体验指明了方向。

  3. 促进多模态融合:VITA展示了如何在一个统一的框架内实现多模态信息的端到端处理。

  4. 开放研究资源:VITA的完全开源为后续研究提供了重要的基础设施。

尽管VITA在多模态理解和交互方面取得了显著进展,但与闭源模型如GPT-4o相比仍存在差距。研究团队指出,未来的工作方向包括:

  1. 进一步提升模型的多模态理解能力,特别是在复杂场景和长文本理解方面。

  2. 增强模型的推理和创造能力,使其能够处理更加开放和具有挑战性的任务。

  3. 优化交互体验,探索更多创新的人机交互方式。

  4. 提高模型的效率和部署友好性,使其更易于在实际应用中落地。

  5. 持续扩展训练数据和任务类型,使模型具备更广泛的知识和技能。

总的来说,VITA代表了开源多模态大语言模型的一个重要里程碑。它不仅在技术上推动了MLLM的发展,更为开源社区探索自然、智能的人机交互开辟了新的方向。随着VITA的持续优化和社区的共同努力,我们有理由期待在不久的将来,开源MLLM能够在功能和性能上真正媲美甚至超越闭源商业模型,为人工智能的普及和应用带来更多可能。

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

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

相关文章

【软考】数字签名

目录 1. 说明2. 过程2.1 数字签名过程2.2 数字加密过程 3. 公开密钥4. 报文加密5. 例题5.1 例题1 1. 说明 1.书信或文件是根据亲笔签名或印章来证明其真实性。2.在计算机网络中传送的文电用数字签名来解决问题。3.数字签名必须保证三点&#xff1a;接收者能够核实发送者对报文…

[C语言]第八节 数组一基础知识到高级技巧的全景探索

目录 8.1 数组概念的引入 8.2.⼀维数组的创建和初始化 8.2.1 数组的创建 8.2.2数组的初始化 8.2.3 数组的类型 8.3 ⼀维数组的使⽤ 8.3.1 数组下标 8.3.2 打印数组元素 8.3.3 输入数组元素 8.4 ⼀维数组在内存中的存储 8.5 sizeof计算数组元素个数 8.5.1 sizeof 关键…

第4章-05-用WebDriver下载页面csv到本地

🏆作者简介,黑夜开发者,CSDN领军人物,全栈领域优质创作者✌,CSDN博客专家,阿里云社区专家博主,2023年CSDN全站百大博主。 🏆数年电商行业从业经验,历任核心研发工程师,项目技术负责人。 🏆本文已收录于专栏:Web爬虫入门与实战精讲,后续完整更新内容如下。 文章…

Java 入门指南:Java 并发编程 —— JMM Java内存模型

JMM&#xff08;Java Memory Model&#xff0c;Java 内存模型&#xff09;&#xff08;抽象模型&#xff09;是用来描述和控制多线程之间内存可见性、有序性、原子性、指令重排等问题的规范。 JMM 定义了一组规则&#xff0c;规定了在多线程环境下&#xff0c;线程在执行共享变…

尚品汇-MQ模块搭建测试、消息不丢失(重)(四十三)

目录&#xff1a; &#xff08;1&#xff09;消息不丢失 &#xff08;2&#xff09;消息确认 &#xff08;3&#xff09;消息确认业务封装 &#xff08;4&#xff09;封装发送端消息确认 &#xff08;5&#xff09;封装消息发送 &#xff08;6&#xff09;发送确认消息测试…

【C#】Visual Studio 2017开发C#,按F1键没有跳转到C#帮助文档,反而跳到了Qt的帮助文档

1. 原因 Visual Studio中安装了Qt的插件&#xff0c;所以将F1的跳转链接转到了Qt的帮助文档。 2. F1改回微软帮助文档方法 工具 - 选项 - Qt - General - Try Qt Documentation when F1 is pressed改为Flase

Web服务端通过SSE推送消息给浏览器客户端的实现方案(附详细代码和仓库地址)

目录 1、SSE&#xff08;Server-Sent Events&#xff09;简介2、SSE 的工作原理3、SSE 与客户端轮询的区别和优势比较区别优势 4、SSE简单实现(单机应用Demo)演示效果SSE-Demo仓库地址下面直接贴代码&#xff1a;前端实现&#xff1a;后端实现&#xff1a; 5、SSE简单实现(分布…

【pycharm】汉化及翻译插件

汉化插件 翻译插件 使用 选中右键翻译

一键解决LBP2900通信错误的问题(同样支持Win 11系统)

**目录** **前言****常见解决方式****方案一&#xff1a;端口排除****方案二&#xff1a;服务重启****方案三&#xff1a;注册表注入修复** 前言 佳能LBP2900向来是经典耐用款的打印机。想必各位可能遇到过&#xff0c;由于老旧会出现奇葩的问题&#xff0c;譬如 就算USB接口已…

【C++篇】~类和对象(上)

【C篇】 类和对象上 一类二实例化内存对齐原因&#xff08;用空间换时间&#xff0c;提高效率&#xff09; 一类 ‘类’class可以理解为C语言阶段的‘结构体’&#xff0c;它的用法与struct大差不差很多地方都相同&#xff0c;但是C毕竟是C&#xff0c;类的用法肯定比结构体的…

Linux Kernel 6.12版预计将支持在崩溃后显示二维码 后续可以解码排查错误

7 月份时红帽工程师基于 systemd 255 版的全屏显示错误消息功能为 Linux Kernel 开发崩溃后显示二维码选项&#xff0c;这与微软在 Windows 10/11 蓝屏死机后显示二维码有异曲同工之妙。 不过 Linux 与 Windows 在崩溃时显示的二维码内容则有本质区别&#xff0c;因为 Window…

单链表反转(C语言)

1 问题描述 力扣&#xff08;LeetCode&#xff09;--反转链表 给你单链表的头节点 head &#xff0c;请你反转链表&#xff0c;并返回反转后的链表。 例如&#xff1a; 输入&#xff1a;head [1,2,3,4,5]输出&#xff1a;[5,4,3,2,1] 输入&#xff1a;head [1,2]输出&#x…

11 Java 方法引用、异常处理

文章目录 前言一、Java接口之函数式编程 --- 接口知识补充1 Function<T,R>泛型接口2 BiFunction<T, U, R>泛型接口3 自定义泛型函数式编程接口 二、方法引用1 方法引用初体验&#xff08;以Array.sort()方法为例&#xff09;2 引用静态方法3 引用其他类成员方法 前…

【面试五】PID控制算法

一、 PID算法简介 PID&#xff08;Proportional-Integral-Derivative&#xff09;控制算法是一种经典的反馈控制方法&#xff0c;广泛应用于自动控制系统&#xff0c;例如温度控制、速度控制、位置控制等。 PID控制算法的核心包含三个部分&#xff1a;比例项&#xff08;P&…

@antv/g6 业务场景:流程图

1、流程图是流经一个系统的信息流、观点流或部件流的图形代表。在企业中&#xff0c;流程图主要用来说明某一过程。这种过程既可以是生产线上的工艺流程&#xff0c;也可以是完成一项任务必需的管理过程。业务场景流程图如下&#xff1a; 2、绘制流程图的 Tips 流程图一般是用…

计算机毕业设计选题推荐-果树生长信息管理系统-Java/Python项目实战

✨作者主页&#xff1a;IT毕设梦工厂✨ 个人简介&#xff1a;曾从事计算机专业培训教学&#xff0c;擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Py…

Redis三种集群模式:主从模式、哨兵模式和Cluster模式

1. 总结经验 redis主从&#xff1a;可实现高并发(读)&#xff0c;典型部署方案&#xff1a;一主二从 redis哨兵&#xff1a;可实现高可用&#xff0c;典型部署方案&#xff1a;一主二从三哨兵 redis集群&#xff1a;可同时支持高可用(读与写)、高并发&#xff0c;典型部署方…

探索Python数据持久化的秘密:ZODB库的神奇之旅

文章目录 探索Python数据持久化的秘密&#xff1a;ZODB库的神奇之旅背景ZODB是什么&#xff1f;如何安装ZODB&#xff1f;简单库函数使用方法场景应用常见Bug及解决方案总结 探索Python数据持久化的秘密&#xff1a;ZODB库的神奇之旅 背景 在Python的广阔世界中&#xff0c;数…

基于单片机的水箱水质监测系统设计

本设计基于STM32F103C8T6为核心控制器设计了水质监测系统&#xff0c;选用DS18B20温度传感器对水箱水体温度进行采集&#xff1b;E-201-C PH传感器获取水体PH值&#xff1b;选用TS-300B浊度传感器检测水体浊度&#xff1b;采用YW01液位传感器获取水位&#xff0c;当检测水位低于…

网络压缩之知识蒸馏(knowledge distillation)

因为直接训练一个小的网络&#xff0c;往往结果就是没有从大的网络剪枝好。知识蒸馏的概念是 一样的&#xff0c;因为直接训练一个小的网络&#xff0c;没有小的网络根据大的网络来学习结果要来得 好。 因而&#xff0c;先训练一个 大的网络&#xff0c;这个大的网络在知识蒸馏…