【自然语言处理与大模型】大模型(LLM)基础知识②

news2024/11/5 1:25:01

(1)LLaMA输入句子的长度理论上可以无限长吗?

理论上来说,LLM大模型可以处理任意长度的输入句子,但实际上存在一些限制。下面是一些需要考虑的因素:

1. 计算资源:生成长句子需要更多的计算资源,包括内存和计算时间。由于LLM通常是基于神经网络的模型,计算长句子可能会导致内存不足或计算时间过长的问题。

2. 模型训练和推理:训练和推理长句子可能会面临一些挑战。在训练阶段,处理长句子可能会导致梯度消失和梯度爆炸的问题。影响模型的收敛性和训练效果。在推理阶段,生成长句子可能会增加模型的错误率和生成时间。

3. 上下文建模:LLM是基于上下文建模的模型,长句子的上下文可能会更加复杂和更加有深度。模型需要能够捕捉长句子中的语义和语法结构,以生成准确和连贯的文本。

        虽然面临很多问题,但研究人员已经不断努力改进和优化LLM,以处理更长的句子。例如:可以采用分块的方式处理长句子,将其分成多个较短的片段来处理。此外可以通过增加计算资源、优化模型结构和参数设置,以及使用更高效的推理算法来提高LLM处理长句子的能力。

        所以在实际应用中,长句子的处理还需要考虑具体的应用场景、任务需求和资源限制。

(2) 什么情况用Bert模型,什么情况用LLaMA和ChatGLM这类大模型?怎么选?

选择使用Bert模型还是LLaMA和ChatGLM这类大模型,主要取决于你的具体应用场景、任务需求、资源限制以及预期的目标。下面是一些具体的指导原则:

NLU任务:如果任务主要是文本理解,如文本分类、命名实体识别等。Bert通常是最好的选择。

NLG任务:如果任务主要是文本生成,如对话系统、文章生成等,LLaMA和ChatGLM等大模型更合适。

资源限制:如果计算资源有限,优先考虑Bert。如果有足够的资源和数据,可以考虑大模型以获得更好的性能。

(3)各个专业领域是否需要各自的大模型来服务?

 各个专业领域通常需要各自的大模型来服务,原因如下:

1. 领域特定知识:不同领域用于各自特定的知识和术语,需要针对该领域进行训练的大模型才能更好的理解和处理相关文本。例如,在医学领域,需要训练具有医学知识的大模型,以更准确地理解和生成医学文本。

2. 语言风格和惯用语:各个领域通常有自己独特的语言风格和惯用语,这些特点对模型的训练和生成都很重要。专门针对某个领域进行训练的大模型可以更好地掌握该领域的语言特点,生成更符合该领域要求的文本。

3. 领域需求的差异:不同领域对文本处理的需求也有所差异。例如,金融领域可能更关注数字和统计数据的处理,而法律领域可能更关注法律条款和案例的解析。因此,为了更好地满足不同领域的需求,需要专门针对各个进行训练的大模型。

4. 数据稀缺性:某些领域的数据可能相对较少,无法充分训练通用的大模型。针对特定领域进行训练的大模型可以更好的利用该领域的数据,提高模型的性能和效果。

        尽管需要各自的大模型来服务不同的领域,但也可以共享一些通用的模型和技术。例如通用的大模型可以用于处理通用的文本任务,而领域特定的模型可以在通用模型的基础上进行微调和定制,以适应特定领域的需求。这样可以在满足领域需求的同时,减少模型的重复训练和资源消耗。

(4)如何让大模型处理更长的文本?

要让大模型处理更长的文本,可以考虑以下几个方法:

1. 分块处理:将长文本分割成较短的片段,然后逐个片段输入模型进行处理。这样可以避免长文本对模型内存和计算资源的压力。在处理分块文本时,可以使用重叠的方式,即将相邻片段的一部分重叠,以保持上下文的连贯性。

2. 层次建模:通过引入层次结构,将长文本划分为更小的单元。例如,可以将文本分为段落、句子或子句等层次,然后逐层输入模型进行处理。这样可以减少每个单元的长度。提高模型处理长文本的能力。

3. 部分生成:如果只需要模型生成文本的一部分,而不是整个文本,可以只输入部分文本作为上下文,然后让模型生成所需的部分。例如,输入前一部分的文本,让模型生成后续的内容。

