ChatGPT热席卷全球,带起了对于大模型的探索风潮。今年四月,国内各大厂商纷纷推出了各大模型。
日前,第四范式首次向公众展示其大模型产品“式说3.0”,并首次提出AIGS战略(AI-Generated Software):以生成式AI重构企业软件。
式说将定位为基于多模态大模型的新型开发平台,提升企业软件的体验和开发效率,实现“AIGS”。那么具体什么是AIGS,为何定位于AIGS,如何实现AIGS,第四范式在媒体开发日上给予了全面的解答。
第四范式创始人兼CEO戴文渊认为,目前B端软件极为复杂的交互体验,以及复杂性带来的极低开发效率,恰恰为生成式AI留下了足够大的重构和改造空间。
在戴文渊看来,过去十几年,C端的软件产品已经被打磨到了较高的水准,差不多逼近用户体验的上限。相较来说,B端的软件产品往往动辄十几层菜单,很难通过自然语言的方式去调用企业软件的功能。
“现在当我们有更强的语义理解和生成能力,再加上GPT任务翻译、任务分发和推理的能力,就可以通过更好的交互方式实现功能的调用,不再需要找到某个位于十几级的菜单目录之下的功能。”
如果能用新型的语音或对话的方式实现交互,对B端企业软件的用户体验无疑可以实现一个颠覆式的提升。
再者,原先B端企业软件都是高度定制化的,基于菜单式的开发,基本每次一个功能升级,又要产品经理画界面,设计、开发等,至少是月级别的开发时间。而由于新的交互形式的出现,以前是功能和执行逻辑被编排在软件界面,现在功能和逻辑被改写在数据、API和内容层面,进化成了天级别的开发效率。
“就像ChatGPT不再是一个复杂的菜单和一堆的功能,只需要一个对话框就能做很多事情。并且它背后每天都在迭代,但你感受不到它的界面发生了什么变化。以前软件是在界面层面的升级,未来是在数据层面的升级。”
第四范式之所以提出AIGS战略,正是基于这一预判:大模型能够带来用户体验的提升,开发效率的提升,所以一定会形成软件行业的飞跃。大模型是新的生产力,以大模型基础设施为先导项目,改造整个软件产业,整个行业的业务价值、商业模式都会得到飞跃。
开放日当天,第四范式现场拔网线,展示了式说大模型的图片理解、剧本写作、画图、写代码等能力。
在戴文渊看来,要做到AIGS,大模型未必需要是知识广博、十项全能冠军的通才,更重要的在于模型具备Copilot(副驾舱),和思维链CoT(chain of thoughts,多步推理)的能力。
“要去改造企业软件,大模型不能只有语言能力。式说2.0就加入了多模态和Copilot,因为很多企业软件里的数据是多模态的,而Copilot能把人的指令翻译成要调用后台的哪个API。”
据悉,式说2.0的时候,员工可以通过语音、图像、表格、视频等多模态方式向式说发起询问或下达指令,式说理解之后,联网企业软件调出有关功能,并以所需要的形式输出答案。
不过员工用企业软件时也会面临复杂任务,需要人按照顺序执行一个个功能。
戴文渊以图像处理软件进行了具体说明:如果你要调亮度、对比度,这是功能。但如果是将人物P瘦一点,它就不是一个单一功能能实现的了。这背后需要人按照经验,执行软件的一个个的功能才能实现。
“人接收到复杂的工作,会在大脑里推理出一步步要执行的子任务,然后再按步骤去执行。换成机器,如果对于同一个工作,机器在过去见到过足够多的人(累积数据)通过一二三四步把这个工作完成了,它已经可以这个套路总结出来,就形成了思维链。”
因此,式说3.0强调的是Copilot加上思维链CoT,具有更强的推理能力,在学习大量数据和“攻略”后,能形成中间的逻辑推理步骤,从而做到拆分并执行复杂工作。
总结来说,第四范式将AIGS的路径总结为三个阶段:
第一阶段,Copilot调动不同的信息、数据、应用,作为助手完成用户的指令。相当于在所有企业级软件系统里,配备一个指挥官。指挥官听用户的指挥,比如“把照片亮度调亮20%”。
第二阶段,Copilot+基于企业规则的“知识库”,AI能够参照规则做复杂工作,进一步丰富了“对话框”的能力。比如AI查询了“人像美化”知识库后,能执行把照片修好看的步骤。
第三阶段,Copilot+CoT(思维链)。软件系统的使用行为最终会被大模型学会,形成AI针对这个领域的思维链,意味着“把照片处理得更好看”这种复杂指令,AI能自动地按照步骤完成。
第四范式的AIGS战略,就是指基于式说大模型背后的Copilot+COT能力,把企业软件改造成新型的交互范式,并在新型交互上不断地学习软件的使用过程,形成领域软件的“思维链”。
在式说3.0发布现场,来自金融、航空制造、医疗等行业的客户代表出席并做了产品的live demo演示。ChatGPT出现的短短两个月内,众多企业与合作伙伴已经与范式在生成式AI方面开展了深度合作。式说作为基于大模型的新型开发平台,期待与更多合作伙伴与企业客户及一起,探索以生成式AI重构企业软件的机会,共同提升企业软件的易用性和生产力。
我有一个模型:classItem项目有一个属性“商店”基于存储的值,我希望Item对象对特定方法具有不同的行为。Rails中是否有针对此的通用设计模式?如果方法中没有大的if-else语句,这是如何干净利落地完成的? 最佳答案 通常通过Single-TableInheritance. 关于ruby-on-rails-Rails-子类化模型的设计模式是什么?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.co
我需要从一个View访问多个模型。以前,我的links_controller仅用于提供以不同方式排序的链接资源。现在我想包括一个部分(我假设)显示按分数排序的顶级用户(@users=User.all.sort_by(&:score))我知道我可以将此代码插入每个链接操作并从View访问它,但这似乎不是“ruby方式”,我将需要在不久的将来访问更多模型。这可能会变得很脏,是否有针对这种情况的任何技术?注意事项:我认为我的应用程序正朝着单一格式和动态页面内容的方向发展,本质上是一个典型的网络应用程序。我知道before_filter但考虑到我希望应用程序进入的方向,这似乎很麻烦。最终从任何
我有一个包含模块的模型。我想在模块中覆盖模型的访问器方法。例如:classBlah这显然行不通。有什么想法可以实现吗? 最佳答案 您的代码看起来是正确的。我们正在毫无困难地使用这个确切的模式。如果我没记错的话,Rails使用#method_missing作为属性setter,因此您的模块将优先,阻止ActiveRecord的setter。如果您正在使用ActiveSupport::Concern(参见thisblogpost),那么您的实例方法需要进入一个特殊的模块:classBlah
我有一个表单,其中有很多字段取自数组(而不是模型或对象)。我如何验证这些字段的存在?solve_problem_pathdo|f|%>... 最佳答案 创建一个简单的类来包装请求参数并使用ActiveModel::Validations。#definedsomewhere,atthesimplest:require'ostruct'classSolvetrue#youcouldevencheckthesolutionwithavalidatorvalidatedoerrors.add(:base,"WRONG!!!")unlesss
我想向我的Controller传递一个参数,它是一个简单的复选框,但我不知道如何在模型的form_for中引入它,这是我的观点:{:id=>'go_finance'}do|f|%>Transferirde:para:Entrada:"input",:placeholder=>"Quantofoiganho?"%>Saída:"output",:placeholder=>"Quantofoigasto?"%>Nota:我想做一个额外的复选框,但我该怎么做,模型中没有一个对象,而是一个要检查的对象,以便在Controller中创建一个ifelse,如果没有检查,请帮助我,非常感谢,谢谢
我有一些非常大的模型,我必须将它们迁移到最新版本的Rails。这些模型有相当多的验证(User有大约50个验证)。是否可以将所有这些验证移动到另一个文件中?说app/models/validations/user_validations.rb。如果可以,有人可以提供示例吗? 最佳答案 您可以为此使用关注点:#app/models/validations/user_validations.rbrequire'active_support/concern'moduleUserValidationsextendActiveSupport:
对于Rails模型,是否可以/建议让一个类的成员不持久保存到数据库中?我想将用户最后选择的类型存储在session变量中。由于我无法从我的模型中设置session变量,我想将值存储在一个“虚拟”类成员中,该成员只是将值传递回Controller。你能有这样的类(class)成员吗? 最佳答案 将非持久属性添加到Rails模型就像任何其他Ruby类一样:classUser扩展解释:在Ruby中,所有实例变量都是私有(private)的,不需要在赋值前定义。attr_accessor创建一个setter和getter方法:classUs
我有一个正在构建的应用程序,我需要一个模型来创建另一个模型的实例。我希望每辆车都有4个轮胎。汽车模型classCar轮胎模型classTire但是,在make_tires内部有一个错误,如果我为Tire尝试它,则没有用于创建或新建的activerecord方法。当我检查轮胎时,它没有这些方法。我该如何补救?错误是这样的:未定义的方法'create'forActiveRecord::AttributeMethods::Serialization::Tire::Module我测试了两个环境:测试和开发,它们都因相同的错误而失败。 最佳答案
ruby如何管理内存。例如:如果我们在执行过程中采用C程序,则以下是内存模型。类似于这个ruby如何处理内存。C:__________________|||stack|||------------------||||------------------|||||Heap|||||__________________|||data|__________________|text|__________________Ruby:? 最佳答案 Ruby中没有“内存”这样的东西。Class#allocate分配一个对象并返回该对象。这就是程序
我正在使用Rails3.1并在一个论坛上工作。我有一个名为Topic的模型,每个模型都有许多Post。当用户创建新主题时,他们也应该创建第一个Post。但是,我不确定如何以相同的形式执行此操作。这是我的代码:classTopic:destroyaccepts_nested_attributes_for:postsvalidates_presence_of:titleendclassPost...但这似乎不起作用。有什么想法吗?谢谢! 最佳答案 @Pablo的回答似乎有你需要的一切。但更具体地说...首先改变你View中的这一行对此#