语言模型进化史(下)
由于篇幅原因,本文分为上下两篇,上篇主要讲解语言模型从朴素语言模型到基于神经网络的语言模型,下篇主要讲解现代大语言模型以及基于指令微调的LLM。文章来源是:https://www.numind.ai/blog/what-are-large-language-models
四、现代语言大模型
Transformer的发明标志着现代LLM时代的开始。 自2018年以来, AI实验室开始训练规模越来越大的模型。令众人惊讶的是,这些模型的质量也在不断提高!下图对这些模型进行了可视化,我们将重点介绍其中值得关注的模型:
这些语言模型主要分为三类。一是“仅编码器(encoder-only)”组(上图中的粉色部分),该类语言模型擅长文本理解,因为它们允许信息在文本的两个方向上流动。二是“仅解码器(decoder-only)”组(上图中的蓝色部分),该类语言模型擅长文本生成,因为信息只能从文本的左侧向右侧流动,以自回归方式有效生成新词汇。三是“编码器-解码器(encoder-decoder)”组(上图中的绿色部分),该类语言模型对上述两种模型进行了结合,用于完成需要理解输入并生成输出的任务,例如翻译。
这一切都主要始于文本理解类模型。最初是使用RNN的ELMo,之后是谷歌著名的BERT模型及其派生模型(如RoBERTa),它们都基于Transformer。这些模型通常具有几亿个参数(相当于约1GB的计算机内存),在大约10GB到100GB的文本上进行训练(通常为几十亿个单词),并且可以在现代笔记本电脑上以约0.1秒的速度处理一段文本。这些模型极大地提升了文本理解任务的性能,如文本分类、实体检测和问题回答等。 这已然是NLP(自然语言处理)领域的一场革命,不过才刚刚拉开序幕……
在文本理解类语言模型发展的同时,OpenAI开始基于Transformer创建文本生成类语言模 型。首先是2018年的GPT-1,有1亿个参数;然后是2019年的GPT-2,拥有高达15亿个参数,并在40GB的文本上进行了训练。至少对我来说,GPT-2的创建是一个至关重要的时刻。以下是GPT-2可以生成的文本示例,从一个由人类撰写的段落开始:
生成的英语文本质量很不错,而且具有连贯性。例如,科学家的名字没有改变,而这在基于RNN的模型中是个经典问题。由于GPT-2在所生成文本的质量上取得了巨大突破,为避免滥用,OpenAI最初决定不向公众发布。可以说GPT-2标志着LLM正朝着正确的方向发展。 需要注意的是:使用这类语言模型需要先提供一个起始文本,这个起始文本被称为提示(prompt)。
一年后(2020年),OpenAI创建了GPT-3。GPT-3是一个具有1750亿个参数的模型(需要700GB的计算机内存来存储模型!),该模型不仅规模显著扩大,文本生成质量也有重大改进。除了性能的提升外,GPT-3还让人们对未来如何使用LLM大开眼界。
首先,GPT-3能够编写代码。例如, 你可以使用GPT-3来生成(非常)简单的网站,只需在提示中描述网站的外观即可。以下是一个示例,让GPT-3使用HTML创建一个按钮:
这些基本的编码能力在当时并不十分实用, 但它们的出现意味着软件开发在未来可能会发生根本性转变。
GPT-3另一令人瞩目的能力是能够进行上下文学习, 它可以通过提示中所展示的示例来学习如何执行任务。这意味着你可以通过编写提示来定制LLM,而无需更改它们的权重。这一能力开辟了一种全新的、完全基于提示的自然语言处理方式,如今十分受欢迎。
总而言之,GPT-3展示了“提示”作为一种新方式的潜力,可以让机器通过自然语言按照我们的意愿执行任务。
注意:GPT-3比GPT-2要大得多。 自2018年以来,模型的规模急剧增加。以下是一些值得关注的LLM及其规模:
在两年时间里,模型参数的数量增加了1000倍,目前最大的模型(如GPT-4)已接近1万亿个参数,这是因为模型规模的增加与性能的改善密切相关,并且目前还未达到性能瓶颈。这些模型规模十分庞大,与人脑相比,人脑约有1000亿个神经元,每个神经元平均与其他1000个神经元相连接,总共约有100万亿个连接。从某种意义上说,最大的LLM仍然比人脑小100倍。当然,这只是一个非常宽泛的比较,因为人脑和当前LLM使用的架构和学习方法都截然不同。
另一个有趣的指标是这些模型在训练阶段所“阅读(read)”的单词数量。
如你所见, 数量十分庞大。这些模型在训练过程中会接触超1000亿个单词,是一个人在一生中听到或阅读单词数量的100倍以上!这显示出神经网络与人脑的不同之处:神经网络的学习速度比人类慢得多,但可以获得比人类接触的多得多的数据。
需要注意的是, LLM在训练过程中所接触到的单词数量并未像参数数量那样迅速增长(从GPT-1到GPT-3只增长了3倍)。这是因为优先考虑模型规模,不过结果证明这是一个小小的失误。最新的模型并没有比GPT-3大很多,但通过处理更多单词来进行训练。
这种对数据的渴求导致了一个问题, 即可用文本的总量存在硬性限制,约为数万亿个单词,而模型正在接近这一限制。虽然仍有可能循环遍历所有文本,但这会导致模型性能的回报递减。总而言之,可得出结论:网络在训练阶段处理的有效限制是几十万亿个单词,比GPT-4的数量约多出10倍。
另一个问题是, 通过用更多的数据训练更大的模型,计算成本也在增加。以下是训练上述模型的预估计算成本:
为显著超越当前模型的性能,下一代模型需要耗费数亿美元的计算资源。虽然考虑到这些模型能带来的好处,这一成本是合理的,但如此巨大的花费仍然是一个问题。
模型的扩展变得越来越困难。幸运的是,扩大规模并不是改进LLM的唯一途径。2022年末,一项创新开启了另一场革命,这次的影响远远超出了NLP领域。
五、指令调优和聊天机器人LLM
GPT-3揭示了提示的潜力,但撰写提示并不容易。事实上,传统语言模型经训练可以模仿其在网络上看到的内容。 因此,要想创建一个好的提示,你必须清楚网络上哪种起始文本可能会引导模型生成你所期望的结果。这是一种奇怪的游戏,也是一种找到正确表述的艺术,你需要改变措辞,假装自己是专家,展示如何逐步思考的示例等等。这一过程叫做提示工程, 这使得使用这些LLM变得困难。
为解决这个问题,研究人员一直在探索如何修改基础LLM,以让其更好地遵循人类指令。现在主要有两种方法:一是使用人类编写的指令-回答对(instruction-answer pairs),并在此数据集上对基础LLM进行微调(即继续训练)。二是让LLM生成几个可能的答案,然后由人类对答案评分,并使用强化学习在此数据集上对LLM微调。这就是著名的RLHF(人类反馈的强化学习)的过程。此外,我们还可以将两种方法相结合,OpenAI在InstructGPT和ChatGPT中就对这两者进行了结合。
将这两种技术结合在一起可以得到一个经过指令调整的LLM。调整后的LLM比基础模型更擅长遵循人类指令,使用起来更加容易。
经过指令调整的LLM已经非常出色了,但还有最后一步才能将这些LLM真正转化为每个人都可以使用的东西——聊天机器人。 OpenAI在2022年12月发布了ChatGPT,一个基于GPT-3.5的聊天机器人。它的创建方式与InstructGPT相同,但这次使用的是整个对话而不仅仅是指令-回答对。
ChatGPT发布后,基于LLM的新型聊天机器人开始层出不穷。 OpenAI使用GPT-4来代替GPT-3.5,对ChatGPT进行了改进,Anthropic发布了Claude,Google推出Bard,Meta也 研发出了LLaMA,还有几个开源LLM正在发布过程中。这是一次真正的模型大爆炸,将会带来许多令人兴奋的应用,NuMind也会为此出一份力。
ChatGPT发布两个月后,迅速拥有了上亿用户,成为有史以来用户增长最快的产品。人们用ChatGPT来根据要点编写电子邮件、重新组织文本、总结文本、编写代码,或学习东西(在此之前,搜索引擎一直垄断着这项任务)。ChatGPT的发布是LLM发展史的转折点,它让 人们意识到了LLM的潜力,引发了“AI竞赛”,世界上主要人工智能实验室和初创公司都参与其中。
值得注意的是, LLM的突然普及也引发了人们的担忧。人们担心LLM被有心人利用,做一些有害的事情,所以创建开放式LLM聊天机器人必须确保它们的“安全”性(或“与人类价值观保持一致”),也就是说它们不能帮助制造炸弹等。目前有一些方法可以绕过聊天机器人的安全防御措施,但随着时间推移,这些安全措施会逐渐完善,想绕过它们将变得十分困难。
六、语言大模型的未来
近年来, LLM取得了很大进步,人们对它的热情达到了空前高度,在这一领域投入了大量精力。那么,LLM的未来将如何发展?虽然预测未来很难,但我们也有一些看法:
模型大小和训练规模将继续扩大。扩展在过去取得了非常好的效果,且仍有提升空间,但问题是,模型的训练成本急剧增长,逐渐让人望而却步(>1亿美元)。更好的GPU和新的专用硬件有助于扩展模型规模,但它们的开发和生产需要时间。此外,最大的模型已经迭代了所有书籍和整个网络,这意味着我们正在达到可用训练数据的极限(即“词元危机”)。
因此,可以肯定的是,在未来几年内,参数数量不会像过去那样出现爆发式增长。最大的模型今年应该会稳定在1万亿参数以下规模, 然后以每年50%的速度增长。
LLM将超越纯语言模型,将图像和视频纳入训练数据,成为多模态模型。从图像和视频中学习可能有助于模型更好地理解世界。GPT-4就是在图像和文本上进行训练的,且取得了少许性能提升。利用视频数据训练LLM可能给这一领域带来质的改变,但这需要大量计算。预计还需两年多的时间才能真正实现利用视频训练“语言”大模型。
扩大规模、实现语言模型向多模态模型的转变需要大量算力。为缓解这一问题,我们可以采用更好的神经架构和训练程序,这些架构和训练程序要么计算强度较低,要么可以用更少的数据进行学习(人类大脑证明这是可能的)。然而更可能的是类似于RNN的内存会卷土重来,因 为这种内存运行时的效率非常高(例如最近的RWKV架构)。
此外,还可能有一些更大的变化, 例如LLM不以自回归的方式生成,而是以自上而下的方式 生成(例如在生成单词之前做出(随机)决定),这种做法可能更合乎逻辑(这就是神经网络目前生成图像的方式)。到底何时会开发出这样的新架构/方法还很难说,但我们预计应该就 在未来几年,一旦开发出来, LLM模型的性能将得到大幅提升。
另一个改进方向是继续进行指令调优,让更多人参与到“教育”LLM(即与AI对齐)的过程中。这可以由私人AI实验室来实现,也可以是一个更像维基百科的众包项目,以改进和对齐开放模型的LLM能力。在这个问题上,我们还是希望偏离传统的RLHF,而是让人们与模型对话来进行教导,就像我们对待孩子一样。我不确定这种项目的具体时间线,但我已经思考了一段时间,非常希望看到它的实现。
上文我们只讨论了改进实际模型的方法,但实际上有一些方法可以在不改变模型的情况下改进LLM。方法之一就是为LLM提供工具。这种工具可以是用于查找准确信息的搜索引擎,或者是用于进行基本数学计算的计算器。此外,它还可以是一个结合了推理引擎(符号人工智能的经典组件)的知识库,如Wolfram Alpha,用于查找事实、进行逻辑推理或其他神经网络不擅长的计算。当然,这个工具还可以是一个用于编写和运行代码的完整编程环境。LLM可以通 过生成触发API调用的特殊词元(单词)来使用这些工具, 然后将API的输出插入到生成的文本中。
上述趋势实际上已经开始了(例如,ChatGPT插件、LangChain库和Toolformer论文),我相信这些工具将成为LLM的核心。
改进LLM的另一个方法是以更智能的方式使用它们,让它们更好地完成任务。这可以通过巧妙的提示或更高级的程序来实现。比如说我们可以让LLM按步骤进行思考(即思想链提示(chain-of-thoughts prompting)),并提高LLM在逻辑任务上的表现。以下是提示LLM按步骤思考的示例:
同样地,我们可以要求LLM反思、批判自己的输出,并对其进行迭代修改。 通过迭代,我们可以显著提高LLM性能, 尤其是生成代码方面的性能。我们还可以更进一步,创建完全自主的智能体,这些智能体可以管理任务列表并迭代任务,直到达到主要目标(请参考AutoGPT和BabyAGI)。目前,这些自动化智能体的运行效果并不理想,但它们的效果会逐步提升,很难说这些自动化智能体会发展到何种程度,对LLM产生何种影响。
由于LLM可以通过这些程序(思想链、迭代批评等) 改进答案,因此,我们可以使用这些程序创建指令-答案对,然后在指令-答案对上按顺序对LLM微调以提高其性能。这种自我完善是可能的(参见https://arxiv.org/abs/2210.11610),我相信它具有很大的潜力。例如,我们可以想象模型为了变得更加自洽而与自身进行讨论,这是一种自我反思过程。可能会进一步提升LLM的表现。
LLM可能还有其他改进方向, 总的来说,我们无法确定LLM的未来,但显然它们将继续发展下去。理解和生成文本的能力使LLM成为了一项基本技术。即使在目前的发展情况下,LLM也将解锁大量应用程序,日常工作中的数字助理就是一个很好的例子,更疯狂的是,LLM甚至可能引导我们创造某种超级智能。
相关文章:
语言模型进化史(下)
由于篇幅原因,本文分为上下两篇,上篇主要讲解语言模型从朴素语言模型到基于神经网络的语言模型,下篇主要讲解现代大语言模型以及基于指令微调的LLM。文章来源是:https://www.numind.ai/blog/what-are-large-language-models 四、现…...
设计模式之旅:工厂模式全方位解析
简介 设计模式中与工厂模式相关的主要有三种,它们分别是: 简单工厂模式(Simple Factory):这不是GoF(四人帮,设计模式的开创者)定义的标准模式,但被广泛认为是工厂模式的…...
大数据时代的生物信息学:挖掘生命数据,揭示生命奥秘
在当今科技日新月异的时代,大数据如同一座蕴藏无尽宝藏的矿山,而生物信息学则是那把锐利的探矿锤,精准有力地敲击着这座“生命之矿”,揭示出隐藏在其深处的生命奥秘。随着基因测序技术的飞速进步与广泛应用,生物医学领…...
微信小程序开发【从入门到精通】——页面导航
👨💻个人主页:开发者-曼亿点 👨💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨💻 本文由 曼亿点 原创 👨💻 收录于专栏:…...
嵌入式|蓝桥杯STM32G431(HAL库开发)——CT117E学习笔记15:PWM输出
系列文章目录 嵌入式|蓝桥杯STM32G431(HAL库开发)——CT117E学习笔记01:赛事介绍与硬件平台 嵌入式|蓝桥杯STM32G431(HAL库开发)——CT117E学习笔记02:开发环境安装 嵌入式|蓝桥杯STM32G431(…...
SQLite中的隔离(八)
返回:SQLite—系列文章目录 上一篇:SQLite版本3中的文件锁定和并发(七) 下一篇:SQLite 查询优化器概述(九) 数据库的“isolation”属性确定何时对 一个操作的数据库对其他并发操作可见。 数据库连接之…...
Zabbix6 - Centos7部署Grafana可视化图形监控系统配置手册手册
Zabbix6 - Centos7部署Grafana可视化图形监控系统配置手册手册 概述: Grafana是一个开源的数据可视化和监控平台。其特点: 1)丰富的可视化显示插件,包括热图、折线图、饼图,表格等; 2)支持多数据…...
Electron无边框自定义窗口拖动
最近使用了electron框架,发现如果自定义拖动是比较实用的;特别是定制化比较高的项目,如果单纯的使用-webkit-app-region: drag;会让鼠标事件无法触发; 过程中发现问题: 1.windows缩放不是100%后设置偏移界面会缩放,感觉像吹起的气…...
vue3+echarts:echarts地图打点显示的样式
colorStops是打点的颜色和呼吸灯、label为show是打点是否显示数据、rich里cnNum是自定义的过滤模板用来改写显示数据的样式 series: [{type: "effectScatter",coordinateSystem: "geo",rippleEffect: {brushType: "stroke",},showEffectOn: &quo…...
vue3从精通到入门7:ref系列
Vue 3 的 Ref 是一个集合,包括多个与响应式引用相关的功能,这些功能共同构成了 Vue 3 响应式系统的重要组成部分。以下是更全面的介绍: 1.ref ref 接受一个内部值并返回一个响应式且可变的 ref 对象。这个对象具有一个 .value 属性…...
灵动翻译音频文件字幕提取及翻译;剪映视频添加字幕
参考:视频音频下载工具 https://tuberipper.com/21/save/mp3 1、灵动翻译音频文件字幕提取及翻译 灵动翻译可以直接chorme浏览器插件安装: 点击使用,可以上传音频文件 上传后自动翻译,然后点击译文即可翻译成中文,…...
在Gitee上创建新仓库
1. 登录到你的Gitee账户。 2. 在Gitee首页或仓库页面,点击“新建仓库”按钮。 3. 填写仓库名称、描述(可选)、选择仓库是否公开等信息。 4. 点击“创建仓库”按钮完成创建。 2. 本地代码连接到远程仓库 假设你已经在本地有一个项目&#…...
linux 配置NFS
1、NFS简介 NFS 是Network File System的缩写,即⽹络⽂件系统。NFS 的基本原则是“容许不同的客户 端及服务端通过⼀组RPC分享相同的⽂件系统”,它是独⽴于操作系统,容许不同硬件及操作 系统的系统共同进⾏⽂件的分享。 NFS在⽂件传送或信息…...
大疆御Pro(一代)更换晓spark摄像头评测
御Pro是17年的老机器,除了摄像头有点拉跨,续航、抗风、操作性在大疆民用系列里面算是数得上的。 机缘巧合,手头有几个御的空镜头(里面的芯片已经去掉了),还有几个晓的摄像头(只有芯片࿰…...
【小技巧】gitlab怎么在每次git push的时候不用输入账号密码?使用 SSH 密钥 的原理是什么?
1. gitlab怎么在每次git push的时候不用输入账号密码? 要在每次执行 git push 时避免输入 GitLab 的账号和密码,你可以通过以下几种方法实现: 使用 SSH 密钥:这是最常用的方法,通过生成 SSH 密钥并将其添加到 GitLab …...
笔记: JavaSE day15 笔记
第十五天课堂笔记 数组 可变长参数★★★ 方法 : 返回值类型 方法名(参数类型 参数名 , 参数类型 … 可变长参数名){}方法体 : 变长参数 相当于一个数组一个数组最多只能有一个可变长参数, 并放到列表的最后parameter : 方法参数 数组相关算法★★ 冒泡排序 由小到大: 从前…...
【Golang星辰图】数据处理的航海家:征服数据海洋的航行工具
数据处理的建筑师:用Go语言中构建稳固的数据分析建筑物 前言 数据处理和分析是现代计算机科学中的关键任务之一,而Go语言作为一门现代化的编程语言,也需要强大的数据处理和分析库来支持其在这一领域的应用。本文将介绍几款优秀的数据处理和…...
容器网络测试关键问题
资料问题 主要影响客户体验, 低级问题. 类似于单词拼写错误, 用词有歧义,等。 另一点是,我们的用户文档,主要偏向于技术向的描述,各种参数功能罗列。友商有比较好的最佳实践操作说明。我们后面也会都增加这样的最佳实践。golang o…...
6、Cocos Creator 2D 渲染组件:Sprite 组件
Sprite 组件 Sprite(精灵)是 2D/3D 游戏最常见的显示图像的方式,在节点上添加 Sprite 组件,就可以在场景中显示项目资源中的图片。 属性功能说明Type渲染模式,包括普通(Simple)、九宫格&#x…...
算法沉淀——动态规划篇(子数组系列问题(上))
算法沉淀——动态规划篇(子数组系列问题(上)) 前言一、最大子数组和二、环形子数组的最大和三、乘积最大子数组四、乘积为正数的最长子数组长度 前言 几乎所有的动态规划问题大致可分为以下5个步骤,后续所有问题分析都…...
通知中心架构:打造高效沟通平台,提升信息传递效率
随着信息技术的快速发展,通知中心架构作为一种关键的沟通工具,正逐渐成为各类应用和系统中必不可少的组成部分。本文将深入探讨通知中心架构的意义、设计原则以及在实际场景中的应用。 ### 什么是通知中心架构? 通知中心架构是指通过集中管…...
【Arduino使用SNR9816TTS模块教程】
【Arduino使用SNR9816TTS模块教程】 1.前言2. 硬件连接3. Arduino代码3.1 环境配置3.2 Arduino源码 4. 调试步骤5. 总结 1.前言 在今天的教程中,我们将详细介绍如何使用Arduino IDE开发ESP32C3与汕头新纳捷科技有限公司生产的SNR9816TTS中文人声语音合成模块进行交…...
牛客练习赛123(A,B,C,D)
牛客挑战赛,练习赛和小白月赛周赛不是一种东西。这玩意跟CF的div12差不多难度。而且找不到题解。所以决定不等题解补题了,直接写题解了。 比赛链接 光速签到下班,rk。感觉E可能能补掉,看情况补吧。 B题感觉之前考了两次&#x…...
docker部署-RabbitMq
1. 参考 RabbitMq官网 docker官网 2. 拉取镜像 这里改为自己需要的版本即可,下面容器也需要同理修改 docker pull rabbitmq:3.12-management3. 运行容器 docker run \ --namemy-rabbitmq-01 \ -p 5672:5672 \ -p 15672:15672 \ -d \ --restart always \ -…...
【智能算法】蜜獾算法(HBA)原理及实现
目录 1.背景2.算法原理2.1算法思想2.2算法过程 3.结果展示4.参考文献 1.背景 2021年,FA Hashim等人受到自然界中蜜獾狩猎行为启发,提出了蜜獾算法((Honey Badger Algorithm,HBA)。 2.算法原理 2.1算法思想 蜜獾以其…...
9、鸿蒙学习-开发及引用静态共享包(API 9)
HAR(Harmony Archive)是静态共享包,可以包含代码、C库、资源和配置文件。通过HAR可以实现多个模块或多个工程共享ArkUI组件、资源等相关代码。HAR不同于HAP,不能独立安装运行在设备上,只能作为应用模块的依赖项被引用。…...
[Pytorch]:PyTorch中张量乘法大全
在 PyTorch 中,有多种方法可以执行张量之间的乘法。这里列出了一些常见的乘法操作: 总结: 逐元素乘法:*ortorch.mul()矩阵乘法:ortorch.mm()ortorch.matmul()点积:torch.Tensor.dot()批量矩阵乘法ÿ…...
【软考】防火墙技术
目录 1. 概念2. 包过滤防火墙3. 应用代理网关防火墙4. 状态检测技术防火墙 1. 概念 1.防火墙(Firewall)是建立在内外网络边界上的过滤封锁机制,它认为内部网络是安全和可信赖的,而外部网络是不安全和不可信赖的。2.防火墙的作用是防止不希望的、未经授权…...
OpenHarmony实战:Makefile方式组织编译的库移植
以yxml库为例,其移植过程如下文所示。 源码获取 从仓库获取yxml源码,其目录结构如下表: 表1 源码目录结构 名称描述yxml/bench/benchmark相关代码yxml/test/测试输入输出文件,及测试脚本yxml/Makefile编译组织文件yxml/.gitat…...
嵌入式C语言--GPT通用定时器
嵌入式C语言–GPT通用定时器 嵌入式C语言--GPT通用定时器 嵌入式C语言--GPT通用定时器一. GPT基本概念二. GPT的作用三. GPT通道的四个状态四. Continuous/One-Shot模式3.1)Continuous模式3.2)One-Shot模式 一. GPT基本概念 GPT即General Purpose Timer…...
凡科轻站/外贸网站推广费用
Python Web(1):建立第一个Web项目 海天一树X关注 2018.09.03 12:07:42字数 361阅读 12,934 一、 安装PyCharm专业版 注意不要安装社区版,因为社区版没有集成Django框架,得自己安装配置,过程比较繁琐 二、…...
微信咋做自己的网站/宣传软文模板
184行前添加: if (asm.GetType().FullName ! "System.Reflection.RuntimeAssembly") continue;忽略错误 缓存的Provider 不能执行 存储过程,报 NotSupportedException("Command tree type " commandTree.GetType() " is not …...
做微课常用的网站有哪些/如何交换优质友情链接
香蕉派 Banana Pi BPI-M2四核开源开发板 全志H3芯片方案,也可以支持Allwinner H2 ,H3,H5芯片。Banana Pi BPI-M2Banana PI BPI-M2 是一款四核高性能单板计算机,采用全志H3处理器。Banana PI BPI-M2兼容性强大,可以跑android系统,Debian linux…...
大连城市建设档案馆官方网站/seo搜索引擎优化工作内容
1.介绍 Spring Cloud Config为分布式系统中的外部配置提供服务器和客户端支持。使用Config Server,您可以在所有环境中管理应用程序的外部属性。客户端和服务器上的概念映射与Spring Environment和PropertySource抽象相同,因此它们与Spring应用程序非常契…...
wordpress添加表单/怎么开发网站
QSlider类中的常用信号 valueChanged: 当滑块位置发生改变时触发此信号sliderPressed: 当用户按下滑块时触发此信号sliderMoved: 当用户拖动滑块时触发此信号sliderReleased: 当用户释放滑块时触发此信号QCmoboBox类中的常用信号 …...
深圳企业官网网站建设/重庆森林讲了什么故事
点击蓝字关注我们吧!输入当我们需要和开发交互式工具的时候,需要接收用户的输入,怎么做呢?name input("Name:") age input("Age:") info ---------- info of %s ---------- Name:%s Age&#…...