当前位置: 首页 > news >正文

人工智能揭示矩阵乘法的新可能性

人工智能揭示矩阵乘法的新可能性


数学家酷爱漂亮的谜题。当你尝试找到最有效的方法时,即使像乘法矩阵(二维数字表)这样抽象的东西也会感觉像玩一场游戏。这有点像尝试用尽可能少的步骤解开魔方——具有挑战性,但也很诱人。除了魔方,每一步可能的步数为 18;对于矩阵乘法,即使在相对简单的情况下,每一步都可以呈现超过 10^12 个选项。

在过去的 50 年里,研究人员以多种方式解决了这个问题,所有这些都是基于人类直觉辅助的计算机搜索。2022 年 10 月,人工智能公司 DeepMind 的一个团队展示了如何从一个新的方向解决这个问题,在《Nature》杂志的一篇论文中报告说,他们已经成功地训练了一个神经网络来发现新的快速矩阵乘法算法。就仿佛 AI 找到了解决极其复杂的魔方的未知策略。

论文链接:https://www.nature.com/articles/s41586-022-05172-4

「这是一个非常巧妙的结果。」哥伦比亚大学计算机科学家 Josh Alman 说,但他和其他矩阵乘法专家也强调,这种人工智能辅助将补充而不是取代现有方法——至少在短期内是这样。「这就像对可能成为突破的事物的概念验证。」Alman 说。结果只会帮助研究人员完成他们的任务。

仿佛是为了证明这一点,《自然》杂志的论文发表三天后,两位奥地利研究人员展示了新旧方法如何相互补充。他们使用传统的计算机辅助搜索来进一步改进神经网络发现的一种算法。

论文链接:https://arxiv.org/pdf/2210.04045.pdf

结果表明,就像解决魔方的过程一样,通往更好算法的道路将充满曲折。

乘法矩阵

矩阵乘法是所有数学中最基本和最普遍的运算之一。要将一对 n×n 矩阵相乘,每个矩阵都有 n^2 个元素,你可以将这些元素以特定组合相乘并相加以生成乘积,即第三个 n×n 矩阵。将两个 n×n 矩阵相乘的标准方法需要 n^3 次乘法运算,因此,例如,一个 2×2 矩阵需要八次乘法。

对于具有数千行和列的较大矩阵,此过程很快就会变得麻烦。但在 1969 年,数学家 Volker Strassen 发现了一种使用七个而不是八个乘法步骤将一对 2×2 矩阵相乘的过程,代价是引入了更多的加法步骤。

如果你只想乘以一对 2×2 矩阵,则 Strassen 算法不必要地复杂化。但他意识到它也适用于更大的矩阵。那是因为矩阵的元素本身可以是矩阵。例如,可以将具有 20,000 行和 20,000 列的矩阵重新设想为一个 2×2 矩阵,其四个元素各为 10,000×10,000 矩阵。然后可以将这些矩阵中的每一个细分为四个 5,000×5,000 块,依此类推。Strassen 可以应用他的方法在此嵌套层次结构的每一层上乘以 2×2 矩阵。随着矩阵大小的增加,减少乘法所节省的成本也会增加。

Strassen 的发现促使人们开始寻找高效的矩阵乘法算法,此后启发了两个不同的子领域。一个侧重于一个原则问题:如果你想象将两个 n×n 矩阵相乘并让 n 趋于无穷大,那么最快的算法中的乘法步骤数如何与 n 成比例?

最佳缩放比例的当前记录 n^2.3728596 属于麻省理工学院计算机科学家 Alman 和 Virginia Vassilevska Williams。(最近发布的预印本报告了使用新技术的微小改进。)但这些算法纯粹是理论上的兴趣,仅在荒谬的大矩阵上胜过 Strassen 等方法。

论文链接:https://arxiv.org/abs/2210.10173

第二个子领域的思考规模较小。在 Strassen 的工作之后不久,以色列裔美国计算机科学家 Shmuel Winograd 表明 Strassen 已经达到了理论极限:不可能用少于七个乘法步骤来乘以 2×2 矩阵。但对于所有其他矩阵大小,所需乘法的最小数量仍然是一个悬而未决的问题。小矩阵的快速算法可能会产生巨大的影响,因为当乘以合理大小的矩阵时,这种算法的重复迭代可能会击败 Strassen 的算法。

论文链接:https://www.sciencedirect.com/science/article/pii/0024379571900097

