DeepMind科學家:LLM沒有過度炒作!親身分享50個AI用例讓工作效率飛升50%
Nicholas Carlini是谷歌DeepMind的一位研究科學家,近日,他撰寫了一篇長達8萬字的文章,介紹自己是怎么使用AI的。
他詳細列舉了自己日常使用AI的50個實例,而且說這些只是他所有AI應用的不到 2%。
文章地址:https://nicholas.carlini.com/writing/2024/how-i-use-ai.html
一開篇,Nicholas就亮出了自己的觀點:「我不認為AI模型(LLM)被過度炒作了」。
他承認AI泡沫的存在——「許多公司喜歡說自己『正在使用人工智能』 ,就像他們以前說自己由『區塊鏈』驅動一樣」。
但是,Nicholas認為AI所取得的進展可不僅僅是炒作。
因為在過去的一年里,他每周至少花幾個小時與各種大語言模型進行交互,這些大語言模型能夠勝任越來越困難的工作。
有了這些模型,Nicholas在研究項目和副業項目中編寫代碼的速度至少提高了 50%。
以下就是Nicholas使用LLM的幾個實例——
- 用他從未使用過的技術構建整個網絡應用程序
- 讓模型教我如何使用以前從未使用過的各種框架
- 將數十個程序自動轉換為C語言或Rust語言,將性能提高10-100倍
- 縮減大型代碼庫,大幅簡化項目
- 為他去年撰寫的幾乎每一篇研究論文編寫初始實驗代碼
- 將幾乎所有單調的任務或一次性腳本自動化
- 在幫助他設置和配置新軟件包或項目時,它幾乎完全取代了網絡搜索
- 約50%的網絡搜索被取代,以幫助他調試錯誤信息
Nicholas將這些例子分為了兩大類,一類是「幫助我學習」,另一類是「自動化無聊的任務」。
這些應用可能并不花哨,因為它們都來自于Nicholas完成實際工作的需要,就像我們一樣——每天所做的大部分工作并不迷人。
但LLM的魅力正基于此:自動化完成那些工作中boring的部分。
作者背景
有一點很重要,Nicholas特別寫在了前面,他自己并不是一個樂于相信新技術的人。
盡管他經歷了十年前安全界的加密炒作,但他沒有寫過關于區塊鏈的任何一篇論文,也從未擁有過比特幣,「它們基本上沒有任何用途,除了賭博和欺詐」。
除此之外,Nicholas作為一名安全研究員,近十年來,他的日常工作就是向人們展示人工智能模型在面對未經訓練的環境時會以何種方式慘遭失敗。
他已經證明,對機器學習模型的輸入稍加擾動,就能讓它們產生大錯特錯的輸出。
或者,大多數機器學習模型都會記住訓練數據集中的特定示例,并在你使用它們時重復這些示例。
所以,他完全理解這些系統的局限性。
然而,Nicholas毅然決然地宣稱「大語言模型為我的工作效率創造了自互聯網誕生以來的最大提升」。
如何使用語言模型
構建完整的應用程序
去年,Nicholas做了一個「GPT-4能力預測挑戰賽」的小游戲,共設置了28個由易到難任務,讓人們逐步預測GPT-4成功解決它們的概率。
GPT-4能力預測挑戰賽
結果很受歡迎,頁面瀏覽量超過了一千萬。你猜怎么著?整個應用程序的初始版本幾乎全部是GPT-4編寫的。
Nicholas是通過一系列的問題來完成的,從詢問應用程序的基本結構開始,然后慢慢建立各種功能。
這段對話總共長達3萬字,真正凸顯了GPT-4 (當時最先進的)原始模型的能力。
語言模型擅長解決人們以前解決過的問題,而這個測驗99%的內容都是一些基本的HTML和Python網絡服務器后臺,世界上任何人都可以寫出來。
這個測驗之所以有趣,人們之所以喜歡,并不是因為它背后的技術,而是因為測驗的內容。因此,將所有枯燥的部分自動化,讓Nicholas制作這個測驗變得非常容易。
Nicholas說,事實上,如果沒有語言模型的幫助,他可能就不會做這個測驗。因為他自己沒有興趣花時間從頭開始編寫整個網絡應用程序。
作為新技術的導師
一個人一天只有這么多時間,而且由于工作原因,Nicholas大部分時間都花在了解最新的研究進展上,而不是JavaScript框架。
這意味著,當需要在他的特定研究領域之外啟動一個新項目時,他通常有兩種可能的選擇。
首先,可以利用已經知道的知識,這些知識往往已經過時一二十年,但如果項目規模較小,往往已經足夠。
或者,可以嘗試學習新的(通常是更好的)做事方法。
這就是LLM的用武之地。
因為像Docker、Flexbox或React這樣對Nicholas來說很新的框架/工具,對其他人來說并不陌生。
世界上可能有數以十萬計的人對這些東西都了如指掌,這也就意味著當前的語言模型也是如此。
今年早些時候,Nicholas正在構建一個LLM評估框架,希望能夠在一個封閉的環境中運行LLM生成的代碼,這樣它就不會隨意刪除他電腦上的文件或類似的東西。
Docker是完成這項任務的完美工具,但他以前從未使用過。
重要的是,這個項目的目標并不是使用Docker,Docker只是實現目標所需的工具。
Nicholas想要的只是了解他所需要的10%的 Docker,這樣他就能確信自己正在以最基本的方式安全地使用它。
如果是在上世紀 90 年代做這件事,Nicholas基本上只能買一本介紹如何從第一原理開始使用 Docker 的書,讀完前幾章,然后試著跳來跳去,找出如何做他想做的事。
如果是在前十年,情況有所改善。他會在網上搜索一些介紹如何使用Docker的教程,并試著跟著做,然后在網上搜索他發現的任何錯誤信息,看看是否有人遇到過同樣的問題。
但今天,「只需要請一個語言模型來教我Docker就好」。
由于篇幅所限,有關Nicholas使用LLM的更多示例,請移步到他的個人網站(文末有參考鏈接)。
結論
Nicholas稱自己寫作這篇文章有兩個動機,第一個是證明LLM已經為他提供了很多價值。
第二個是為那些「很喜歡使用LLM,但不知道它們如何幫我」的朋友提供一些示例。
在展示這些示例之后,他最常聽到的反駁之一就是「但這些任務很簡單!任何計算機科學專業的本科生都能學會!」
只要花幾個小時四處搜索,本科生就能告訴你如何正確診斷CUDA錯誤,以及可以重新安裝哪些軟件包。
一個本科生只要花幾個小時,就能用C語言重寫那個程序。
一個本科生只要花幾個小時,就能研究相關的教科書,教給你任何你想知道的知識。
但不幸的是,我們沒有那個「神奇的本科生」,他會放下一切,回答你的任何問題。
但我們有語言模型。當然,語言模型還沒有好到可以解決程序員工作中最難也最有趣的部分,目前的模型只能解決簡單的任務。
五年前,LLM所能做到的最好的事情就是寫出一段聽起來像是英語的段落,但它們的實際效用完全為零。
但如今,它們已經讓Nicholas在編程方面的工作效率平均提高了至少 50%,并且消除了足夠多的繁瑣工作,讓他做出了許多他從未嘗試過的東西。
所以,Nicholas才會旗幟鮮明地反對「LLM只是炒作」的觀點。
作為一個擁有20年編程經驗的科學家,Nicholas利用LLM顯著提高了自己的工作效率,他相信,其他人也可以從中受益。