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

csdn 發佈 2023-05-29T17:20:17.467859+00:00

【CSDN 編者按】生成式 AI 的爆發已經開始改變很多行業的工作方式,但對於軟體工程來說,轉型早就開始。

【CSDN 編者按】

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

對話嘉賓:

謝濤 北京大學講席教授

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

蔣濤 CSDN 創始人&董事長

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模型到這些場景的時候,參數要設置成更大程度去保護老年人用戶,因為他們被騙的成功概率更高。從老年人用戶自身的角度來看,接到一個電話要先看看來源是哪裡,現在智慧型手機可自動標註來源,老年人要注重去看這些細節,不要太輕信一些來源不明的信息或者是電話。

關鍵字: