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 的復雜度呈 n2 上升。也就是說,大模型的推理會越來越慢。一個沒有嵌套的編程語言有著較好的可讀性,同時也能夠在各個層級(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.pswp.cn/news/696362.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/696362.shtml
英文地址,請注明出處:http://en.pswp.cn/news/696362.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【IC設計】Chisel API之Arbiter和RRArbiter的使用

文章目錄 介紹Chisel的Valid和Ready流控build.sbtRRArbiter代碼示例 介紹 仲裁器在NoC路由器中是重要的組成部分,虛通道仲裁和交叉開關仲裁都需要使用仲裁器。 Chisel提供了Arbiter和RRArbiter仲裁器 Arbiter是基礎的低位優先仲裁器, RRArbiter初始情況…

前端構建效率優化之路

項目背景 我們的系統(一個 ToB 的 Web 單頁應用)前端單頁應用經過多年的迭代,目前已經累積有大幾十萬行的業務代碼,30 路由模塊,整體的代碼量和復雜度還是比較高的。 項目整體是基于 Vue TypeScirpt,而構…

ProtoBuf認識與Windows下的安裝

protobuf簡介 Protobuf 是 Protocol Buffers 的簡稱,它是 Google 公司開發的一種數據描述語言,是一種輕便高效的結 構化數據存儲格式,可以用于結構化數據,或者說序列化。它很適合做數據存儲 或 RPC 數據交換格 式 。可用于通訊…

WebServer -- 定時器處理非活動連接(上)

目錄 🍍函數指針 🌼基礎知識 🐙整體概述 🎂基礎API sigaction 結構體 sigaction() sigfillset() SIGALRM, SIGTERM 信號 alarm() socketpair() send() 📕信號通知流程 統一事件源 信號處理機制 &#x…

2024全球網絡安全展望|構建協同生態,護航數字經濟

2024年1月,世界經濟論壇發布《2024全球網絡安全展望》報告,指出在科技快速發展的背景下,網絡安全不均衡問題加劇,需加強公共部門、企業組織和個人的合作。 報告強調,面對地緣政治動蕩、技術不確定性和全球經濟波動&am…

基于springboot+vue的美發門店管理系統(前后端分離)

博主主頁:貓頭鷹源碼 博主簡介:Java領域優質創作者、CSDN博客專家、阿里云專家博主、公司架構師、全網粉絲5萬、專注Java技術領域和畢業設計項目實戰,歡迎高校老師\講師\同行交流合作 ?主要內容:畢業設計(Javaweb項目|小程序|Pyt…

Python 高級語法:一切皆對象

1 “一切皆對象”是一種核心設計哲學 在編程領域,特別是面向對象編程(OOP)中,“一切皆對象”是一種核心設計哲學。這種哲學主張,無論是數據、函數、還是更復雜的結構,都可以被視為對象,并賦予…

信息安全基本概念匯總

目錄 一、安全加密算法相關 二、信息安全需求規范相關 三、安全啟動 四、安全更新 五、安全通信SecOC 六、HSM安全固件整體架構 一、安全加密算法相關 基于Autosar的網絡安全理解_搜狐汽車_搜狐網 基于AES的CMAC算法、MAC、Hash、數字簽名之間的關系_aes cmac-CSDN博客…

Cartographer框架簡述

catographer框架分為前端和后端 前端包括雷達數據處理;位姿預測;掃描匹配和柵格地圖更新。 后端包括后端:線程池任務與調度;向位姿圖添加節點,計算節點的子圖內約束和子圖間約束(回環檢測)&…

C++之Easyx——圖形庫的基本功能(1):界面操作

最近,我覺得使用控制臺編寫游戲太沒意思了!! 所以我開始研究圖形庫了~ 一、setinitmode 函數定義 void EGEAPI setinitmode(int mode, int x CW_USEDEFAULT, int y CW_USEDEFAULT); //設置初始化模式,mode0為普通&#xff0c…

Spark中寫parquet文件是怎么實現的

背景 本文基于 Spark 3.5.0 寫本篇文章的目的是在于能夠配合spark.sql.maxConcurrentOutputFileWriters參數來加速寫parquet文件的速度,為此研究一下Spark寫parquet的時候會占用內存的大小,便于配置spark.sql.maxConcurrentOutputFileWriters的值&#…

Javascript怎么輸出內容?兩種常見方式以及控制臺介紹

javascript是一種非常重要的編程語言,在許多網頁中它被廣泛使用,可以實現許多交互效果和動態效果。輸出是javascript中最基本的操作之一,下面將介紹兩種常見的輸出方式。 一、使用console.log()函數輸出 console.log()函數是常用的輸出函數…

Jmeter實現階梯式線程增加的壓測

安裝相應jmeter 插件 1:安裝jmeter 管理插件: 下載地址:https://jmeter-plugins.org/install/Install/,將下載下來的jar包放到jmeter文件夾下的lib/ext路徑下,然后重啟jmeter。 2:接著打開 選項-Plugins Ma…

在Linux上安裝Docker: 一站式指南

Docker 是一款強大的容器化平臺,為開發者提供了一種輕松打包、發布和運行應用的方式。在本文中,我們將探討如何在Linux操作系統上安裝Docker,為你提供一站式指南。 步驟1: 卸載舊版本 在安裝新版Docker之前,建議先卸載舊版本&am…

三十年一個大輪回!日股突破“泡沫時期”歷史高點

2月22日周四,英偉達四季報業績超預期,而且本季度業績指引非常樂觀,提振美股股指期貨并成為芯片股和AI概念股情緒的重要催化劑。今日亞洲芯片股和AI股起飛,日本在芯片股的帶動下突破1989年泡沫時期以來的歷史最高收盤價。 美股方面…

我之前炒股虧麻了,找百融云AI Agent談了談心

春節之前,A股和H股都跌麻了,但是機構的路演和調研反而多了。因為:寫不完的安撫、說不完的陪伴、聽不完的客戶指責、以及撿不完的AH股便宜貨。 有一位血液里流淌著美式咖啡的職場白領,雖然這些年在股市過得很不如意,但…

C語言---鏈表

一.定義 鏈表是由一系列節點組成,每個結點包含兩個域,一個是數據域,數據域用來保存用戶數據,另一個是指針域,保存下一個節點的地址。鏈表在內存中是非連續的。 二.分類 靜態鏈表 動態鏈表 單向鏈表 雙向鏈表 循環鏈…

maven使用問題及解決辦法匯總

文章目錄 1、maven clean后打包出現Cannot create resource output directory2、把已有jar包打包進本地maven倉庫 1、maven clean后打包出現Cannot create resource output directory 主要原因是target目錄被別的程序占用了,最笨的辦法是重啟電腦,當然也…

C++跨模塊釋放內存

linux一個進程只有一個堆,不要考慮這些問題,但是windows一個進程可能有多個堆,要在對應的堆上釋放。 一, MT改MD 一個進程的地址空間是由一個可執行模塊和多個DLL模塊構成的,這些模塊中,有些可能會鏈接到…

代碼隨想錄訓練營第29天| 491.遞增子序列、46.全排列、47.全排列 II

491.遞增子序列 題目鏈接&#xff1a;491. 非遞減子序列 - 力扣&#xff08;LeetCode&#xff09; class Solution {List<List<Integer>> ans new ArrayList<>();public List<List<Integer>> findSubsequences(int[] nums) {backtrack(nums, …