Sora横空出世!AI将如何撬动未来?

近日,OpenAI 发布首个视频生成“Sora”模型,该模型通过接收文字指令,即可生成60秒的短视频。

在这里插入图片描述

而在2022年末,同样是OpenAI发布的AI语言模型ChatGPT,简化了文本撰写、创意构思以及代码校验等任务。用户仅需输入一个指令,ChatGPT便能生成图片、文字或代码等多种形式的内容。

这一系列的进展不仅仅是技术上的突破,它们预示着一场全面的AI革命的到来,影响范围远超从前。AI技术的应用已经拓展到聊天机器人、绘图、音乐创作、代码生成、视频生成等领域,每一次迭代和升级都引起了全球的关注和热议。

在编程领域,AI的崛起,如ChatGPT和Github Copilot,正在改变开发者获取信息和编写代码的方式。在Andrej Karpathy的博客《Software 2.0》中,他探讨了人工智能如何改变软件开发方式:“Software 2.0代表着我们可以用大量的数据和算力来解决以前需要大量人力和成本来解决的复杂问题。” AI 编码助手则是上述的具体实现。

在这里插入图片描述

资料图片来源:Github

调查数据显示,AI编码工具不仅提高了整体生产力,还带来了技能提升的机会。75%的开发者表示在使用GitHub Copilot时感到更加充实,在具体的生产数据方面,Copilot能够完成高达46%的代码,帮助开发人员将编程速度提高了 55%。

大模型给已有的开发工作“降本增效”

未来的编码工作流程将呈现全新的面貌:AI 编码工具将可以大量生成短期的软件和测试解决方案,不再追求长期的可重复利用性,由于生产过程的高效自动化,未来的推理成本、推理延迟性都将大幅降低。另一方面,工程发展好坏并非在理论上有挑战,而是在工程实践中的持续优化和迭代,这主要体现在未来代码大模型将被提炼成中小型模型,从而实现在边缘设备运行的可能性。

在代码训练推理领域,实际上并不需要前后的历史知识和上下需要索引人文典故,可以预见的将来大模型会逐渐蒸馏成一个中小型模型,可能是70个亿的参数、10个亿参数或者100亿参数,这种规模就已经非常有效果了。

相对较小的模型让在边缘设备、个人电脑上的大模型运行成为可能。此外,硬件架构的升级让消费级硬件能够运行更大规模的模型,目前强大的Mac Pro等已经可以承载数百亿参数的模型。随着这种参数量化的发展,更多模型将能在边缘设备上运行,这是功能上的进步,并不涉及理论上的难点。这种发展在未来几年内将变得更加普遍。

同时**随着生成式 AI 的发展,编程语言之间的差异变得不再那么明显。随之带来的是编程语言的学习门槛降低。**目前学习一门新的编程语言,其中一个关键点在于掌握其生态系统,包括语法和库的使用。举个例子,区分成熟的 Java 工程师和专业的 Java 工程师的主要因素之一是对各种库的熟悉程度和使用直觉。

未来,生成式AI的存在可能极大地简化这一过程。例如,当需要进行 JSON 解析时,生成式 AI 可以自动推荐合适的库。这就像有一个助手在一旁,不仅帮助选择合适的工具,还可以解释不熟悉的代码片段。因此,学习新语言将变得更加直观和简单。

这种变化预示着未来编程的重点可能会从对工具的关注转移到提供端到端体验上,开发者可以更加专注于创意和解决方案的实现,而不是编码的具体细节。

面向未来:MoonBit——为AI原生应用打造的编程语言

正是在这样的背景下,MoonBit应运而生。MoonBit在2022年10月推出,此时恰逢ChatGPT刚刚问世。MoonBit平台的出现不仅仅作为一种编程语言,更是提供一个完整的开发工具链,包括IDE、编译器、构建系统、包管理器等。我们处在一个特殊的位置,有机会去重新构想整个编程语言工具链该如何与AI更好地协作,开启了编程与AI结合的新篇章。

在不断的探索中,我们的努力得到了学术界的认可。最近,MoonBit团队的研究论文「MoonBit: Explore the Design of an AI-Friendly Programming Language」已经荣幸地被LLM4Code 2024接收!

在这里插入图片描述

同时,我们在ai.moonbitlang.com上设计了一个简单的MoonBit AI demo,非常欢迎你来尝试!我们也非常期待你的反馈,可以随时通过我们的论坛/微信小助手/用户群等渠道进行反馈。

让我们看看下面的视频,更具体地了解使用MoonBit AI进行端到端开发的体验是什么样子:

从上面的视频可以看到,不同于ChatGPT,MoonBit AI可以实现从需求设定到代码实现,再到运行调试的无缝衔接,确保编程过程更加流畅高效。用户可以实时修改MoonBit AI生成的代码,获得即时反馈。同时,MoonBit AI重视用户体验,为大家提供一个更加便捷易用的用户界面。无论你是编程新手还是资深的开发者,都能轻松上手。