4. 注意力机制:注意力机制可以帮助模型关注输入中的重要部分,可以用于处理长文本时的上下文建模。通过引入注意力机制,模型可以更好的捕捉长文本中的关键信息。

5. 模型结构优化:通过优化模型结构和参数设置,可以提高模型处理长文本的能力。例如,可以增加模型的层数或参数量,以增加模型的表达能力。还可以使用更高效的模型架构,如Transformer等,以提高长文本处理效率。

        需要注意的是,处理长文本还要考虑计算资源和时间限制。较长的文本可能需要更多的内存和计算时间,因此在实际应用中需要更具具体情况进行权衡。

(5)如果想要在某个模型基础上做全参数微调,需要多少显存?

要进行全参数微调,显存取决于如下多个因素:

1. 参数量:模型的参数量越大,显存需求越高。ChatGLM3-6B的参数量为60亿,这本身就需要较大的显存来存储模型权重。

2. 批量大小:批量大小决定了每次前向传播和反向传播处理的样本数量。批量大小越大,显存需求越高。

3. 数据类型:参数通常以32位浮点数(float32)存储,每个参数需要4字节的存储空间。如果使用16位浮点数(float16或bfloat16),则每个参数只需要2字节。半精度可以显著减少显存需求。

4. 梯度存储:在训练过程中,除了模型参数外,还需要存储梯度信息。通常,梯度也会占用与模型参数相同大小的显存。

5. 优化器状态:大多数现代优化器(如Adam)会为每个参数存储额外的状态信息,如动量(momentum)和方差(variance)。这通常需要与模型参数相同或更少的显存。

6. 激活和中间层存储:在前向和后向传播过程中,模型的激活和中间层结果也需要存储,这取决于模型架构和批量大小。

7. 检查点备份:在训练过程中,可能需要定期保存模型的状态,包括参数和优化器状态,以便于恢复训练。

8. 预留空间:通常需要预留一部分显存作为缓冲,以避免显存溢出。

显存需求 = (模型参数大小 + 梯度大小)× (批量大小 + 优化器状态大小)+ 激活和中间层存储 + 检查点和备份 + 预留空间

显存需求 ≈ 模型参数大小 × 批量大小

(6)为什么SFT之后觉得大模型LLM变傻了?

        Supervised Fine-Tuning有监督微调后变傻,可能因为:

1. 过拟合

  • 定义:过拟合是指模型在训练数据上表现得非常好,但在未见过的测试数据或实际应用中表现较差。
  • 原因:如果微调数据集太小或与原始训练数据差异较大,模型可能会过度拟合这些特定的训练样本,导致在其他任务或数据上表现不佳。
  • 解决方案:增加微调数据集的多样性和规模,使用正则化技术(如L2正则化),或者使用早停法(early stopping)来防止过拟合。

2. 灾难性遗忘

  • 定义:灾难性遗忘是指模型在学习新任务时忘记旧任务的知识。
  • 原因:大模型在进行微调时,可能会丢失在预训练阶段学到的广泛知识,特别是在微调数据集覆盖范围较窄的情况下。
  • 解决方案:使用持续学习(continual learning)技术,如弹性权重巩固(EWC)、路径整合(path integral)等,或者在微调过程中保留一部分预训练数据进行联合训练。

3. 数据偏差

  • 定义:数据偏差是指微调数据集中的样本分布与实际应用场景中的样本分布存在显著差异。
  • 原因:如果微调数据集偏向于某些特定类型的样本,模型可能会过度优化这些样本,而忽视其他类型的样本。
  • 解决方案:确保微调数据集的多样性和代表性,尽量覆盖各种可能的输入情况。

4. 超参数设置不当

  • 定义:超参数设置不当会影响模型的训练效果。
  • 原因:学习率、批量大小、优化器选择等超参数的不当设置可能导致模型训练不充分或过度训练。
  • 解决方案:通过网格搜索、随机搜索或贝叶斯优化等方法,找到最佳的超参数组合。

5. 任务不匹配

  • 定义:任务不匹配是指微调任务与模型的原始设计任务不一致。
  • 原因:如果微调任务与模型的预训练任务相差较大,模型可能无法很好地适应新任务。
  • 解决方案:选择与预训练任务更接近的微调任务,或者使用多任务学习(multi-task learning)来同时优化多个相关任务。

