构建基于数据驱动的应用程序与Llamaindex——理解大型语言模型

news2024/11/16 11:43:19

如果你在阅读这本书,你可能已经探索过大型语言模型(LLMs)的领域,并且已经认识到它们的潜在应用以及它们的缺陷。本书旨在解决LLMs所面临的挑战,并提供一本实用指南,教你如何使用LlamaIndex构建数据驱动的LLM应用程序,从基础概念到高级技术,实施检索增强生成(RAG),以创建由外部数据增强的高性能交互式人工智能(AI)系统。

本章将介绍生成式AI(GenAI)和LLMs。我们将解释LLMs如何在经过海量数据集训练后生成类似人类的文本。我们还将概述LLMs的能力、局限性(如过时的知识、潜在的错误信息以及缺乏推理能力)。你将会了解到RAG作为一种潜在的解决方案,它结合了使用索引数据的检索模型和生成模型,以提高事实准确性、逻辑推理和上下文相关性。总体而言,你将获得LLMs的基本理解,并学习如何通过RAG克服一些LLMs的弱点,为实际应用LLMs奠定基础。

在本章中,我们将涵盖以下主要主题:

  1. 介绍生成式AI和LLMs
  2. 理解LLMs在现代技术中的作用
  3. 探讨LLMs面临的挑战
  4. 使用RAG增强LLMs

介绍生成式AI和大型语言模型(LLMs)

引言有时可能会显得乏味,但在这里,我们需要设定背景并帮助你熟悉生成式AI(GenAI)和大型语言模型(LLMs),然后再深入探讨LlamaIndex。我会尽量简洁,如果读者已经熟悉这些信息,我为这一简短的插曲表示歉意。

什么是生成式AI?

生成式AI指的是能够生成新内容的系统,如文本、图像、音频或视频。与为特定任务(如图像分类或语音识别)设计的更专门化的AI系统不同,生成式AI模型可以创建完全新的内容,这些内容通常非常难以区分——如果不是不可能的话——与人类创作的内容。

这些系统使用诸如神经网络(NNs)之类的机器学习(ML)技术,并在大量数据上进行训练。通过学习训练数据中的模式和结构,生成模型可以建模数据的潜在概率分布,并从该分布中采样以生成新的示例。换句话说,它们充当了大型预测机器。

现在我们将讨论LLMs,这是生成式AI中最受欢迎的领域之一。

什么是大型语言模型(LLM)?

生成式AI中最显著和快速发展的分支之一是通过LLMs进行自然语言生成(NLG)(图1.1)。

大型语言模型(LLMs)是专门设计和优化用于理解和生成人类语言的神经网络(NNs)。它们之所以被称为“大型”,是因为它们在包含数十亿甚至数万亿个单词的海量文本数据上进行训练,这些数据来自互联网和其他来源。较大的模型在基准测试中表现更佳,具有更好的泛化能力和新的突现能力。与早期的基于规则的生成系统相比,LLMs的主要特点在于它们能够生成新颖、原创且自然流畅的文本。

通过从众多来源中学习模式,LLMs掌握了训练数据中包含的各种语言技能——从细致的语法到主题知识,甚至是基本的常识性推理。这些学习到的模式使得LLMs能够以上下文相关的方式扩展人类编写的文本。随着不断改进,LLMs为大规模自动生成自然语言(NL)内容创造了新的可能性。

在训练过程中,LLMs逐渐从庞大的训练数据集中学习单词之间的概率关系和语言结构规则。一旦训练完成,它们能够通过基于前面单词预测下一个单词的概率,生成令人惊叹的人类般文本。在许多情况下,它们生成的文本如此自然,以至于你会怀疑:我们人类是否也只是一个更复杂的预测机器?但这是另一本书的话题。

一个关键的架构创新是transformer(即GPT中的T),它使用注意力机制来学习单词之间的上下文关系。注意力机制允许模型学习文本中的长距离依赖关系。就像在对话中仔细聆听一样,你需要关注上下文来理解完整的含义。这意味着它们不仅理解彼此接近的单词,还理解句子或段落中相距较远的单词之间的关系。

