老罗落泪!北大团队搞出ChatExcel,说人话自动处理表格,免费且不限次使用

做Excel表,真就动动嘴就够了!

看,输入想要干的事:给学生成绩排个名吧。

简单敲个回车,表格唰一下就列好了!

检查一遍也没错。

还能跨表格处理。

比如标记出两张不同表格中排名都在前十的学校。

哦豁,还有点超越ChatGPT?

毕竟给ChatGPT提出类似的要求,它只能帮我写出对应的代码,操作还得自己手动来。

这就是最近在知乎上引起关注的AI工具ChatExcel,一发布就登上了热榜。

它主打用对话的形式实现Excel复杂操作(Chat-to-Excel),告别记函数、手动设置公式。

做好的成品,支持一键导出成标准Excel表格,连复制粘贴这道工序都省了。

而且不用注册网页上就能用不限使用次数,相当利好懒人和Excel小白。

甚至懂Excel技能的人都感慨,自己会的这些是不是要没用了。

这就是由北京大学深圳研究生院/信息工程学院3位硕博生,独立开发的项目。

目前已开放Demo供大家试玩。

看到这可能很多人都以为,“这又是一个受到ChatGPT影响开发的项目嘛”。

还真不是

GitHub项目上的第一个commit是在22年3月就提交了。

而背后真正的契机——

其实是团队中一位小哥,想用技术帮女票解决点工作中的小烦恼啦。

这到底咋回事?量子位联系了主创团队,来一一给大家揭秘~

ChatExcel表现如何?

咳咳,别人女票的事稍后再谈,咱们先来看看ChatExcel的表现到底咋样。

总体来说,它想做的事就是跳过学习Excel、跳过写函数公式,直接把脑子里的需求变成表格里的内容。

团队在知乎首发产品时,用了一张图做解释:

老规矩,我们来上手体验下。

进入主页面后,网站默认展示demo,点击UPLOAD就能上传自己的表格。格式需要是标准Excel文件。

我们找隔壁ChatGPT生成了一份学生成绩单,让ChatExcel进行计算操作。

主要测试了需要插入函数的Excel操作。比如:

给总分在255以上的人标记为A,总分在240-255的人标记为A-,总分在210-240的人标记为B。

打完内容,敲一下回车,它就开始处理了。

假如老师想知道谁是单科第一呢?输入:

找到表格中数学成绩最高分的人。

然后,它就生成了一个新的界面,里面只有最高分童鞋。

如果还想对表格进行其他操作,点一下页面中的“UNDO”,它就能返回到操作前的表格了。

我们还让它对表格中的学生进行成绩排名、并列出名次,ChatExcel都没有出错。

除此之外,它还能连续完成任务

比如想在表格里增加一栏平均分,可以先要求它增加一列:

再进一步输入需求,让它把计算好的结果填进去:

最后得到的表格,点击“DOWNLOAD”,即可导出为普通的Excel表格。

体验下来,感觉ChatExcel主要有两大特点:

  • 连贯性

  • 准确性

比如之前也有帮人生成Excel公式的工具,excelformulabot能实现这一功能,但它是独立在表格外的,需要自己把单元格带入到给出的公式了。

如果是具体一些的描述,还会出现给不出公式的情况。

而对比ChatGPT来说,ChatExcel计算的准确性更突出。

比如计算同一个表格的平均数,ChatGPT不是弄错到底有多少个人,就是计算的时候带错数字,反复纠正都救不回来……

所以,ChatExcel是怎么做到的?背后原理到底如何?

把“乙方思想”贯彻到底

ChatExcel的原理一言以蔽之,就是直接把“大白话指令”转换成类似于VBA这样的程序语言,然后再执行程序。

底层基于Transformer架构,基本技术路线就是无监督训练+具体场景微调。

但NLP模型搞数学,一直都很容易出错,强大如ChatGPT都很难避免。

