天天看點

CSDN 創始人蔣濤對話北大謝濤:AI 正在變革軟體工程

作者:CSDN

【CSDN 編者按】生成式 AI 的爆發已經開始改變很多行業的工作方式,但對于軟體工程來說,轉型早就開始。一位頂級華人學者在一篇16年前的經典論文中就已嘗試用智能化的方式解決特定的軟體工程領域的問題,在之後的十幾年,這篇智能化軟體開發領域的早期經典代表作引領着無數技術人在軟體工程領域開疆拓土。

對話嘉賓:

謝濤 北京大學講席教授

CSDN 創始人蔣濤對話北大謝濤:AI 正在變革軟體工程

北京大學講席教授、計算機學院軟體科學與工程系主任,歐洲科學院外籍院士、國際計算機學會(ACM)會士、電氣電子工程師學會(IEEE)會士、美國科學促進會(AAAS)會士、中國計算機學會(CCF)會士。主要研究領域包括軟體工程,系統軟體,軟體安全,可信人工智能。蔣濤 CSDN 創始人&董事長

CSDN 創始人蔣濤對話北大謝濤:AI 正在變革軟體工程

25 年軟體開發經驗,曾上司開發了巨人手寫電腦、金山詞霸和超級解霸。

1999 年創辦 CSDN(China Software Developer Network)。CSDN 是專業的中文 IT 技術社群,目前注冊會員超過 4300 萬,涵蓋 90% 國内 IT 開發從業人員。

2011 年創辦極客幫創投,作為懂技術的投資人,先後投資了聚合資料、巨杉資料庫、傳智播客、樂動卓越(我叫 MT)、IT 桔子等 100 餘家高科技創業公司。被投項目中 SequoiaDB 巨杉資料庫作為業界領先的金融級分布式關系型資料庫産品,連續兩年入選 Gartner 資料庫報告,傳智播客、檸檬微趣已于 2019 年、2017 年分别申報中小闆和創業闆上市,淘手遊也被貴州省列為第一批科創闆備案名單。

責編 | 何苗

出品 | CSDN(ID:CSDNnews)

2021 年,一篇發表于 ASE 2007 的經典論文,讓 ASE 将「最有影響力論文」獎項頒給了北京大學講席教授謝濤和當時的博士生 Suresh Thummalapenta。ASE 與 ICSE、ESEC/FSE 并列為軟體工程三大國際頂會,在 ASE 曆年最有影響力論文獎獲獎作者中,謝濤是首批華人作者。

這篇論文中,謝濤與學生提出用機器學習提高軟體研發效能的方法,将大規模的代碼搜尋、機器學習和資料挖掘結合。這也讓他成為最早開展智能化軟體工程研究的學者之一。

海外求學與執教的 14 年後,謝濤尋得契機回到北大任講席教授,繼續高水準科研工作。作為最早開展智能化軟體工程研究的學者之一,他對 AI 及其應用的認知深入底層,對于 AI 新秀 ChatGPT,他表示:“ChatGPT 是模式上的大進步。它可以不停地對話,讓使用者把真正想要的東西表達清楚,僅僅是把需求搞清楚這一個點,就能讓 AI 的效果和可用性往前邁一大步。”他相信未來中國也能夠做出自己的 ChatGPT。

近兩三年在智能化軟體工程領域,大模型得到了極大關注。Copilot 的驚豔首發,讓大家看到大模型在代碼生成、代碼審查、代碼缺陷檢測等方面的巨大潛力。再加上 ChatGPT 的拿手互動式對話,AI 技術為基礎軟體的發展提供了哪些新的方向和機會?對國産基礎軟體行業的發展有着怎樣的展望?我們将從 CSDN 創始人&董事長蔣濤與北京大學講席教授謝濤的深度對話中為大家悉數呈現。

視訊内容收錄于今日頭條科學頻道聯合中國計算機學會(CCF)推出的“這很科學”之《科學真言》系列視訊。

視訊位址:https://live.csdn.net/v/262912

對話實錄:

蔣濤:目前人工智能自動生成代碼方面的發展狀況如何?

謝濤:代碼自動生成就是把實作使用者所需功能的代碼自動生成出來。假設使用者需要一個快速排序算法的實作(給定的輸入是一個整型數組)。把這個需求以自然語言的方式給到代碼自動生成系統後,系統就可自動生成實作快速排序算法的代碼。這是一種比較常見形式。

除此之外還有其他的生成形式。還是以排序功能為例,此時給到代碼自動生成系統的是一個形式化需求規約,其表達給定輸入為任意整型數組,輸出為一個對其經過排序後得到的數組。系統就自動生成實作排序功能的代碼,并不限定使用哪種排序算法。