不幸的是,可能性的数量是巨大的。即使对于 3×3 矩阵,「可能的算法数量也超过了宇宙中的原子数量,」DeepMind 研究员兼新工作的负责人之一 Alhussein Fawzi 说。

面对这些令人眼花缭乱的选项,研究人员通过将矩阵乘法转化为一个看起来完全不同的数学问题——一个计算机更容易处理的问题——取得了进展。可以将两个矩阵相乘的抽象任务表示为一种特定类型的数学对象:称为张量的三维数字数组。然后,研究人员可以将这个张量分解为基本分量的总和,称为「rank-1」张量;这些中的每一个都代表相应矩阵乘法算法中的不同步骤。这意味着找到一个有效的乘法算法相当于最小化张量分解中的项数——项越少,涉及的步骤就越少。

通过这种方式,研究人员发现了新的算法,可以使用比标准 n^3 更少的乘法步骤来乘以许多小矩阵大小的 n×n 矩阵。但是,不仅优于标准而且优于 Strassen 小矩阵算法的算法仍然遥不可及——直到现在。

Game On

DeepMind 团队通过将张量分解变成单人游戏来解决这个问题。他们从 AlphaGo 的深度学习算法入手——AlphaGo 是另一个 DeepMind AI,它在 2016 年学会了玩棋盘游戏 Go,足以击败顶尖的人类棋手。

所有的深度学习算法都是围绕神经网络构建的:人工神经元网络被分类成层,连接强度可以变化,代表每个神经元对下一层神经元的影响程度。这些连接的强度在训练过程的多次迭代中得到调整,在此期间神经网络学习将它接收到的每个输入转换为有助于算法实现其总体目标的输出。

在 DeepMind 的新算法(称为 AlphaTensor)中,输入代表通往有效矩阵乘法方案的步骤。神经网络的第一个输入是原始矩阵乘法张量,其输出是 AlphaTensor 为其第一步选择的 rank-1 张量。该算法从初始输入中减去这个 rank-1 张量,产生一个更新的张量,该张量作为新输入反馈到网络中。重复该过程,直到最终起始张量中的每个元素都减少为零,这意味着没有更多的 rank-1 张量可以取出。

在这一点上,神经网络发现了一个有效的张量分解,因为它在数学上保证了所有 rank-1 张量的总和恰好等于起始张量。到达那里所采取的步骤可以转换回相应的矩阵乘法算法的步骤。

游戏是这样的:AlphaTensor 反复将张量分解为一组 rank-1 分量。每次,如果 AlphaTensor 找到减少步数的方法,它就会获得奖励。但胜利的捷径一点也不直观,就像你有时必须在魔方上拼凑出一张完美有序的脸,然后才能解决整个问题。

该团队现在有了一种算法,理论上可以解决他们的问题。他们只需要先训练它。

新路径

与所有神经网络一样,AlphaTensor 需要大量数据进行训练,但张量分解是一个众所周知的难题。研究人员可以为网络提供有效分解的例子很少。相反,他们通过在更简单的逆问题上进行训练来帮助算法开始:将一堆随机生成的 rank-1 张量相加。

布朗大学计算机科学家 Michael Littman 说:「他们正在使用简单的问题为困难的问题生成更多数据。」将这种向后训练过程与强化学习相结合,其中 AlphaTensor 在寻找有效分解时会产生自己的训练数据,其效果比单独使用任何一种训练方法都要好得多。

DeepMind 团队训练 AlphaTensor 来分解代表矩阵乘法的张量,最高可达 12×12。它寻求用于将普通实数矩阵相乘的快速算法,以及特定于更受约束的设置(称为模 2 运算)的算法。(这是仅基于两个数字的数学,因此矩阵元素只能是 0 或 1,并且 1 + 1 = 0。)研究人员通常从这个更受限制但仍然广阔的空间开始,希望这里发现的算法可以适用于实数矩阵。

训练后,AlphaTensor 在几分钟内重新发现了 Strassen 的算法。然后,它针对每种矩阵大小发现了多达数千种新的快速算法。这些与最著名的算法不同,但乘法步骤数相同。