注意力机制使得模型在进行预测时能够有选择地关注输入序列的相关部分,从而捕捉数据中的复杂模式和依赖关系。这一特性使得特别大型的transformer模型(具有众多参数并在海量数据集上进行训练)展现出令人惊讶的新能力,例如上下文学习,它们只需在提示中给出几个例子就能完成任务。要了解更多关于transformer和生成预训练transformer(GPT)的信息,可以参考Alec Radford、Karthik Narasimhan、Tim Salimans和Ilya Sutskever的《Improving Language Understanding with Unsupervised Learning》。

表现最好的LLMs,如GPT-4、Claude 2.1和Llama 2,包含数万亿个参数,并在互联网规模的数据集上使用先进的深度学习(DL)技术进行训练。由此产生的模型拥有广泛的词汇量和关于语言结构(如语法和句法)以及一般世界知识的广泛知识。由于其独特的特性,LLMs能够生成连贯、语法正确且语义相关的文本。尽管它们生成的内容并不总是完全合逻辑或事实准确,但通常读起来像是由人类编写的。但不仅仅是规模,数据的质量和训练算法等也对特定模型的最终性能起着重要作用。

许多模型具有通过提示生成响应的用户界面。此外,有些模型还提供API,供开发者以编程方式访问模型。在本书接下来的章节中,这种方法将是我们的主要关注点。

接下来,我们将讨论LLMs如何在技术领域带来重大变化。它们不仅帮助大型公司,也惠及每个人。好奇吗?让我们继续阅读吧。

理解大型语言模型(LLMs)在现代技术中的作用

哦!我们生活在多么美好的时代啊。对小型企业和企业家来说,从未有过一个如此有利的时代。鉴于这项技术的巨大潜力,真是一个奇迹,它并没有完全落入大公司或政府的控制之下,而是实实在在地触手可及。现在,几乎任何人——即使是非技术人员——都可以实现他们的想法,解决那些曾经看起来只有庞大资源才能解决的问题。

LLMs在几乎所有行业中都具有巨大的颠覆潜力。

确实,有人担心这项技术可能会取代我们。然而,技术的作用是让生活更轻松,接管重复性的活动。像以前一样,我们可能仍会做同样的事情,只是有了LLMs的帮助,我们会更高效、更好地完成这些事情。我们将以更少的资源做更多的事情。

我敢说,LLMs已经成为自然语言生成(NLG)技术的基础。它们已经能够为聊天机器人、搜索引擎、编码助手、文本摘要工具以及其他交互式或自动合成书面文本的应用程序提供动力。随着数据集和模型规模的不断扩大,它们的能力也在迅速提升。

此外,还有智能代理。这些自动化奇迹能够感知和解释数字环境(不仅仅是数字环境)的刺激,做出决策并采取相应行动。在LLM的强大支持下,智能代理可以解决复杂问题,并从根本上改变我们与技术互动的方式。我们将在第八章“使用LlamaIndex构建聊天机器人和代理”中更详细地讨论这一主题。

尽管存在的时间相对较短,LLMs已经证明了其非凡的多功能性和强大性能。通过正确的技术和提示,其输出可以大规模地朝着有用的方向引导。随着生成能力的不断发展,LLMs正在推动众多领域的创新。从细致的对话到多模态智能,它们的能力不断扩展。目前,LLM驱动的跨行业和技术创新浪潮没有减缓的迹象。

Gartner Hype Cycle模型作为技术领导者的战略指南,帮助他们不仅基于技术的优点评估新技术,还在组织的特定需求和目标的背景下进行评估([www.gartner.com/en/research…])。

根据当前的采用水平,LLMs目前正处于“启蒙坡段”,准备进入“生产力平台”阶段——即主流采用真正开始起飞的阶段(图1.2)。公司正变得更加务实,专注于它们提供最大价值的专门用途案例:

但是,与其他更具体的技术不同,LLMs更像是一种新的基础设施——一种能够孕育新概念的生态系统,并且毫无疑问,革命性应用将在其中诞生。

这才是它们的真正潜力,而现在正是学习如何利用它们提供的机会的理想时机。

在我们深入探讨能够最大化LLMs能力的创新解决方案之前,让我们先退一步,看看一些挑战和局限性。

探索LLMs的挑战

然而,并不是所有的消息都是好消息。现在是时候讨论LLMs的阴暗面了。

这些模型确实有重要的局限性和一些附带影响。以下是其中一些最重要的,但请注意,这不是详尽的列表。可能还有其他未列出的问题,顺序也是随机选择的:

  1. 缺乏实时数据访问 LLMs是在静态数据集上训练的,这意味着它们掌握的信息只有在它们训练时的数据才是最新的,这可能不包括最新的新闻、科学发现或社会趋势。 当用户寻求实时或最新信息时,这一限制可能是关键的,因为LLMs可能提供过时或不相关的响应。此外,即使它们引用数据或统计数字,这些数字也可能已经发生变化或演变,导致潜在的错误信息。

    注意: 虽然OpenAI最近引入的功能允许底层LLM与Bing集成以从互联网检索新鲜的上下文信息,但这不是LLM固有的特性,而是由ChatGPT界面提供的增强功能。

    由于缺乏实时更新,LLMs本身并不适合需要实时访问用户数据、库存水平或系统状态等任务,例如实时客户服务查询。

  2. 无法内在区分事实真相与虚假信息 如果没有适当的监控,它们可能会生成令人信服的错误信息。相信我——它们并不是故意的。简单来说,LLMs基本上只是寻找合适的词语来组合在一起。

    请参阅图1.3,了解GPT-3.5模型的早期版本如何生成错误信息的示例:

由于这些模型是随机生成文本的,它们的输出并不能保证完全符合逻辑、真实或无害。此外,训练数据本身存在偏见,LLMs可能在没有警告的情况下生成有毒、错误或无意义的文本。由于这些数据有时包含了在线讨论中的不良元素,LLMs有放大其训练数据中存在的有害偏见和有毒内容的风险。

注意: 虽然在使用较旧的AI模型的操控环境中,这种结果很容易实现,但OpenAI的ChatGPT界面使用了更新的模型并采用了额外的保护措施,从而使得这些类型的响应变得不太可能。

  1. 无法在长文档中保持上下文和记忆 对于简单话题或快速的问答会话,与标准的LLM互动可能会非常顺利。但一旦超出了模型的上下文窗口限制,你就会很快体验到它的局限性,因为它会努力保持连贯性,可能会丢失对话或文档前面部分的重要细节。这可能导致片段化或不完整的响应,无法充分解决长时间互动或深入分析的复杂性,就像一个人患有短期记忆丧失一样。

    注意: 尽管最近发布的AI模型如Anthropic的Claude 2.1和Google的Gemini Pro 1.5在上下文窗口限制方面大幅提高了标准,但从成本角度来看,摄取整本书并在如此大的上下文中运行推理可能是不可行的。

  2. 在推理和事实保留方面也表现出不可预测的失败 请参阅图1.4,了解一个典型的逻辑推理问题,即使是像GPT-4这样的较新模型也难以应对:

在这个例子中,答案是错误的,因为唯一符合的情景是Emily在说真话。这样的话,宝藏既不在阁楼也不在地下室。

它们在流畅文本生成之外的能力仍然不一致且有限。盲目相信它们的输出而不保持怀疑态度会引发错误。

大型LLMs的复杂性也降低了其运作的透明度。 缺乏可解释性使得很难审查问题或准确理解它们何时以及为何失败。你得到的只是输出,但没有简单的方法知道导致该输出的实际决策过程或该特定输出所依据的文档事实。因此,LLMs仍然需要谨慎管理,以减轻偏见、错误或危险输出带来的风险。

和许多其他事物一样,事实证明我们不能真正称它们是可持续的,至少目前还不能。 它们的巨大规模使得它们在训练上非常昂贵,并且由于巨大的计算需求,对环境成本也很高。不仅仅是训练本身,它们的使用也同样如此。据一些估计,“ChatGPT的水消耗量在一次20-50个查询的会话中估计为500毫升”——AMPLIFY, VOL. 36, NO. 8:Arthur D. Little的Greg Smith、Michael Bateman、Remy Gillet和Eystein Thanisch。这绝非微不足道。想想无数次失败的尝试,再乘以无数用户每分钟在磨练提示工程技能的次数。]()

还有一个坏消息:随着模型复杂性和训练技术的进步,LLMs正迅速成为机器生成文本的巨大来源。 如此巨大,以至于据预测,它将几乎完全取代人类生成的文本(Brown, Tom B. et al. (2020). Language Models are Few-Shot Learners. arXiv:2005.14165 [cs.CL]. [arxiv.org/abs/2005.14…])。

某种程度上,这意味着它们可能会成为自身成功的受害者。随着越来越多的数据由AI生成,它逐渐污染了新模型的训练数据,降低了它们的能力。 如同生物学中,任何不能保持健康多样性基因库的生态系统都会逐渐退化。

我把好消息留到最后。 如果我告诉你至少有一种解决方案可以部分解决几乎所有这些问题呢? 在很多方面,语言模型非常类似于操作系统。它提供了一个基础层,在其上可以构建应用程序。正如操作系统管理硬件资源并为计算机程序提供服务,LLMs管理语言资源并为各种自然语言处理(NLP)任务提供服务。使用提示与它们交互就像使用汇编语言编写代码。这是一种低级别的交互。但是,正如你即将发现的,还有更复杂和实用的方法来充分利用LLMs的潜力。 现在是时候谈谈RAG了。

使用RAG增强LLMs

首次在2020年的论文中提出的RAG(检索增强生成)技术,由Meta的几位研究人员发表,论文题为《Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks》, 作者为Lewis, Patrick 等人 ([arxiv.org/abs/2005.11…])。RAG是一种结合检索方法和生成模型能力来回答用户问题的技术。其核心思想是首先从包含专有知识的索引数据源中检索相关信息,然后使用检索到的信息通过生成模型生成更加有见地、上下文丰富的响应(图1.5)。

让我们看看这在实践中意味着什么:

更好的事实保留

使用RAG的一个优势是它能够从特定数据源中提取信息,这可以改善事实保留。它不仅依赖于生成模型自身的知识(通常是通用的),还参考外部文档来构建答案,从而增加信息准确性的可能性。

改进的推理能力

检索步骤使RAG模型能够提取与问题具体相关的信息。总体而言,这将导致更合乎逻辑和连贯的推理。这可以帮助克服许多LLMs面临的推理能力限制。

上下文相关性

由于RAG根据查询从外部来源提取信息,它可以比独立的生成模型更加准确地反映上下文。独立的生成模型只能依赖其训练数据,可能没有最新或最相关的上下文信息。不仅如此,RAG还可以提供关于回答所使用的实际知识来源的实际引用。

减少信任问题

虽然不是万无一失,但混合方法意味着RAG原则上不太容易生成完全错误或无意义的答案。这意味着获得有效输出的概率增加。

验证

在RAG设置中,通过建立机制提供用于生成响应的原始信息的参考,通常更容易验证检索文档的可靠性。这可能是朝着更透明和可信的模型行为迈出的一步。

注意事项

即使RAG使LLMs变得更好更可靠,它也不能完全解决它们有时会给出错误或混淆答案的问题。没有一种灵丹妙药可以完全消除之前提到的所有问题。仍然有必要仔细检查和评估它们的输出,我们将在本书后面讨论这样做的方法。正如你可能已经知道或猜到了,LlamaIndex是使用RAG增强基于LLM的应用程序的众多方法之一,而且是一种非常有效的方法。

虽然一些LLM提供商已经开始在其API中引入RAG组件,例如OpenAI的Assistants功能,但使用像LlamaIndex这样的独立框架提供了更多的定制选项。它还允许使用本地模型,实现自托管解决方案,大大降低了与托管模型相关的成本和隐私问题。

总结

在本章中,我们简要介绍了生成式AI(GenAI)和大型语言模型(LLMs)。你了解了像GPT这样的LLMs是如何工作的,以及它们的一些能力和局限性。一个关键的要点是,尽管LLMs非常强大,但它们有一些弱点,例如可能产生错误信息和缺乏推理能力,这需要采用缓解技术。我们讨论了RAG作为克服一些LLM局限性的方法之一。

这些知识为如何实际应用LLMs提供了有用的背景,同时提醒我们要注意它们的风险。同时,你也了解了像RAG这样的技术的重要性,以应对LLMs的潜在缺点。

有了这个入门基础,我们现在准备深入下一章,探索LlamaIndex生态系统。LlamaIndex提供了一个有效的RAG框架,通过索引数据增强LLMs,以获得更准确、合乎逻辑的输出。学习如何利用LlamaIndex工具将是充分发挥LLMs威力的自然下一步。

如何学习AI大模型?

我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。

我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

在这里插入图片描述

第一阶段: 从大模型系统设计入手,讲解大模型的主要方法;

第二阶段: 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;

第三阶段: 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;

第四阶段: 大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;

第五阶段: 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;

第六阶段: 以SD多模态大模型为主,搭建了文生图小程序案例;

第七阶段: 以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。

在这里插入图片描述

👉学会后的收获:👈
• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;

• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;

• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;

• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。

在这里插入图片描述

1.AI大模型学习路线图
2.100套AI大模型商业化落地方案
3.100集大模型视频教程
4.200本大模型PDF书籍
5.LLM面试题合集
6.AI产品经理资源合集

👉获取方式:
😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓

在这里插入图片描述

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

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

相关文章

57_Redis与Springboot的集合应用

前提 要实现,使用Redis存储登录状态 需要一个完整的前端后端的项目 前端项目搭建 解压脚手架安装依赖配置请求代理选做: 禁用EsLint语法检查 Vue Admin Template关闭eslint校验,lintOnSave:false设置无效解决办法_lintonsave: false-CSDN博客 后端项…

C++和R穿刺针吸活检肿瘤算法模型模拟和进化动力学量化差异模型

🎯要点 🎯模拟肿瘤细胞增生进化轨迹 | 🎯肿瘤生长的随机空间细胞自动机模型 | 🎯模拟穿刺活检的收集空间局部的肿瘤块,模拟针吸活检采集长而薄的组织样本 | 🎯构建不同参数模拟合成肿瘤测试集 | &#x1f…

【TS】TypeScript函数类型:提升函数的类型安全性和可读性

🌈个人主页: 鑫宝Code 🔥热门专栏: 闲话杂谈| 炫酷HTML | JavaScript基础 ​💫个人格言: "如无必要,勿增实体" 文章目录 TypeScript函数类型:提升函数的类型安全性和可读性1. 引言2. 基本函…

vue3 基于elementui el-table封装 hooks (未使用ts版本)