如今代碼補全(也叫代碼續寫)是産業界軟體開發常用的一種工具輔助。類似于大家使用輸入法工具感受到的,打出前幾個字,後面工具就會自動提示下文。代碼補全是代碼自動生成目前在産業界已經落地的主要應用場景之一。但從使用上,兩者有一些本質差別。代碼自動生成可以在使用者讀不懂被生成的代碼或者不知道自己要寫什麼樣代碼的情況下使用,而代碼補全通常要求使用者知道自己要敲什麼代碼,AI 隻是讓敲代碼更快些。

蔣濤:代碼自動生成已經在基于人工智能的代碼補全的基礎上更進一步。随着微軟的 GitHub 釋出 Copilot,各大公司也都推出代碼自動生成引擎,DeepMind 曾釋出 AI 程式設計系統 Alpha Code,但沒有引起太大反響,是因為該技術有一定局限性嗎?

謝濤:這裡有好幾個局限性,也是科研攻關的重點。

要讓代碼自動生成在某個軟體企業内部落地,可能需要針對該企業軟體開發的本地特點再學習、再訓練,以便更好地提供定制化服務,要做好并不容易,不過我相信将來都可以解決。目前用于代碼生成任務評估的常用資料集 HumanEval 是一個自包含的資料集,其中代碼通常沒有去調用第三方庫等。但在真實開發場景裡,所寫的代碼很可能會去調用一些第三方庫或是自己寫的庫。 如果要生成的代碼調用了企業内部的庫,就可以通過上述的再學習、再訓練去應對,但要想效果好并不容易。

另外,所生成代碼的簡單性、可了解性目前也沒有很好地解決。如果能有機制去确認所生成的代碼完全正确,而不用使用者去看它、改它,就能在使用過程中省下很多時間。除了人肉眼看代碼外,如何保障生成代碼完全正确?或許可以提供一些測試用例,但它不一定能完備,代碼僅僅是通過了測試用例也不能讓人放心。當然,也可以提供形式化需求規約并使用定理證明來證明所生成代碼符合給定的規約,不過這麼做需要較大的人力投入,并且對其支撐的工具也尚未成熟到能應對較大規模、産業實踐中的代碼。

蔣濤:寫完代碼或生成出來的代碼能用 AI 判定其品質嗎?

謝濤:産業界已經開始做這樣的嘗試,例如基于大資料或 AI研發出一個自動代碼審查的工具。一些企業已經部署了這類工具,以資料驅動的方式來去輔助人工代碼審查。除了代碼審查外,AI 也可以助力測試任務。不過這些仍然是開放性的問題,需要長期攻關才能讓落地效果足夠好。

蔣濤:人工智能越來越強,會不會把普通人的飯碗搶了?甚至把程式員自己的飯碗也搶了?哪一類的程式員可能受到威脅?

謝濤:寫代碼時思考、設計較少的程式員崗位會受到威脅,比如傳統意義上的“碼農”。代碼自動生成在特定領域效果很好,比如面向終端使用者程式設計的一些領域。具體來說,BI 部門要緊張了,原先依賴于資料分析師根據資料分析需求去寫 SQL 語句、可視化腳本等,現在自然語言翻譯到 SQL 語句效果已經做得很好。在各種軟體工程任務比如軟體測試上,将來測試資料生成、測試預言生成等都可以被 AI 去自動化,前提條件是有足夠多足夠高品質的資料去喂給 AI。不過,研發基礎軟體等複雜軟體的軟體工程師應該不用發愁,因為這些研發工作太複雜了,應該不會受到 AI 的威脅。

蔣濤:人工智能不僅是程式員的幫手,還會幹掉一部分人重複性的工作。一些資料分析的工作,可能會逐漸被機器人取代,研發基礎軟體的工程師則不必過于擔憂。什麼是基礎軟體?國内發展現狀如何?

謝濤:業界對基礎軟體的定義範圍不盡相同,但基本共識是包括作業系統、程式設計語言、編譯器、資料庫管理系統、辦公軟體以及浏覽器在内。廣義的基礎軟體還包括一些開發工具、測試運維工具等。辦公軟體因為太常用了,且在工作中處于關鍵位置,是以也成為了底座之一,現在被認為是基礎軟體重要部分。此外,一些工業軟體支撐着工業應用的底座,也被包含在特定行業的基礎軟體裡。

國産基礎軟體有很多子領域存在卡脖子的情況,比如作業系統,廣義的工業軟體 MATLAB 等等。也許大家要問 Linux、Android 等很多作業系統都是開源,怎麼就被卡脖子了?很大一部分原因在于生态上的限制,導緻其話語權不在我方。