为此,团队在训练模型的过程中,将重点放在了符号逻辑上,期间还有意引入了一些逻辑符号的新知识。

由此我们也看到,它在计算上出错的概率并不高。

除了数学能力出众之外,ChatExcel最大的一个特点就是持续交互

这是因为ChatExcel每次的生成结果,都是基于用户提出的新需求+上一轮生成的表格。对模型的理解力及运算其实提出了更高的要求。

为什么要实现这一功能?

团队介绍说,如Dall·E、ChatBCG等AI工具,完成任务的方式都是单次不持续的。但在人们的实际使用过程中,想法是一步步推进的。

举例来说,用户和ChatExcel之间的关系就好比甲乙双方,ChatExcel是乙方,用它处理表格的我们就相当于甲方:

要求只管提,改到满意为止。(Doge)

同样,这个乙方思维也体现在开发团队自己身上。

Demo发布后,很多人跑来围观、试用和提建议。最常出现的反馈是,ChatExcel有点理解不了提出的要求,需要重新措辞调整。

对于这些情况,团队先阐明态度:建议我们全盘接收

同时也进一步解释了原因,目前开放的demo还不是很完善。

这一方面是为了看看大家的反馈做进一步优化;另一方面,也是希望收集更多的语料,让模型之后能更聪明一些。

比如,有人就提出:

既然都已经有“undo”(撤销)操作,什么时候可以把它处理表格的过程显示出来。

还有人附议,表格数据太多就很难检查它是否处理正确

提高ChatExcel执行任务的透明度,方便检查错误。

对于这些建议,团队和我们说,他们已经在开始着手调整了。

比如很多人反馈的语言理解问题,他们打算之后在对话框下根据用户的输入,推荐一些标准操作语句,大家直接选择就可以了,不用自己研究措辞,有点现在AI客服那味儿。

除此之外,还有这些功能也在开发的路上了:

  • 表格上传格式更加兼容

  • 展示ChatExcel处理表格的具体过程,更加透明化
    ……

以及ChatExcel更加具体的原理介绍,之后也会在官网以博客的形式发布。

甚至包括代码,也会进行开源

受到女票启发,把业余项目做成正式课题

说来ChatExcel的诞生,也是相当因吹斯听了。

它受启发于团队成员的女票、导师立刻拍板认可、把业余项目做成正式课题……

这还要从KidCY拉起小团队说起。

他们都来自北京大学深圳研究生院信息工程学院袁粒老师的课题组,已经是准博了,还有一位成员正在读硕士。

作为机器学习的基础理论研究者,他们日常和论文打交道更多。

为啥突然从理论研究转向应用?

这还得从Kid的女票说起。

他说自己的女朋友是一位中学信息老师,日常工作中经常需要帮年纪大的老师处理Excel表格问题。

为了帮女朋友多分担一点工作(bushi) ,当然也看到确实有很多人深受Excel复杂操作困扰,Kid就萌生了试试看的想法。

我觉得Excel公式的使用,多少还是需要编程思维的,这对于很多人、尤其是不擅长电脑操作的人来说,很不友好。而拿着工具书从头啃,也确实比较麻烦。

当时正值OpenAI的Copilot大火,看到AI在提升生产力上大有可为,他就拉着CY一起,打算仔细研究研究这事儿。

但事情前期,并没有想象中顺利。

一方面,它刚开始只是个业余项目,大家都是抽空来做。

另一方面,团队在技术路线上也做过重大调整。

最初,他们觉得ChatExcel应该是往判别式模型那块儿走的,于是就顺着这一思路推进,但没想到:

前期处理工作量太大,需要引入非常非常多的符号逻辑,数据要求很高。

这对于小团队来说基本上是致命的,因为数据量意味着人力物力时间成本都会飙高。

没有办法,Kid和CY就坐下来重新复盘这件事:

我们想到李沐老师发过一个视频,讲“BERT和GPT之争”,我们最初都觉得BERT各种指标表现更好。GPT呢,有点摸不清它想干啥。

但仔细一想,从任务本身的需求来看,生成式才是我们真正想要的东西。

加之去年OpenAI一系列生成式工作开始大火(如Copilot、Dall·E),两个人最后决定,推翻原有思路,重新从生成式模型做起

明确了技术路线,后续推进也就更顺了。

加上这项工作还得到了导师袁粒的认可和支持,团队在资源和经费上也更充裕了一些。

(p.s.但团队也和我们解释说,目前其实还不能负担太多成本,运行速度会受到影响、一些命令行识别也还存在问题

不管怎样,历经1年时间,ChatExcel终于发布demo。

但这只是计划的第一步

团队表示,接下来还将对产品做更多迭代升级,并会开源代码、揭秘背后技术。

对于ChatExcel的定位,他们坚持“小而美”。

Kid介绍说,大模型的确是当下的趋势,如OpenAI、百度等都在通用大模型领域不断推进成果。但他们认为,在一些子任务领域上,模型的能力还有待提升,这可能会是未来的一个趋势。

由此,他们目前会更加专注于模型特定场景下的能力提升。

至于长远目标,团队希望打造一个“Chat生态”交互式AIGC

终极“Chat生态”(幻想版)大概会长这样:

而回到ChatExcel本身,团队表示的确有商业化的考虑,但会是To B层面的。

(听说demo一发布就已经有不少公司联系他们了)

在To C这边,会坚持公益开放的形式,人人都能用。

而回看整个开发过程,Kid和CY的很多感受都记忆犹新。

比如看到ChatGPT做表格大火后,他们又惊又喜。

“惊”,是因为开始担忧会不会有很多同类产品出来?自己的项目没有生存余地了?

Kid说自己看到这些新项目不断涌出后,晚上都要睡不着觉了。

“喜”,则是因为觉得自己的想法和趋势发展一致,这也是一种肯定。

至于项目本身,他们的态度非常坦然,问题全盘接受,但对自己的成果也很有自信。

我们现在依旧觉得自己的方案很“优雅”。

感觉做理论的人转来做应用,总是能想到一些奇怪的思路hhh。

(应受访者要求文中Kid、CY为化名)

  • 104
    点赞
  • 453
    收藏
    觉得还不错? 一键收藏
  • 33
    评论
人教版小学语文二年级下册知识点总结归纳 (一)第一单元 1、 多音字 解、奔、冲、藏、几、处、宿、尽、落、撒、钻、唠、骨、散、地、数 2、积累描述春天的词语 春回大地、万物复苏、春风送暖、万象更新、春光明媚、鸟语花香、春雨如油、春暖花开 3、文学常识 (1)《草》是(唐)朝的大诗人(白居易)写的,他写这首诗时才(16)岁。《草》这首诗原来的题目是(《赋得古原草送别》)。 (2)了解春联(对联)的一些简单知识,对春联(对联)的形式和结构、书写方式、表达技巧有初步的认识;积累春联名句 4、古诗名句 (1)课文 野火烧不尽,春风吹又生。 儿童急走追黄蝶,飞入菜花无处寻。 (2)总结描写春天的古诗 《春晓》 5、熟悉描写手法,找出文中静态描写和动态描写的字句 6、造句 (1)渐渐地 (2)静静地 (3)惋惜地 7、写作:描述四季风景 (二)第二单元 1、多音字 缝、弹、结、间、更、好、打、背、踏、曾、蒙、处、空、应、露、卡、了、待、要、挑、间、得 2、汉字结构归类 上下结构:多、吕、昌、炎 左右结构:双、朋、羽、林 叠字结构:品、晶、众、森 3、 谚语积累(助人为乐) 花要叶扶,人要人帮。 赠人玫瑰,手有余香。 诚心能叫石头落泪,实意能叫枯木发芽。 4、 查字典:用音序查字法查字音,部首查字法查字义 (三)第三单元 1、多音字 好、空、乐、盛、倒、省、薄、钉、分、干、为、降、勾、单 2、词语识记 名胜古迹、隐隐约约、点点灯光、蒙蒙细雨、华
### 回答1: 以下是一个 shell 脚本,用于打印出服务器的可用 IP,不包含虚拟 IP: ``` #!/bin/bash # 获取所有网卡的 IP 地址 ips=$(ifconfig | grep -Eo 'inet (addr:)?([0-9]*\.){3}[0-9]*' | grep -Eo '([0-9]*\.){3}[0-9]*' | grep -v '127.0.0.1') # 遍历所有 IP 地址 for ip in $ips do # 判断是否为虚拟 IP if ! ip addr | grep -q "$ip" | grep -q "dynamic"; then # 如果不是,则打印该 IP 地址 echo $ip fi done ``` 请注意,此脚本需要在 Linux 系统上运行。 ### 回答2: 编写一个shell脚本来打印服务器的可用IP,不包含虚拟IP,可以按照以下步骤进行: 1. 首先,使用ifconfig命令获取所有网络接口的详细信息,并将其保存到一个变量中。可以使用以下命令来实现: ```shell ip_info=$(ifconfig) ``` 2. 接下来,使用grep命令过滤出所有有效的IP地址行,可以根据IP地址的格式进行匹配,例如:xxx.xxx.xxx.xxx。可以使用以下命令来实现: ```shell ip_addresses=$(echo "$ip_info" | grep -oP '\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b') ``` 3. 然后,使用循环来逐个检查每个IP地址是否为虚拟IP。可以根据实际的虚拟IP地址范围进行判断,例如:192.168.xxx.xxx是一个常见的虚拟IP地址范围。可以使用以下命令来实现: ```shell for ip_address in $ip_addresses; do if [[ ! $ip_address =~ ^192\.168\. ]]; then echo "$ip_address" fi done ``` 4. 最后,运行脚本并查看输出。可以使用以下命令来执行脚本: ```shell bash script.sh ``` 上述脚本将打印出服务器的可用IP,并排除了虚拟IP地址。 请注意,实际上服务器的网络配置可能因不同的操作系统、网络环境和网络工具而有所不同,请根据具体情况进行适当的调整。 ### 回答3: 编写一个 shell 脚本,可以打印出服务器的可用IP,不包含虚拟IP。首先,我们需要使用 ifconfig 命令来获取服务器的所有IP地址。然后,我们可以通过循环遍历这些IP地址,并使用 grep 命令来过滤掉虚拟IP地址。 以下是一个可以实现这个功能的简单 shell 脚本的示例: ```shell #!/bin/bash # 获取服务器所有IP地址 all_ips=$(ifconfig | grep -Eo 'inet (addr:)?([0-9]*\.){3}[0-9]*' | grep -Eo '([0-9]*\.){3}[0-9]*') # 遍历IP地址并过滤掉虚拟IP for ip in $all_ips do # 检查IP是否为虚拟IP is_virtual=$(ifconfig | grep -B1 "$ip" | grep -Eo 'VIRTUAL') # 如果不是虚拟IP,则打印出来 if [ -z "$is_virtual" ] then echo "$ip" fi done ``` 脚本首先使用 ifconfig 命令获取服务器的所有IP地址,并将结果保存在变量 all_ips 中。然后,通过循环遍历 all_ips 中的每个IP地址。在每次循环中,脚本使用 grep 命令检查该IP是否为虚拟IP。如果不是虚拟IP,则打印出来。 需要注意的是,这只是一个简单的示例脚本,仅仅过滤了包含关键字 "VIRTUAL" 的行来判断是否为虚拟IP。实际情况可能因服务器操作系统和网络配置而有所不同,可能需要根据实际情况进行相应的修改。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 33
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值