6. 数据质量

  • 定义:数据质量低下会影响模型的训练效果。
  • 原因:微调数据集中可能存在噪声、错误标注或不一致的样本,这些都会影响模型的性能。
  • 解决方案:对微调数据进行清洗和验证,确保数据的质量和一致性。

7. 模型容量不足

  • 定义:模型容量不足是指模型的复杂度不足以捕捉微调任务的特征。
  • 原因:如果微调任务较为复杂,而模型的容量不足以处理这些复杂性,模型可能会表现不佳。
  • 解决方案:选择更大或更复杂的模型,或者在现有模型的基础上增加更多的层数或参数。

(7)微调和指令微调的区别?

        微调(Fine-Tuning)和指令微调(Instruction Tuning)是两种不同的方法,用于在特定任务上优化预训练的大模型(LLM)。它们的主要区别在于目标、数据集和训练方式。下面详细解释这两种方法的区别:

1. 微调(Fine-Tuning)

定义:微调是指在预训练模型的基础上,使用特定任务的数据集进行进一步训练,以优化模型在该任务上的性能。

1)目标

  • 任务特定:微调的目标是使模型在特定任务上表现更好,如文本分类、情感分析、命名实体识别等。
  • 性能提升:通过微调,模型可以更好地适应特定任务的数据分布和特征,从而提高准确率、召回率等指标。

2)数据集

  • 任务数据:微调使用的数据集通常包含大量标注好的任务特定数据,如分类标签、情感标签、实体标注等。
  • 格式:数据集通常包含输入文本和对应的标签或输出。

3)训练方式

  • 端到端训练:微调通常是一个端到端的训练过程,模型直接从输入文本预测输出标签。
  • 损失函数:使用任务特定的损失函数,如交叉熵损失(Cross-Entropy Loss)。

4)示例

  • 文本分类:使用包含文本和分类标签的数据集进行微调。
  • 情感分析:使用包含文本和情感标签的数据集进行微调。

2. 指令微调(Instruction Tuning)

定义:指令微调是指在预训练模型的基础上,使用包含指令和相应响应的数据集进行进一步训练,以优化模型在理解和执行指令方面的性能。

1)目标

  • 指令理解:指令微调的目标是使模型能够更好地理解和执行自然语言指令,如生成特定类型的文本、回答问题、执行多步推理等。
  • 灵活性:通过指令微调,模型可以更灵活地应对各种任务,而不需要为每个任务单独微调。

2)数据集

  • 指令-响应对:指令微调使用的数据集包含指令和相应的响应对。
  • 格式:数据集通常包含指令(如“回答以下问题:XXX?”)和响应(如“答案是:XXX。”)。

3)训练方式

  • 指令驱动:指令微调通过训练模型理解和生成指令来提高其在各种任务上的表现。
  • 损失函数:使用适当的损失函数,如交叉熵损失或均方误差损失,来优化模型的指令执行能力。

(8)SFT指令微调数据如何构建?

 假设我们要构建一个问答系统的SFT数据集,以下是具体的步骤:

  1. 收集数据:从公开的问答数据集(如SQuAD)和网络爬虫中收集问题和答案。
  2. 数据预处理:清洗数据,去除无关项,分词处理。
  3. 构建指令-响应对
    • 指令:"回答以下问题:中国的首都是哪里?"
    • 响应:"答案是:北京。"
  4. 数据标注:人工标注数据,确保每个指令和响应的准确性。
  5. 数据切分:将数据分为训练集、验证集和测试集。
  6. 数据增强:使用同义词替换和句子重组增加数据的多样性。
  7. 数据平衡:确保各个类别和难度的样本数量均衡。
  8. 数据验证:检查指令和响应的一致性,评估数据质量。
  9. 数据格式化:将数据统一为JSON格式。
  10. 数据保存:将处理好的数据保存为文件。

将上面这个例子总结成通用的步骤:

1. 明确任务目标

  • 确定任务类型:明确你要解决的具体任务类型,如文本分类、情感分析、问答系统、对话生成等。
  • 定义任务要求:明确任务的具体要求和目标,例如准确率、响应时间、生成内容的质量等。

2. 收集数据

  • 来源:从公开数据集、网络爬虫、人工标注等多种渠道收集数据。
  • 多样性:确保数据的多样性,涵盖不同领域、风格和复杂度的样本。
  • 质量:确保数据的质量,避免噪声和错误标注。