國産作業系統近幾十年發展良好,國家也一直在支援。但現在主流國産作業系統的“心”(核心)還是 Linux,盡管大陸程式員與企業在 Linux 核心的貢獻比例很大,甚至國内大廠華為對 Linux 核心的貢獻如今位列第一,但是回到上述關鍵詞——話語權,還是呈現貢獻者多但核心決策人員話語權少的狀況。但大陸在大資料、 AI、雲原生等相關的開源新興領域有一定話語權。中國新一代技術力量正迎頭趕上,企業的發展常常等不及其他人來引領,就自得投入并孕育出不錯的研發核心人才,也是以在新興領域有些建樹。

蔣濤:如何定義基礎軟體的核心人才?

謝濤:有這樣一個例子。回北大之前,我曾在 UIUC(University of Illinois at Urbana-Champaign,縮寫為 UIUC)計算機系任教。該系有個 2005 年畢業的博士名叫 Chris Lattner,他的博士生導師 Vikram Adve 也是我的前同僚,他們推出的 LLVM 構架編譯器與 GCC 并列為三大編譯器之一。Chris Lattner 後來被稱為 LLVM 之父。他的導師告訴我, Chris 在讀博期間就研制了 LLVM 編譯器的基礎設施,畢業後他就打定主意要去産業界,并且展現了很強的能力,拿下很多 offer,最終進入了蘋果。Chris 當時的想法是:“誰允許和支援我繼續把 LLVM 發揚光大,我就去哪兒!”Apple 全力支援了此事,是以 LLVM 後面發展勢頭很好。這裡我們可以看到基礎軟體核心人才身上的特點。

蔣濤:人工智能的應用如今也非常廣泛,水能載舟亦能覆舟,AI 成為了一部分人的幫手,也成為了一些不法分子手裡的利器。央視曾曝光詐騙集團利用人工智能技術讓機器人打詐騙電話,撥出 1700 萬通電話,最後有 80 多萬人上當,總計騙取 1.8 億,而被騙的人從電話裡根本分辨不出是機器人的聲音。有沒有 AI 技術可以輔助識别機器人騷擾電話,保護普通群衆?

謝濤:大資料、AI技術越來越多被詐騙團夥等犯罪分子利用,使廣大使用者受害的事件層出不窮,要對其進行絕對防治是很難的。就像安全領域的攻和防的關系,我們隻能通過提高詐騙門檻來一定程度去防治。目前 AI 技術已經使得發動攻擊、詐騙的行動變得門檻很低,也能做出很逼真的機器人合成聲,以及非常逼真的交談内容。對于普通大衆使用者來說确實挺難防這些 AI 詐騙的手段。

以我的親身經曆為例分享一下防騙心得。有騙子曾以短信詢問我某個業内同行的電話号碼。這種詢問途徑其實不太常見,一般人不會直接就發短信來詢問另一個人的電話号碼。我們可以認真分析,如果一件事情所發生的途徑并不自然且不常見,那麼很可能就會有問題,要多加小心。

蔣濤:現在高仿技術越來越強,Deep Fake 可以在視訊裡換臉,高仿技術現在能做到什麼樣的程度?怎麼樣甄别高仿網站或者 App?

謝濤:仿冒的網站、App、郵箱、微信,詐騙短信、電話等,從照片内容來看是防不勝防,詐騙分子會做得很逼真。普通使用者要學會看來源,看一些外圍的資訊。比如說看網站的 URL 連結。有些電子郵件裡面包含網站連結時,它字面顯示出來的連結和你複制粘貼到浏覽器裡的連結有可能是不一樣的。有一次我收。有一次一個郵件要求我重設某賬戶的密碼,由于我對軟體安全比較敏感,是以沒有直接點選郵件内的網址連結,而是複制粘貼這個連結至浏覽器出來,這時就很快發現了網址有問題。是以,養成慎重打開連結的習慣很重要。

對于不懂 IT 的老年人,有一個針對移動應用或網站老年人使用者的方向——适老化改造,探索怎麼樣才能讓移動應用或網站等對老年人使用者更友好。例如,首先技術上要有防詐騙手段支撐,包括 UI 設計、報警提醒等措施。在使用 AI模型到這些場景的時候,參數要設定成更大程度去保護老年人使用者,因為他們被騙的成功機率更高。從老年人使用者自身的角度來看,接到一個電話要先看看來源是哪裡,現在智能手機可自動标注來源,老年人要注重去看這些細節,不要太輕信一些來源不明的資訊或者是電話。