在文章接下来的部分,我们主要将讨论两个主要方面:

  1. MoonBit如何设计成一种出色的、对AI友好的编程语言
  2. 是什么驱动了MoonBit AI

MoonBit:平坦化设计,适配Transformer架构

MoonBit作为AI时代的开发平台,设计强调清晰和简单,特别强调在顶层(toplevel)和局部(local)定义之间的清晰区分。MoonBit还采用了结构化接口实现(structural interface implementation),在这种方式中,一个类型通过实现其方法来实现一个接口,因此消除了额外嵌套代码块的必要性。

现有的大模型基本都基于自回归的 Transformer 架构。这意味着随着上下文窗口增长,生成单个 token 的复杂度呈 n² 上升。也就是说,大模型的推理会越来越慢。一个没有嵌套的编程语言有着较好的可读性,同时也能够在各个层级(RAG,decoder correction,backtrack)做到 KV 缓存友好,实现更高的推理速度。

让我们一起来看一个例子:

在图1(a)中所示的例子中,一名程序员正在为类型Llama实现特性Agent中的方法think。他们发现类型Llama缺少在特性LLM中定义的generation方法。由于他们处于一个嵌套代码块中,需要回到顶层来为类型Llama实现特性LLM。然而,在大型语言模型(LLMs)的上下文中,修改几个函数之前的提示会导致相关KV缓存段的无效,这在图中以红色突出显示。经过这样的修改,所有这些函数都要重新评估,这不仅浪费了计算资源,更关键的是,延长了输出的延迟时间。

相比之下,如图1(b)所示,MoonBit允许程序员和大型语言模型(LLMs)线性地开发他们的程序,无需频繁地来回跳转。通过结构化接口,实现接口的函数不限于特定的代码块。这允许几乎线性地生成接口及其各自的实现,从而有效地最大化利用KV缓存。

在这里插入图片描述

图1

MoonBit AI:快速实时的语义补全

MoonBit AI由两种定制的采样算法驱动:局部采样和全局采样。局部采样使用AI生成的代码进行实时调整,以确保代码遵循语法规范,而全局采样进一步验证代码的语义正确性。随着大型语言模型(LLM)生成新的token,MoonBit采样器将从局部和全局收集并利用信息,以确保每个生成的token不仅在语法上正确,而且没有明显的类型错误。这种方法提供了更可靠、更准确的代码生成,减少了后续调试和错误纠正的需要。

例如,当LLM编写程序时,它可能会生成一个不好的token。我们维护一个推测缓冲区来存储最后一个token。一旦token由LLM完成,我们将检查token是否有效。如果有效,我们接受它并将其提交给用户,如果不有效,我们就回溯并重试。为了防止LLM重复同样的错误,我们将告知LLM可能的继续操作,以做出更好的选择。

在这里插入图片描述

我们的实验显示,MoonBit采样器在编译率方面取得了显著提高,性能损失仅约3%。

在这里插入图片描述

当然,这只是个开始!

我们目前正在搭建一个包管理器,这对于收集额外数据以微调模型至关重要。未来,我们将持续增强MoonBit AI能力,包括加入代码辅助、审查、问答界面、测试生成和验证机制等功能。同时,我们正计划开发一个快速解释器,在运行时提供实时反馈。这将进一步提高AI生成代码的可靠性。

欢迎持续关注MoonBit AI的进展!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/262038.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于Java+SpringBoot+Vue前后端分离婚纱影楼管理系统设计和实现

博主介绍:✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行交流合作✌ 主要内容:SpringBoot、Vue、SSM、HLM…

Linux常见的指令