3. 数据预处理

  • 清洗:去除无关或低质量的数据,如重复项、空白项、乱码等。
  • 格式化:将数据转换为模型所需的格式,如JSON、CSV等。
  • 分词:对文本进行分词处理,确保模型能够正确解析输入。

4. 构建指令-响应对

  • 指令设计:设计清晰、具体的指令,确保模型能够理解任务要求。指令应简洁明了,避免模糊不清。
    • 例如,对于问答任务,指令可以是:“回答以下问题:XXX?”
    • 对于文本生成任务,指令可以是:“根据以下背景信息生成一段描述:XXX。”
  • 响应生成:为每个指令生成对应的正确响应。响应应准确、完整且符合任务要求。
    • 例如,对于问答任务,响应可以是:“答案是:XXX。”
    • 对于文本生成任务,响应可以是:“描述如下:XXX。”

5. 数据标注

  • 人工标注:如果数据集较小,可以由专业人员进行人工标注,确保标注的准确性和一致性。
  • 众包平台:对于大规模数据集,可以使用众包平台进行标注。
  • 自动标注:对于部分任务,可以使用现有的模型或规则进行自动标注,然后进行人工审核和修正。

6. 数据切分

  • 训练集:用于训练模型,占数据集的大部分(如80%)。
  • 验证集:用于验证模型的性能,调整超参数,占数据集的一部分(如10%)。
  • 测试集:用于最终评估模型的性能,占数据集的剩余部分(如10%)。

7. 数据增强

  • 同义词替换:使用同义词替换指令中的某些词汇,增加数据的多样性。
  • 句子重组:改变指令的句式结构,保持语义不变。
  • 数据合成:结合多个指令生成新的复合指令,增加任务的复杂度。

8. 数据平衡

  • 类别平衡:确保各个类别的样本数量大致相等,避免类别不平衡导致的偏见。
  • 难度平衡:确保数据集中包含不同难度的样本,使模型能够处理各种复杂度的任务。

9. 数据验证

  • 一致性检查:确保指令和响应之间的一致性,避免逻辑矛盾。
  • 质量评估:对生成的指令-响应对进行质量评估,确保其符合任务要求。

10. 数据格式化

  • 统一格式:将所有数据统一为模型所需的输入格式,如JSON、CSV等。
[
  {
    "instruction": "回答以下问题:XXX?",
    "response": "答案是:XXX。"
  },
  {
    "instruction": "根据以下背景信息生成一段描述:XXX。",
    "response": "描述如下:XXX。"
  }
]

11. 数据保存

  • 文件存储:将处理好的数据保存为文件,便于后续使用。
  • 备份:定期备份数据,防止数据丢失。

(9)领域模型Continue PreTrain数据如何选取?

        领域模型的继续预训练(Continue PreTraining)是一种有效的方法,可以进一步提升模型在特定领域或任务上的性能。选择合适的继续预训练数据集是关键步骤之一。以下是如何选取和准备继续预训练数据的原则:

1. 领域相关数据:⾸先,可以收集与⽬标领域相关的数据。这些数据可以是从互联⽹上爬取的、来⾃特定领域的⽂档或者公司内部的数据等。这样的数据可以提供领域相关的语⾔和知识,有助于模型在特定领域上的表现。
2. 领域专家标注:如果有领域专家可⽤,可以请他们对领域相关的数据进⾏标注。标注可以是分类、命名实体识别、关系抽取等任务,这样可以提供有监督的数据⽤于模型的训练。
3. 伪标签:如果没有领域专家或者标注数据的成本较⾼,可以使⽤⼀些⾃动化的⽅法⽣成伪标签。例如,可以使⽤预训练的模型对领域相关的数据进⾏预测,将预测结果作为伪标签,然后使⽤这些伪标签进⾏模型的训练。
4. 数据平衡:在进⾏数据选取时,需要注意数据的平衡性。如果某个类别的数据样本较少,可以考虑使⽤数据增强技术或者对该类别进⾏过采样,以平衡各个类别的数据量。
5. 数据质量控制:在进⾏数据选取时,需要对数据的质量进⾏控制。可以使⽤⼀些质量评估指标,如数据的准确性、⼀致性等,来筛选和过滤数据。
6. 数据预处理:在进⾏数据选取之前,可能需要对数据进⾏⼀些预处理,如分词、去除停⽤词、标准化等,以准备好输⼊模型进⾏训练。