在少数情况下,AlphaTensor 甚至打破了现有记录。它最令人惊讶的发现发生在模 2 运算中,它发现了一种新算法,可以在 47 个乘法步骤中将 4×4 矩阵相乘,比 Strassen 算法两次迭代所需的 49 个步骤有所改进。它还打破了最著名的 5×5 模 2 矩阵算法,将所需的乘法次数从之前的 98 次记录减少到 96 次。(但这个新记录仍然落后于使用 5×5 矩阵击败 Strassen 算法所需的 91 步。)

这一引人注目的新结果引起了很多兴奋,一些研究人员对基于 AI 的现状改进大加赞赏。但并非矩阵乘法领域中的每个人都对此印象深刻。「我觉得它有点被夸大了,」Vassilevska Williams 说。「这是另一种工具。这不像是,[哦,计算机打败了人类,] 你知道吗?」

研究人员还强调,破纪录的 4×4 算法的直接应用将受到限制:它不仅只在模 2 算法中有效,而且在现实生活中,除了速度之外还有其他重要的考虑因素。

Fawzi 也认为,这仅仅是个开始。「有很大的改进和研究空间,这是一件好事,」他说。

最后的转折

相对于成熟的计算机搜索方法,AlphaTensor 的最大优势也是它最大的弱点:它不受人类直觉的约束,无法判断好的算法是什么样子的,因此它无法解释自己的选择。这使得研究人员很难从其成就中学习。

但这可能并没有看上去那么大的缺点。在 AlphaTensor 结果公布几天后,奥地利林茨大学(JKU)的数学家 Manuel Kauers 和他的研究生 Jakob Moosbauer 报告说又向前迈进了一步。

Manuel Kauers 调整了 DeepMind 的方法以产生进一步的改进。——Jakob Moosbauer

当 DeepMind 论文发表时,Kauers 和 Moosbauer 正在使用传统的计算机辅助搜索来寻找新的乘法算法。但与大多数以新的指导原则重新开始的此类搜索不同,他们的方法通过反复调整现有算法来工作,希望从中节省更多的乘法。以 AlphaTensor 的 5×5 模 2 矩阵算法为起点,他们惊奇地发现,他们的方法在短短几秒钟的计算之后,就将乘法步骤从 96 步减少到了 95 步。

AlphaTensor 还间接帮助他们进行了另一项改进。此前,Kauers 和 Moosbauer 并没有费心去探索 4×4 矩阵的空间,他们认为不可能击败 Strassen 算法的两次迭代。AlphaTensor 的结果促使他们重新考虑,在从头开始计算一周后,他们的方法出现了另一种 47 步算法,与 AlphaTensor 发现的算法无关。「如果有人告诉我们 4×4 有什么值得发现的东西,我们本可以早点做到这一点,」Kauers 说。「但是,好吧,这就是它的工作原理。」

Littman 预计会有更多这样的惊喜,他将这种情况比作跑步者第一次在四分钟内跑完一英里,这一壮举曾被广泛认为是不可能的。「人们就像,[哦,等等,我们可以做到这一点,] 现在很多人都可以做到,」他说。

展望未来,Fawzi 希望推广 AlphaTensor 以解决更广泛的数学和计算任务,就像它的祖先 AlphaGo 最终扩展到其他游戏一样。

Kauers 认为这是将机器学习应用于发现新算法的真正试金石。他指出,寻求快速矩阵乘法算法是一个组合问题,无论有无人工协助,计算机搜索都非常适合。但并不是所有的数学问题都那么容易确定。他说,如果机器学习能够发现一种全新的算法理念,「这将改变游戏规则。」

相关文章:

人工智能揭示矩阵乘法的新可能性

人工智能揭示矩阵乘法的新可能性 数学家酷爱漂亮的谜题。当你尝试找到最有效的方法时,即使像乘法矩阵(二维数字表)这样抽象的东西也会感觉像玩一场游戏。这有点像尝试用尽可能少的步骤解开魔方——具有挑战性,但也很诱人。除了魔方…...

实在智能携手长江新零售俱乐部:探秘实在Agent数字员工,开启零售品牌增长新篇章

近日,实在智能携手长江新零售俱乐部成功举办了“AIGC:数字员工助力零售品牌新增长”主题活动,成功吸引了二十余家企业中高层管理精英的踊跃参与。在此次活动中,与会者围绕零售业数字化转型的当前态势、面临的挑战及其重要性进行了…...

计算机科学与导论 第十七 十八章 计算理论,人工智能