elementui-table封装 hooks js-hooks import { ref, reactive, onMounted } from vue import { ElMessage, ElMessageBox, ElNotification } from element-plus /*** FileDescription: el-table 函数式组件hooks--实现一个表格的数据加载、分页、搜索、删除和导出等操作,* fu…

tesseract 图片识别引擎

什么是tesseract Tesseract是一款开源的光学字符识别(OCR)引擎,用于从图像中提取文本。它由Ray Smith在惠普实验室于1985年至1995年开发,并在2005年由惠普将其作为开源软件发布。之后,Tesseract的开发由Google主导&am…

如何理解低代码?怎么用好低代码

怎样理解低代码 理解一个概念最好的办法就是找相关概念进行类比,那么想要单独理解低代码这个概念是不太行的。我们还需要了解“零代码”以及“纯代码”开发的概念。那么什么是低代码?其与“零代码”和“纯代码”的关系又是如何? 零代码 也许…

IDEA资源文件中文乱码问题解决方法

目录 一、问题描述二、解决方法 一、问题描述 IDEA中打开资源文件出现乱码。 二、解决方法 进入“Settings” -> “Editor” -> “File Encodings”,按下图修改箭头所指的三个地方:

java类加载和双亲委派及加载恶意类代码应用

前面的CC1和CC6,都是在Runtime.exec执行命令。如果WAF过滤了Runtime就寄,而且用命令的方式写入shell进行下一步利用,在流量中一个数据包就能把你的行为全部看完,很容易被分析出来。 如果用恶意字节码加载的方式,我们的…

轮询系统的具体原理是什么

一般市面上的轮询系统,看似高深莫测,但都是大差不差的,没有太多的技术含量,都是通过你的订单情况,在数据库中找出一个可以收这个订单的支付方式,然后经过b站来实现与支付通道商交互。 这个过程看似复杂&am…

IP-GUARD文档云备份服务器迁移数据操作说明

一、功能简介 使用文档云备份过程可能出现需要迁移旧数据到新目录的情况(如一开始存储目录设置 不合理,之后变更存储目录),下面介绍迁移备份数据到新目录的方法,迁移后可正常查看、 下载、删除原备份文件。 二、同一计算机上迁移存储目录 当仅需要将存储目录迁移到同一计…

随机森林的可解释性分析(含python代码)

随机森林的可解释性分析 1.引言可解释性的重要性 2.随机森林的原理2.1 基本原理:2.2 随机森林的实现 3.随机森林的可解释性分析3.1 特征重要性3.2 特征重要性3.3 SHAP值3.4 部分依赖图(PDP)3.5 交互特征效应3.6 变量依赖图 4.结论5.参考文献 …

Android和iOS 测试五个最好的开源自动化工具

本文主要介绍Android和iOS 五个最好的开源自动化工具,这里整理了相关资料,希望能帮助测试软件的朋友,有需要的看下 自动化测试在产品测试上有着非常重要的作用。实现测试自动化有多种积极的方式,包括最大限度地减少测试执行时间&…

昇思25天学习打卡营第26天|munger85

ShuffleNet图像分类 和mobilenet一样,也是在资源有限的设备上进行神经网络来做ai图像分类的小模型,在保持精度的同时大大降低了模型的计算量。 是基本块 就是真正的网络,如果模型size是2,就是输出的时候多一些,精细一…

公司监控员工电脑都能监控到什么?公司电脑可以监控到哪些内容?

很多人反馈,公司监控电脑: 那到底为什么安装监控? 公司监控员工电脑又都能监控到什么? 下面小编跟你细细道来~ 第一部分:架空员工电脑监控的目的 在现代企业管理中,电脑监控已成为一种常见的做法。 企…

【LLM大模型】落地RAG系列:RAG入门及RAG面临的挑战和解决方案!!

2023 年以来,RAG 已成为基于大模型的人工智能系统中应用最为广泛的架构之一。因此对 RAG 应用的性能、检索效率、准确性的研究成为核心问题。 本文首先介绍什么是 RAG、为什需要 RAG、介绍 Naive RAG 工作流程及Naive RAG 存在的问题和挑战! 为什么需要 …

10:WiFi模块服务器模式

WiFi模块服务器模式 1、单片机通过WiFi模块向移动设备进行通信 我们通过AT指令ATCWMODE x,可以配置WiFi模块的工作模式。   ATCWMODE1为移动设备模式,这时WiFi模块可以连接其他路由器WiFi,然后可以给连接这个WiFi的其他移动设备发送数据&a…

JAVA静态代理和动态代理

前言: 静态代理: 静态代理是在编译时就已经确定了代理类的具体实现。代理类需要实现与目标类相同的接口,并且持有目标对象的引用。在代理类中实现对目标方法的增强或修改。静态代理的优点是实现简单,可以很好地控制目标对象的行为。缺点是每个目标对象都需要创建一…

从光速常数的可变性看宇宙大爆炸的本质

基于先前关于光速本质的讨论,让我们从函数图像看看宇宙大爆炸到底是什么。 先前已经讨论过,在量子尺度上,长度的实际对应物是频率的差异,因为只有频率差异才能在这个尺度上区分相邻时空的两点,而两点之间“差异的大小”…

再不怕数据丢失了!全量增量的迁移工具发布!

随着用户量的增加,我们收到了各种各样的需求反馈。 为了更好地拓展Chat2DB Pro 产品, 我们很高兴地宣布推出了插件市场功能, 同时重磅推出数据迁移工具DBMotion插件。 🚀 关于 DBMotion 插件 DBMotion插件,是一款基于沃趣科技的 DBMotion 数据迁移工具…

软件兼容性测试内容和步骤简析,湖南软件测评公司分享

软件兼容性测试是确保软件产品在不同的硬件环境、操作系统、浏览器和设备上正常运行的重要环节。随着科技的迅猛发展,各类软件应用层出不穷,用户对软件的多样性需求日益增加,软件的兼容性显得尤为重要。 软件兼容性测试内容包含多个方面&…