(10)领域数据训练后,通用能力往往会有所下降,如何缓解模型遗忘通用能力?

        在进行领域数据训练后,模型可能会出现“灾难性遗忘”(catastrophic forgetting)现象,即模型在特定领域任务上表现提升的同时,其在通用任务上的性能下降。为了缓解这一问题,可以采取以下几种策略:

1. 数据增强和混合:通过对领域数据进行增强,增加数据的多样性,减少模型对特定数据的依赖。使用同义词替换、句子重组、数据合成等技术。在训练过程中,动态混合领域数据和通用数据,确保模型在两个任务上都能得到充分的训练。使用动态采样策略,根据模型在不同任务上的表现调整数据的比例。

2. 增量学习:逐步扩展模型的知识,先在通用任务上进行预训练,然后再逐步加入领域数据进行微调。逐步增加领域数据的比例,确保模型在通用任务上的性能不会急剧下降。

3. 模型架构设计:将模型设计成模块化结构,不同模块负责不同的任务,减少任务之间的干扰。例如,可以设计一个共享的编码器和多个任务特定的解码器。还比如在模型中引入多头机制,每个头负责一个特定的任务,减少任务之间的冲突。

4. 领域适应技术:使⽤领域适应技术,如领域⾃适应(Domain Adaptation)和领域对抗训练
(Domain Adversarial Training),帮助模型在不同领域之间进⾏迁移学习,从⽽减少遗忘通⽤能⼒的问题。

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

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

相关文章

总结拓展十五:SAP物料分割评估

一、概述 在SAP中,物料的分割评估是指,对同一个物料做不同的价值设置。即,根据不同的条件,核算其价格及记录价格的相关属性。 二、物料主数据设置 1、物料主数据-会计1视图 只有价格控制“V”可以分割评估。 2、设置评估类型…

ai翻唱部分步骤

模型部署 我是用的RVC进行的训练,也可以使用so-vits-svc。 通过百度网盘分享的文件:RVC-beta 链接:https://pan.baidu.com/s/1c99jR2fLChoqUFqf9gLUzg 提取码:4090 以Nvida显卡为例,分别下载“RVC1006Nvidia”和…

[综述笔记]Deep learning for brain disorder diagnosis based on fMRI images

论文网址:Deep learning for brain disorder diagnosis based on fMRI images - ScienceDirect 英文是纯手打的!论文原文的summarizing and paraphrasing。可能会出现难以避免的拼写错误和语法错误,若有发现欢迎评论指正!文章偏向…

HarmonyOS:UIAbility组件概述

一、概述 UIAbility组件是一种包含UI的应用组件,主要用于和用户交互。 UIAbility的设计理念: 原生支持应用组件级的跨端迁移和多端协同。支持多设备和多窗口形态。 UIAbility划分原则与建议: UIAbility组件是系统调度的基本单元&#xff0c…

jeecgbootvue2菜单路由配置静态文件夹(public)下的html

需求:想要在菜单配置src/assets/iconfont/chart.html显示页面(目的是打包上线以后运维依然可以修改数据) 官网没有相关数据:菜单配置说明 JeecgBoot 开发文档 看云 问题现象: 我把文件放在src/assets/iconfont/chart.html然后在vue中作为 iframe 的 src 属性&am…

【Vue框架】基础语法练习(1)

其实更多知识点已经在Vue.js官网十分清楚了,大家也可以去官网进行更细节的学习 https://cn.vuejs.org/ 说明:目前最新是Vue3版本的,但是Vue2已经深得人心,所以就是可以支持二者合用。它们最大的区别就是Vue3是组合式API&#xf…

爬虫学习4

from threading import Thread#创建任务 def func(name):for i in range(100):print(name,i)if __name__ __main__:#创建线程t1 Thread(targetfunc,args("1"))t2 Thread(targetfunc, args("2"))t1.start()t2.start()print("我是诛仙剑")from …

qt QScrollArea详解

1、概述 QScrollArea是Qt框架中的一个控件,它提供了一个可滚动的视图区域,用于显示超出视图大小的内容。这个控件非常有用,尤其是在处理大型表格、文本区域、图像集合或任何需要滚动浏览的内容时。QScrollArea本身不直接显示内容&#xff0c…