文章预览: 计算理论17.1 引言17.2 简单语言17.3 图灵机邱奇 -图灵 论题 人工智能引言18.1.1 什么是人工智能18.1.2 智能体18.1.3 编程语言 18.2 知识的表示18.2.1 语义网18.2.2 框架18.2.3 谓词逻辑18.2.4 基于规则的系统 18.2 专家系统18.3 语言理解18.4 搜索18.5 …...

linux 设置定时任务---学习

1、设置定时任务 crontab -e 设置格式参考:【Linux】Linux crontab 命令定时任务设置_crontab 设置每天10:30执行-CSDN博客 测试过程: */1 * * * * /root/cronjob.sh 脚本内容: echo "hell0 cronjob" >> /root/test/hello.txt 实现…...

钡铼IOy系列模块深挖工业场景需求提供丰富多样的I/O解决方案

钡铼IOy系列模块以其灵活性和多样性,在工业场景中提供了丰富多样的I/O解决方案,满足了不同行业、不同应用场景的需求。以下是一些常见的工业场景需求及钡铼IOy系列模块提供的解决方案: 1. 工厂自动化 需求:工厂自动化需要对生产线…...

【刷题笔记】第三天

两道简单题 文章目录 [2923. 找到冠军 I](https://leetcode.cn/problems/find-champion-i/description/)[3095. 或值至少 K 的最短子数组 I](https://leetcode.cn/problems/shortest-subarray-with-or-at-least-k-i/description/) 2923. 找到冠军 I 方法1: 如果 i …...

开源模型应用落地-LangChain试炼-CPU调用QWen1.5(一)

一、前言 尽管现在的大语言模型已经非常强大,可以解决许多问题,但在处理复杂情况时,仍然需要进行多个步骤或整合不同的流程才能达到最终的目标。然而,现在可以利用langchain来使得模型的应用变得更加直接和简单。 通过langchain框…...

STM32-模数转化器

ADC(Analog-to-Digital Converter) 指模数转换器。是指将连续变化的模拟信号转换 为离散的数字信号的器件。 ADC相关参数说明: 分辨率: 分辨率以二进制(或十进制)数的位数来表示,一般有 8 位、10 位、12 位、16 位…...

算法刷题记录2

4.图 4.1.被围绕的区域 思路:图中只有与边界上联通的O才不算是被X包围。因此本题就是从边界上的O开始递归,找与边界O联通的O,并标记为#(代表已遍历),最后图中剩下的O就是:被X包围的O。图中所有…...

中国代工巨头旗下芯片公司遭网络攻击,千兆字节数据被泄露

近日,中国智能手机代工巨头闻泰科技旗下荷兰芯片制造商Nexperia发布声明,称其遭遇网络攻击,有未经授权的第三方访问了公司的 IT 服务器,目前已向相关部门报告了此次事件,并与网络安全专家合作开启调查。而据相关消息&a…...

【ARM 裸机】汇编 led 驱动之基本语法

我们要编写的是 ARM 汇编,编译使用的是 gcc 交叉编译器,所以要符合 GNU 语法。 1、汇编指令 汇编由一条条指令构成,ARM 不能直接访问存储器,比如 RAM 中的数据,I.MX6UL 中的寄存器就是 RAM 类型的,我们用…...

scala---基础核心知识(变量定义,数据类型,流程控制,方法定义,函数定义)

一、什么是scala Scala 是一种多范式的编程语言,其设计初衷是要集成面向对象编程和函数式编程的各种特性。Scala运行于Java平台(Java虚拟机),并兼容现有的Java程序。 二、为什么要学习scala 1、优雅 2、速度快 3、能融合到hado…...

OSPF星型拓扑和MGRE全连

一,拓扑 二,要求 1,R6为ISP只能配置IP地址,R1-R5的环回为私有网段 2,R1/4/5为全连的MGRE结构,R1/2/3为星型的拓扑结构, 3,R1为中心站点所有私有网段可以互相通讯,私有网段…...

智能时代中的工业应用中前所未有的灵活桥接和I/O扩展功能解决方案MachXO2系列LCMXO2-1200HC-4TG100I FPGA可编程逻辑IC

lattice莱迪斯 MachXO2系列LCMXO2-1200HC-4TG100I超低密度FPGA现场可编程门阵列,适用于低成本的复杂系统控制和视频接口设计开发,满足了通信、计算、工业、消费电子和医疗市场所需的系统控制和接口应用。 瞬时启动,迅速实现控制——启动时间…...

php:实现压缩文件上传、解压、文件更名、压缩包删除功能

效果图 1.上传文件 2.压缩包文件 3.itemno1文件 或 4.上传到系统路径\ItemNo 5.更名后的itemno1文件(命名&#xff1a;当天日期六位随机数) 代码 <form action"<?php echo htmlspecialchars($_SERVER[PHP_SELF], ENT_QUOTES, UTF-8); ?>" methodpost en…...

【机器学习】科学库使用第5篇:Matplotlib,学习目标【附代码文档】

机器学习&#xff08;科学计算库&#xff09;完整教程&#xff08;附代码资料&#xff09;主要内容讲述&#xff1a;机器学习&#xff08;常用科学计算库的使用&#xff09;基础定位、目标&#xff0c;机器学习概述定位,目标,学习目标,学习目标,1 人工智能应用场景,2 人工智能小…...

Java面试八股文(JVM篇)(❤❤)

Java面试八股文_JVM篇 1、知识点汇总2、知识点详解&#xff1a;3、说说类加载与卸载11、说说Java对象创建过程12、知道类的生命周期吗&#xff1f;14、如何判断对象可以被回收&#xff1f;17、调优命令有哪些&#xff1f;18、常见调优工具有哪些20、你知道哪些JVM性能调优参数&…...

「51媒体」如何有效进行媒体邀约,提升宣传传播效果?

传媒如春雨&#xff0c;润物细无声&#xff0c;大家好&#xff0c;我是51媒体网胡老师。 进行有效的媒体邀约&#xff0c;提升宣传传播效果的关键在于策略性和专业性。以下是具体的做法&#xff1a; 明确目标&#xff1a;要确立清晰的品牌推广目标和策略&#xff0c;包括确定目…...

docker初始化进程

docker run --init 是一个 Docker 命令的选项&#xff0c;用于在容器中运行一个初始化进程&#xff08;通常是 tini&#xff09;。这个初始化进程负责处理一些 Unix 信号&#xff08;如 SIGTERM 和 SIGCHLD&#xff09;&#xff0c;并确保容器中的进程能够正确地被管理和清理。…...

基于快照行情的股票/基金 1分钟 K 线合成指南

1. 概述 由于不同交易所不同资产的交易规则是有差异的&#xff0c;导致不同交易所基于快照行情或逐笔成交合成不同资产1分钟 K 线的计算方法是不同的。 本教程旨在提高 DolphinDB 在具体业务场景下的落地效率&#xff0c;降低 DolphinDB 在实际业务使用中的开发难度。 本教程…...

新质生产力崛起:精益化能力助力企业转型升级

在智能制造、物联网、大数据、大模型、AI风起云涌的时代背景下&#xff0c;一个崭新的概念——“新质生产力”逐渐进入了人们的视野。这一热词不仅成为今年两会的讨论焦点&#xff0c;更代表了企业、国家乃至社会未来发展的核心动能。那么&#xff0c;什么是新质生产力&#xf…...

开发了一个在线客服系统

开发了一个在线客服系统 作为程序员&#xff0c;我一直在寻找能够提高工作效率和用户体验的方法。最近&#xff0c;我成功开发了一个在线客服系统&#xff0c;这个系统旨在帮助企业更高效地管理客户咨询和服务流程。 技术栈 我选择了以下的技术栈来构建这个系统&#xff1a;…...

cowa新的数据筛选代码

cowa新的数据筛选代码 代码地址&#xff1a; https://git.cowarobot.com/lhb/data_extracting 一阶段筛选 修改配置文件 config/common_stage.yamlversion: 3 services:de:image: harbor.cowarobot.cn/lhb/data:crpilot2.5-torch2.2environment:- CRPILOT_INSTALL_VERSIONx86…...

项目篇 | 图书管理系统 | 管理员模块 | 图书管理 | 删除

项目篇 | 图书管理系统 | 管理员模块 | 图书管理 | 删除 概述 图书管理页通过列表展示所有图书的相关信息,集成了搜索、添加、删除、修改的功能。 函数简介 // admin.h void delBook(); // 删除图书 void openDelBookMessage(); // 打开删除图书弹框 void closeDelBookMessa…...

自己动手封装axios通用方法并上传至私有npm仓库:详细步骤与实现指南

文章目录 一、构建方法1、api/request.js2、api/requestHandler.js3、api/index.js 二、测试方法1、api/axios.js2、main.js3、app.vue4、vue.config.js5、index.html 三、打包1、配置package.json2、生成库包3、配置发布信息4、发布 四、使用1、安装2、使用 五、维护1、维护和…...

【Sql Server】锁表如何解锁,模拟会话事务方式锁定一个表然后进行解锁

大家好&#xff0c;我是全栈小5&#xff0c;欢迎来到《小5讲堂》。 这是《Sql Server》系列文章&#xff0c;每篇文章将以博主理解的角度展开讲解。 温馨提示&#xff1a;博主能力有限&#xff0c;理解水平有限&#xff0c;若有不对之处望指正&#xff01; 目录 前言创建表模拟…...

【大语言模型】轻松本地部署Stable Diffusion

硬件要求&#xff1a; 配备至少8GB VRAM的GPU&#xff0c;如果你的电脑只有CPU&#xff0c;请看到最后。根据部署规模&#xff0c;需要足够的CPU和RAM。 软件要求&#xff1a; Python 3.7或更高版本。支持NVIDIA GPU的PyTorch。Hugging Face的Diffusers库。Hugging Face的Tr…...

【github主页】优化简历

【github主页】优化简历 写在最前面一、新建秘密仓库二、插件卡片配置1、仓库状态统计2、Most used languages&#xff08;GitHub 常用语言统计&#xff09;使用细则 3、Visitor Badge&#xff08;GitHub 访客徽章&#xff09;4、社交统计5、打字特效6、省略展示小猫 &#x1f…...

dnspy逆向和de4dot脱壳

拿到一个软件&#xff0c;使用dnspy查看&#xff0c;发现反汇编后关键部分的函数名和代码有很多乱码&#xff1a; 这样的函数非常多&#xff0c;要想进一步调试和逆向&#xff0c;就只能在dnspy中看反汇编代码了&#xff0c;而无法看到c#代码&#xff0c;当时的整个逆向过程只剩…...

python之flask安装以及使用

1 flask介绍 Flask是一个非常小的Python Web框架&#xff0c;被称为微型框架&#xff1b;只提供了一个稳健的核心&#xff0c;其他功能全部是通过扩展实现的&#xff1b;意思就是我们可以根据项目的需要量身定制&#xff0c;也意味着我们需要学习各种扩展库的使用。 2 python…...

如何做自助搜券网站/怎么做公众号

群晖上安装webstation、apache HTTP Server 2.4、PHP7.2、MariaDB 104个套件&#xff0c;启动webstation&#xff0c;设置apache为服务器。SSH进入群晖ssh zhangsan192.168.1.2 -p 222进入 MariaDB 默认安装目录# ssh到Synologycd /volume1/appstore/MariaDB10/usr/local/maria…...

最新购物网站建设框架/seo的工作原理

String类 1、String对象的初始化 由于String对象特别常用&#xff0c;所以在对String对象进行初始化时&#xff0c;Java提供了一种简化的特殊语法&#xff0c;格式如下&#xff1a; String s “abc”; s “Java语言”; 其实按照面向对象的标准语法&#xff0c;其格式应该为&a…...

简述建设一个网站的过程/搜索优化指的是什么

在JDK的java.util包中提供了Timer类&#xff0c;可以定时执行特定的任务 TimerTask类表示定时器执行的某一项任务 常用方法&#xff1a; schedule(TimerTask task,long delay,long period); schedule(TimerTask task,long delay); -------------------------------------------…...

做美图+网站有哪些东西/去哪里找需要推广的app

https://www.xitongku.com/...

metinfo和wordpress/企点官网

本篇介绍两个用来展示数据的容器控件&#xff0c;分别是Ext.ListView和Ext.view.View。Ext.ListView就是大名鼎鼎的Ext GridPanel的前身&#xff0c;不过现在的Ext4已经将它整合到GridPanel一起了&#xff0c;做一些简单的表格数据展示还是可以用到的。而Ext.view.View则提供了…...

加盟型网站制作/上海企业推广

自动化运维工具ansible的安装部署及其命令行模块 文章目录自动化运维工具ansible的安装部署及其命令行模块一、ansible简介二、为什么选择ansible1、puppet、saltstack和ansible的对比2、ansible 的特点三、ansible的安装部署1、yum安装epel源和ansible并查看其结构2、修改ansi…...