目录 01. ls 指令02. pwd命令03. cd 指令04. touch指令05.mkdir指令(重要):06.rmdir指令 && rm 指令(重要):07.man指令(重要):08.cp指令(重要&#x…

vscode突然连不上服务器了,以前都可以的,并且ssh等其它方式是可以连接到服务器的

过完年回来准备开工干活,突然发现vscode连不上服务器了,奇了怪了,年前都可以的,看了一下报错,如下, 以为是服务器挂了,结果执行ssh xxxxxx 发现是可以远程连接的,看来服务器没有问题…

【selenium】执行 Javascript 脚本 滚动、元素的特殊操作等

某些特殊情况下,使用selenium的api无法操作页面元素,点击、滚动实现的某些功能,可以考虑通过执行js来完成。 为什么不用js写自动化?——selenium第一版是js写的,但js兼容性存在问题,所以引入webdriver 现在…

【GPTs分享】每日GPTs分享之Canva

简介 Canva,旨在帮助用户通过Canva的用户友好设计平台释放用户的创造力。无论用户是想设计海报、社交媒体帖子还是商业名片,Canva都在这里协助用户将创意转化为现实。 主要功能 设计生成:根据用户的描述和创意需求,生成定制的设…

PDF转excel各种方案优劣对比、选择技巧

随着数字化时代的到来,PDF文档已经成为我们日常工作中常见的一种文件格式。然而,有时候我们需要将PDF文档中的数据导入Excel表格中进行处理和分析。手动复制粘贴不仅效率低下,还容易出错。那么,如何快速将PDF文档转换为Excel表格呢…

jquery 简介与解析

jQuery是一个快速、小巧且功能丰富的JavaScript库。它简化了诸如HTML文档遍历和操作、事件处理、动画以及Ajax操作等任务。jQuery的设计理念是“写得更少,做得更多”,这意味着通过jQuery,可以用更少的代码完成更多的工作。 主要特点&#xff…

用html编写的招聘简历

用html编写的招聘简历 相关代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</tit…

低代码平台智能化

前言 为提升人效&#xff0c;我们组自研了一个低代码平台&#xff0c;说是自研但其实还是amis为核心的低代码平台&#xff0c;众所周知&#xff0c;低代码平台使用起来都会有一定的学习成本&#xff0c;尤其是在用户体量上来之后&#xff0c;经常会有人来问我如何使用或者让我…

Plug and Play ADS-B Transceiver TR-1W for UAV and Drones

目录 Introduction TECHNICAL PARAMETERS ELECTRICAL SPECIFICATION MECHANICAL SPECIFICATION Introduction OVERVIEW TR1W belongs to the class of the smallest ADSB transceivers on market and has been developed for civil and commercial Unmanned Aircraft Syst…

MKdocs添加顶部公告栏

效果如图&#xff1a; docs/overrides下新建main.html &#xff0c;针对main.html文件 树状结构如下: $ tree -a . ├── .github │ ├── .DS_Store │ └── workflows │ └── PublishMySite.yml ├── docs │ └── index.md │ └──overrides │…

Cesium1.95地图使用UrlTemplateImageryProvider加载supermap rest服务报错问题

Cesium1.95地图使用UrlTemplateImageryProvider加载supermap rest服务报错问题 问题描述问题分析解决方案 问题描述 参考这篇博客加载supermap的 rest服务 使用Cesium1.65时能正常加载&#xff0c;升级为1.95后&#xff0c;获取图片的请求报400 Bad Request错误 问题分析 查…

mac电脑 安装 ios开发工具xcode步骤 以及新建ios项目

在Mac电脑上安装Xcode&#xff0c;苹果公司的官方iOS开发工具&#xff0c;以及新建iOS项目&#xff0c;以下是详细步骤&#xff1a; 安装Xcode 1. 打开Mac上的App Store。 2. 在搜索栏中输入“Xcode”。 3. 从搜索结果中找到Xcode&#xff0c;点击“获取”按钮。 4. 输入您的Ap…

【鸿蒙 HarmonyOS 4.0】路由router

一、介绍 页面路由指在应用程序中实现不同页面之间的跳转和数据传递。HarmonyOS提供了Router模块&#xff0c;通过不同的url地址&#xff0c;可以方便地进行页面路由&#xff0c;轻松地访问不同的页面。 二、页面跳转 2.1、两种跳转模式&#xff1a; router.pushUrl()&…

数据结构2月19日

题目&#xff1a;顺序表作业 代码&#xff1a; 功能区&#xff1a; #include <stdio.h>#include <stdlib.h>#include "./d2191.h"SeqList* create_seqList(){SeqList* list (SeqList*)malloc(sizeof(SeqList));if(NULL list){return NULL;}list->p…

06 分频器设计

分频器简介 实现分频一般有两种方法&#xff0c;一种方法是直接使用 PLL 进行分频&#xff0c;比如在 FPGA 或者 ASIC 设计中&#xff0c;都可以直接使用 PLL 进行分频。但是这种分频有时候受限于 PLL 本身的特性&#xff0c;无法得到频率很低的时钟信号&#xff0c;比如输入 …

Puppeteer 使用实战:如何将自己的 CSDN 专栏文章导出并用于 Hexo 博客(三)

文章目录 往期效果将文章信息导出适配 hexo 的文章模板导出的文章路径问题终端控制执行脚本代码整理结尾 往期 Puppeteer 使用实战&#xff1a;如何将自己的 CSDN 专栏文章导出并用于 Hexo 博客&#xff08;二&#xff09; 效果 写了一个 node 脚本用来批量处理 md 文件 本期…

塑造网络安全战略的 5 个趋势

从重创工业部门的勒索软件攻击到人工智能推动的创新网络威胁&#xff0c;2023 年发生了一波备受瞩目的网络安全事件。网络安全形势充满挑战。也就是说&#xff0c;我们当然可以期望组织改进其反防御措施&#xff0c;以应对不断升级的威胁。 1. 零信任获得更多关注 传统的基于…

架构设计:如何保证接口幂等性

引言 在分布式系统中&#xff0c;幂等性是一种十分重要的设计原则。它确保了系统在面对重复请求时能够产生相同的结果&#xff0c;而不会引发意外的行为或者数据不一致的问题。在本文中&#xff0c;我们将深入探讨幂等性设计的重要性&#xff0c;并结合 Java 代码以及不同场景…