使用操作系统智能助手 OS Copilot 轻松运维与编程
摘要:本文整理自阿里云基础软件团队林演老师在云端问道7 期方案教学关于使用操作系统智能助手 OS Copilot 轻松运维与编程的分享。内容主要为以下四部分:
1、行业痛点及背景
2、产品与架构
3、典型应用场景
4、实验及反馈渠道
01、行业痛点及背景
先讲行业痛点以及背景。Linux 开发或者运维面临很多困难,一个是 Linux 系统的发行版种类很多,去获取版本很多,并且学习不同的版本的相关的知识,从网络上获取信息准确性不高,很难高效的识别出一些错误的信息,需要做逐步的校验,会导致相关的学习,获取信息上的困难度。第二个是 Linux 操作系统会有很多的命令,很多的参数,不同的版本操作各不相同,会导致运维人员的工作量,学习成本非常高,经常需要依赖各个层面的不同专家高度的协同,去定位操作系统层面的问题,时长比较长,效率比较低。第三个方面是经常面临在系统开发或运维上需要写很多的脚本,或者很多系统的服务,有一个问题是很可能在不同的环境里面需要面向不同的适配的脚本,带来一些额外的工作量,并且还要做一些调试以及 Linux 相关的工作,整体效率比较低下,在当前的 AI 时代,是否能解决这些问题。团队想出来尝试解决这些困难的一款产品叫 OS Copilot。
02、产品与架构
2.1 OS Copilot 产品介绍
这款产品是基于目前比较流行的AI大圆模型的基座模型,再加上操作系统的领域知识构建出的操作系统的智能助手,能支持自然语言的问答,辅助命令的执行,以及系统运维的优化,也可以帮助生成一些代码,生成一些脚本,并且对这些代码 Linux 进行解释等来帮助提高工作效率。
2.2 产品介绍-信息获取
介绍这款产品的主要的几个特点。原先传统的学习或者获取知识的渠道比较杂,多。比如去 Google,或者百度,访问官网,找到不同的 Tag 的页面,获取一系列的信息,但有这款产品之后,在使用操作系统的时候,只需要通过这样的门户入口,可以用自然语言的方式就可以获取到任何过去需要通过搜索,需要通过精确查找或者需要询问不同的人员获取到的知识,一键都能获取。这是区别于传统的信息获取的方式,起到信息聚合的一个作用,并且对于使用的能源,可以降低获取到错误信息的概率。
2.3 产品介绍-系统管理
第二个主要的特点是可以用来做系统管理。原先传统的系统管理员,他需要很专业的做一些命令的调用,编程,脚本编写的一些动作来执行比如系统升级,软件管理,配置的管理,系统安全,包括很多其他的操作管理相关的领域的动作,有 OS Copilot 之后,就可以通过自然语言的方式完成原先需要写大量脚本的工作,现在只需要简单的把任务下发给他,就可以把这些相对应的事情用 AI 思考,AI 执行的方式把对应的任务执行好,带来一个很大的优势,就是可以极大的拉低对于操作系统管理的门槛,甚至把小白的用户快速拉起到初级专家的水平。
2.4 产品介绍-系统运维
第三个特点是这款产品可以用来做系统的高效的运维。高效的运维领域面临很多问题,比如低级的高频的问题经常需要询问领域专家,领域专家可能不停的消耗能力,去解答一模一样的问题,或者甩给一个文档,自己去学习。如果碰到一个很难的问题,需要有很多的跨团队协同定位去解决问题,并且还有各种的复杂的系统运维工具,去学习使用。带来的一个问题是原先运维代价很高,成本也很高,时间也很长。有 OS Copilot 后,本身是基于大模型的一款产品,能够进化,随着被使用的次数越来越多,沉淀的领域知识越来越多,并且有整个操作系统团队的历史经验的积累,形成一个正向的迭代循环,只要碰到问题,就慢慢沉淀下来,相当于被他学习,被他记住,所有使用这款产品的用户,可以复用很多行业的知识或者行业的 Case,它就沉淀下来,自动化的升级系统运维的能力,随着 Case 的积累越来越多,未来能力会越来越强,并且能解决大部分的系统运维的问题。
2.5 产品介绍-辅助编程
可以起到辅助编程的作用。这是当前 AI 大模型的一些福利,这些大模型可以通过代码训练来得到比如生成代码,对代码进行 Bug 以及 Review 的作用,包括生成用例、生成脚本,代码解释、优化建议等,可以看到当前有市面上有很多的辅助编程 AI 插件,包括 Code网站上的题目对他们一点难度没有,基本上可以满分通过。
OS Copilot 和市面上的软件编码的插件比有什么特点,它的特点是和操作系统领域结合更紧密一些,原先在上面用别的插件写出来的脚本或者代码,在调试部署的时候,比如要部署到目标的操作系统上,可能要去适配,随着操作系统库的版本,软件的版本等,会产生一些额外的调试以及适配的成本,如果用 OS Copilot 做这件事情,天然和操作系统兼容度极高,不需要额外再去调试。如果只是单纯的做一些系统的一次性的任务,或者只部署执行一次性的脚本,手工写是代价极低的。通过 OS Copilot 一键生成这些代码或者脚本帮助做一些操作系统相关代码的编写。
2.6 产品介绍-工具拓展
最后讲产品外拓的工具,由于大模型本身也具备一些不足。比如在大模型会有一些幻觉出现,没有学过的很可能不知道怎么回答。只能做比如语言的输入,输出,没办法做额外的一些动作,需要通过什么能力来补齐,本身是通过 Function calling 的能力来增强。相当于原先和大模型,AI 现有的领域大模型说要去做某件事情,比如要买一张机票,大模型会告诉你需要登录携程,告诉买机票的过程,但是有 Function calling 的能力,可以做到告诉大模型要买一张机票,然后给一张机票以及价格,确认完就把机票买到,相当于 AI 有了手脚,能够执行真正的动作,并且能弥补大模型原始的天然不足。OS Copilot 目前已经集成相当多的 Function calling 的功能。有些自研的比如 Keentune 性能调优工具,SysAK 用来做运维的工具,阿里云的 CLI 工具可以管理阿里云上的一些资源,包括系统命令的扩展工具,可以看到这些扩展工具带来的效果。
简单介绍一下产品的架构,本身是一个可以直接在操作系统的 Server 命令界面执行的命令行。不需要本地部署大模型,已经做到 Kind Server 以及后面大模型的分离部署,如果需要本地化的部署一个大模型,需要很专业的 GPU 才能跑起来后端的模型,包括高质量的语料也不是很容易获取,所以采用的是前后端分离式的部署架构。只要在阿里云上用我们的操作系统就可以免费的使用我们的命令行。大模型的算力在已经部署好的云上的服务器上。
03、典型应用场景
接下来讲典型的应用场景。
3.1 应用场景展示 1-命令辅助
一个是命令辅助,比如播放一个动图,可以直接告诉他想要做什么事情,下面自己生成好命令,可以用这些命令把所有的参数组合好。只需要审核去执行就可以。这是命令辅助的作用。
3.2 应用场景展示 2-安装软件包
第二个应用场景是告诉 Scopilot 的 Ngins 是否安装,没有就装一下,用户确认完安装好。这是 Function calling 带来的效果,原先的大模型只能告诉可能执行 Yum Install 或者 DNF Install 的动作,Copilot 就会直接安装,相当于直接动作执行的效果。
3.3 应用场景展示 3-命令错误解释,?唤醒词
第三个功能是一个问号,或者叫 Why 的唤醒词,唤醒词有什么作用,经常发现命令执行失败,但不知道为什么失败,经常去 Google 或者百度找各种各样的原因来查。执行一个问号,它就可以对错误进行一个解释,并且会尝试修正应该真正要用的命令是什么。给一个正确命令的释放。
3.4 应用场景展示 4-进程分析
第四个例子展示进程解析的 Demo,可以用广告的方式拼接,拼接完之后让 Copilot 分析一下进程用来做什么,然后把这些进程里面的代码,做一个逐行的分析,分析完告诉用户用来做什么。上面是主要产品的功能和典型的应用介绍。
04、实验及反馈渠道
这里有一个是实验以及反馈渠道,目前 OS Copilot 的产品处于公测阶段,产品是免费使用的,免费使用的前提是用户已经在阿里云的 ECS 实例以及有 Alinux 3 的系统,如果已经有这些系统,可以直接参考 OS 的使用说明,安装使用,如果没有 ECS 实例或者 Alinux 3 系统,可以参考云起实验,直接在云起实验上用,这里特别强调的一点是当前 OS Copilot 还处于公测阶段,并且由于大模型还有出现幻觉或者知识错误的可能性,如果在真正生产环境上应用的时候,还是要谨慎的评估它的内容以及要执行的动作。