【ChatGPT】搜索趋势分析

【ChatGPT】搜索趋势分析 为了分析 ChatGPT 在过去一年的流行趋势,我们可以查看 Google Trends 的数据 安装依赖pytrends pip install pytrends运行以下 Python 脚本 import pandas as pd import matplotlib.pyplot as plt from pytrends.request import TrendR…

Mac如何实现高效且干净的卸载应用程序

使用Mac卸载应用程序,你还在使用废纸篓这个办法吗,看不见卸载了什么,看不见清理了多少,真的不会有残留吗 XApp Mac上的卸载专家,强大的垃圾逻辑检测,垃圾扫描更全面,卸载更干净 使用简单&#…

安科瑞AMB400分布式光纤测温系统解决方案--远程监控、预警,预防电气火灾

安科瑞戴婷 可找我Acrel-Fanny 安科瑞AMB400电缆分布式光纤测温具有多方面的特点和优势: 工作原理: 基于拉曼散射效应。激光器产生大功率的光脉冲,光在光纤中传播时会产生散射。携带有温度信息的拉曼散射光返回光路耦合器,耦…

GitHub上传自己的项目

目录 一、安装Git插件 1)下载 2)安装 二、创建Gothub的创库 三、通过Git上传本地文件到Github 四、其他 1、部分指令 2、如果已经运行过git init并设置了[user],下次可以直接用 一、安装Git插件 1)下载 下载地址&#x…

Spring Boot框架

一.SpringBoot简介 1.1 设计初衷 目前我们开发的过程当中,一般采用一个单体应用的开发采用 SSM等框架进行开发,并在 开发的过程当中使用了大量的xml 等配置文件,以及在开发过程中使用MAVEN的构建工具来进 行构建项目,但是往往有…

【C++】vector 类深度解析:探索动态数组的奥秘

🌟快来参与讨论💬,点赞👍、收藏⭐、分享📤,共创活力社区。 🌟 如果你对string类还存在疑惑,欢迎阅读我之前的作品 : 👉【C】string 类深度解析:…

windows——病毒的编写

声明 学习视频来自B 站up主泷羽sec,如涉及侵权马上删除文章。 笔记的只是方便各位师傅学习知识,以下网站只涉及学习内容,其他的都与本人无关,切莫逾越法律红线,否则后果自负。 windows基础 我们学习了前面的window…

STM32 + CubeMX + 硬件SPI + W5500 +UDP

这篇文章记录一下STM32W5500UDP的调试过程,实现UDP数据的接收与发送。 目录 一、W5500模块介绍二、Stm32CubeMx配置三、Keil代码编写1、添加W5500驱动代码到工程(添加方法不赘述,驱动代码可以在官网找)2、在工程中增加代码&#…

原来大佬的测试用例都是这样写的...

1、测试点与测试用例 测试点不等于测试用例,这是我们首先需要认识到的。 问题1:这些测试点在内容上有重复,存在冗余。 问题2:一些测试点的测试输入不明确,不知道测试时要测试哪些。 问题3:总是在搭相似…

【论文解读】Med-BERT: 用于疾病预测的大规模结构化电子健康记录的预训练情境化嵌入

【论文解读】Med-BERT: 用于疾病预测的大规模结构化电子健康记录的预训练情境化嵌入 Med-BERT:pretrained contextualized embeddings on large-scale structured electronic health records for disease prediction ​ ​ 摘要:基于电子健康记录(EHR)的深度学习(DL)预…

天锐绿盾加密软件与Ping32 — 数据安全与性能优化的完美结合

在数字化时代,企业对数据安全的重视程度日益增加。随着网络攻击和数据泄漏事件频发,选择合适的安全解决方案显得尤为重要。天锐绿盾与Ping32作为两款备受推崇的安全软件,各自为企业提供了独特的功能和优势,共同为企业的数据安全和…

随身WiFi三网切换靠谱吗?格行随身WiFi网速怎么样?

出门在外手机流量不够用,连接公共WIFI网速不稳定还存在安全隐患。小巧便携的随身WIFI成了外出用网的首选。面对市面上不同品牌,不同类型的随身WIFI不少朋友不免心生疑问:随身WIFI到底值不值得买?究竟是不是“智商税”?…