谷歌科學(xué)家Nicholas Carlini:17個AI用法,讓打工人效率翻倍

0 評論 1218 瀏覽 13 收藏 36 分鐘

隨著AI技術(shù)的飛速發(fā)展,大語言模型正在成為提升工作效率的強(qiáng)大工具。谷歌科學(xué)家Nicholas Carlini分享了17種AI用法,展示了大語言模型如何在編程、項目管理、新技術(shù)學(xué)習(xí)、代碼優(yōu)化、任務(wù)自動化等多方面為打工人提供幫助。

新技術(shù)的普及,融入每個人的日??傄?jīng)歷一個相當(dāng)長的過程。對于大模型而言,同樣如此。

我們相信,不少行業(yè)的從業(yè)人員已經(jīng)將大模型融進(jìn)工作流甚至日常生活中去了,也不得不承認(rèn)大模型的普及率還沒有達(dá)到頂峰,沒有達(dá)到人人皆用的程度。

從實(shí)用角度出發(fā),造成阻礙的因素是什么?普通人該如何使用大模型?大模型對于每個人的具體益處到底是什么?

谷歌DeepMind 研究科學(xué)家 Nicholas Carlini,一位機(jī)器學(xué)習(xí)和計算機(jī)安全領(lǐng)域的大牛。以最貼近現(xiàn)實(shí)實(shí)用的角度,分享了他對大模型的看法,以及自己對大模型應(yīng)用的50個案例。

其中包括:

  • 用我從未用過的技術(shù)構(gòu)建完整的網(wǎng)絡(luò)應(yīng)用程序。
  • 在我此前從未使用過的情況下,教我如何使用各種框架。
  • 將數(shù)十個程序轉(zhuǎn)換為C或Rust語言,以將性能提高10到100倍。
  • 精簡大型代碼庫,大幅簡化項目。
  • 為我去年撰寫的幾乎每一篇研究論文編寫初始實(shí)驗(yàn)代碼。
  • 自動化幾乎每一項單調(diào)的任務(wù)或一次性腳本。
  • 幾乎完全取代了用于幫助我設(shè)置和配置新軟件包或項目的網(wǎng)絡(luò)搜索。
  • 約50%取代了用于幫助我調(diào)試錯誤信息的網(wǎng)絡(luò)搜索。

這些AI應(yīng)用案例大致歸為兩大類,那就是“幫助我學(xué)習(xí)”和“自動化枯燥任務(wù)”。

烏鴉君做了部分精簡,并摘取了17個人們在工作和生活中經(jīng)常能夠用到的案例,相信會對你有所幫助,以下為正文:

01 構(gòu)建完整的應(yīng)用程序

去年,我制作了一個測試,讓人們檢驗(yàn)自己預(yù)測GPT4解決一些任務(wù)能力的水平。

這個測試最終相當(dāng)受歡迎,獲得了超過一千萬的瀏覽量。

猜猜怎么著?

這個應(yīng)用程序幾乎整個初始版本都是我讓GPT4幫我寫的。

我通過一系列提問來實(shí)現(xiàn)這一點(diǎn)。一開始我詢問應(yīng)用程序的基本結(jié)構(gòu),然后逐步構(gòu)建出各種功能。

整個對話長達(dá)30000字,著實(shí)考驗(yàn)了(當(dāng)時最先進(jìn)的)初代GPT4模型的能力。

02 借助大模型完成各類任務(wù)

回顧我與GPT4的交流,你會發(fā)現(xiàn)各種類型的信息。

有的消息里,我只是用文字描述自己的需求,讓模型給出完整的實(shí)現(xiàn)方案;有的消息里,我提出具體的修改要求.

比如“不用和平均分比較,能否用核密度估計(KDE)算出這是第幾百分位?”;

還有的消息里,我只是復(fù)制粘貼錯誤信息,提出一個沒有詳細(xì)說明的問題.

例如“繪圖時出現(xiàn)錯誤:numpy.linalg.LinAlgError:singularmatrix”;

也有一些情況,我只是尋求簡單的一次性解答.

比如“如何用JavaScript給頁面添加一個加載字符串內(nèi)容的iframe?”

總的來說,能如此順利交流的原因在于,大語言模型擅長解決前人已經(jīng)解決過的問題。

我做的這個小測試,99%的部分不過是基礎(chǔ)的HTML和Python網(wǎng)絡(luò)服務(wù)器后端代碼,門檻很低。

這個測試之所以有趣且受人喜愛,并非因?yàn)槠浔澈蟮募夹g(shù),而是測試的內(nèi)容。

正是因?yàn)榻柚笳Z言模型自動完成了所有枯燥的部分,我才能輕松地做出這個測試。

事實(shí)上,我可以篤定地說,如果沒有大語言模型的幫助,我很可能根本不會去做這個測試,因?yàn)槲铱刹幌牖〞r間從頭開始編寫整個網(wǎng)絡(luò)應(yīng)用程序。

而我還是個懂編程的人!我相信,即便是現(xiàn)有的大語言模型,也足以讓絕大多數(shù)人通過詢問解決方案,去完成他們以前根本無法完成的有意義的任務(wù)。

接下來我還有幾個類似的例子,我讓大語言模型為我編寫了完整的應(yīng)用程序。等這些應(yīng)用發(fā)布時,我會明確說明它們是在大語言模型的幫助下完成的。

03 及時獲取新技術(shù)進(jìn)展

曾經(jīng),我會緊跟新框架的發(fā)展步伐。

但一個人一天的時間有限,而且由于工作的原因,我大部分時間都花在了解最新的研究進(jìn)展上,而不是JavaScript框架的最新動態(tài)。

這就意味著,當(dāng)我要開展一個超出我特定研究領(lǐng)域的新項目時,通常有兩種選擇。其一,我可以使用我熟悉的技術(shù)。

雖然,這些技術(shù)可能已經(jīng)過時了一二十年,但如果項目規(guī)模較小,往往也夠用了。

其二,我可以嘗試學(xué)習(xí)新的(通常也是更好的)方法。

這時,大語言模型就派上用場了。像Docker、Flexbox或React這類對我來說全新的框架或工具,對其他人而言并不新鮮。

世界上可能有成千上萬的人對這些技術(shù)了如指掌,大語言模型同樣如此。

這意味著,我無需閱讀那些假定讀者具備特定知識、想要實(shí)現(xiàn)特定目標(biāo)的靜態(tài)入門教程,而是可以與大語言模型進(jìn)行交互式學(xué)習(xí),掌握解決任務(wù)所需的一切知識。

例如,今年早些時候,我在構(gòu)建一個大語言模型評估框架,希望能在一個受限的環(huán)境中運(yùn)行大語言模型生成的代碼,避免它刪除我電腦里的隨機(jī)文件之類的情況。

Docker正是完成這項任務(wù)的理想工具,但我之前從未使用過它。

重要的是,這個項目的目標(biāo)并非使用Docker,Docker只是我實(shí)現(xiàn)目標(biāo)所需的工具。

我只想了解Docker中那10%的必要知識,這樣我就能放心地以最基本的方式安全使用它。

要是在90年代做這件事,我基本上得買一本從基礎(chǔ)講起的Docker使用手冊,讀完前幾章,然后跳著閱讀以弄清楚如何實(shí)現(xiàn)我的需求。

后來情況有所改善,如果是在過去十年做這件事,我會在網(wǎng)上搜索一些介紹Docker使用方法的教程。

試著照著做,遇到錯誤信息時再上網(wǎng)搜索,看看是否有人也遇到過同樣的問題。

但如今,我只需讓大語言模型教我使用Docker。下面就是我向它請教的過程。

04 開啟新的項目

我年輕時學(xué)的第一門編程語言是Java。

我確實(shí)很喜歡編程,但有一件事我極其討厭,那就是面對一個新項目的空白屏幕。

尤其是用Java的時候!哪怕只是讓程序編譯出一個“Hello,World”,那個“publicstaticvoidmainstringargs”是干嘛的?

括號該放在哪兒?哪些字母要大寫來著?為啥這里用花括號,那里用方括號?

于是,我像任何一個孩子會做的那樣,讓我父親幫我搞定。

時光飛逝二十年,如今面對不熟悉的框架開啟新項目,我依舊滿心抗拒。

光是處理那些樣板代碼就要耗費(fèi)大量時間,而且我根本搞不清自己在做什么。

比如,最近我想寫一些CUDA代碼,來對比在GPU上進(jìn)行簡單貪心搜索和在別人優(yōu)化過的高效CPU上實(shí)現(xiàn)的性能差異。

但我不會寫CUDA序。我會寫C語言,也明白GPU的工作原理、內(nèi)核的作用以及內(nèi)存布局等知識。

但要實(shí)際編寫代碼把任務(wù)發(fā)送到GPU上,我完全不知從何入手。

于是,我讓大語言模型幫我寫出CUDA程序的初稿。

它寫得完美嗎?當(dāng)然不!但這是個開端,而這正是我所需要的。

你會發(fā)現(xiàn)這里的代碼有很多錯誤,不過我完全能接受。

我并非尋求一個完美的解決方案,只是想要一個起點(diǎn),后續(xù)我自己能接著推進(jìn)。

要是未來的模型能表現(xiàn)得更好,那自然再好不過,但就目前而言,現(xiàn)有的模型已經(jīng)幫了大忙。

再舉個例子,和上面的情況完全不相關(guān)。

我在家做一些個人項目時,用到了樹莓派PicoW,這是我第一次用它。

我想讓它完成一些特定的任務(wù),尤其是一些網(wǎng)絡(luò)相關(guān)的功能。

我當(dāng)然可以在網(wǎng)上找到有人寫的不錯的教程來指導(dǎo)我怎么做,但你最近瀏覽過網(wǎng)絡(luò)內(nèi)容嗎?

搜索結(jié)果的前5條往往是垃圾內(nèi)容農(nóng)場產(chǎn)出的,里面的代碼還是2008年的,而且有很多bug,只是為了搜索引擎優(yōu)化(SEO)更新了一下,根本沒法用。

于是,我直接讓大語言模型教我怎么實(shí)現(xiàn)我的需求。

我之前接觸過微控制器,大致了解它們的工作原理,但從未用過PicoW。

我只需要有人幫我處理好所有依賴項,后續(xù)的我自己就能摸索清楚。

每次接觸新的微控制器,我寫的第一個“Hello,World”程序都是讓LED閃爍。

這樣我就能測試是否能成功編譯并將代碼上傳到設(shè)備上,引腳是否都設(shè)置正確,從而基本掌握操作方法。

所以,我直接讓大語言模型給我一個閃爍程序的代碼。(再說一次:網(wǎng)上肯定有這樣的代碼,但我還得去搜索。)

一旦代碼能運(yùn)行起來,我就知道后續(xù)該怎么做了。

我懂Python(信不信由你?。?,所以在解決了MicroPython的特殊問題后,我就可以直接繼續(xù)編輯代碼。

當(dāng)我遇到需要特殊處理的問題時,我就直接讓大語言模型幫忙。

比如,我接著讓它幫我寫一個連接WiFi的腳本。

之后我又遇到了連接MQTT服務(wù)器的難題,同樣向它求助。我現(xiàn)在經(jīng)常這么做。

就連本節(jié)開頭提到的例子也不是虛構(gòu)的,我就曾詢問如何使用Flexbox,因?yàn)槲疑洗螌W(xué)習(xí)新的HTML布局方式還是用div標(biāo)簽替代表格的時候。

05 代碼簡化

作為一名安全研究員,我經(jīng)常會拿到一個包含別人數(shù)千行研究代碼的新代碼庫,我得先弄清楚它的工作原理,然后才能對其發(fā)起攻擊。

這聽起來似乎不難,如果大家寫的代碼都很規(guī)范,那確實(shí)也不難,但現(xiàn)實(shí)并非如此。

研究人員并沒有動力去發(fā)布規(guī)范整潔的代碼,所以很多人會把能運(yùn)行的代碼隨便一放就發(fā)布了(我自己也會這樣)。

這里我沒法分享和研究相關(guān)的例子,但可以講一個我個人項目中的例子。

有人說我對康威生命游戲(Conway’sGameofLife)癡迷得有些過頭。

最近,我想找一種在Python里快速評估生命游戲模式的方法。

有一個很棒的C++工具叫Golly能實(shí)現(xiàn)這個功能,但我不想把我的Python代碼重寫成C++代碼。

Golly有一個命令行工具可以滿足我的需求,我只需要正確調(diào)用它就行。

第一步是從支持大約50種不同命令行選項的C++代碼里,提取出能完成我所需功能的部分。

于是我把500行C++代碼一股腦丟給大模型,請求將其精簡并能完成相同的任務(wù)。

大模型,完美的奏效了。

然后,我請求一個圍繞C++代碼的Python封裝器,這同樣有效。

這是那些令人煩惱的任務(wù)之一,如果由我來做,我可能永遠(yuǎn)不會完成。但現(xiàn)在我可以請求別人幫我完成,我得到的東西比我原來的Python代碼快了100倍。

06 解決令人厭煩的枯燥單調(diào)任務(wù)

這是另一類讓人頭疼到我可能永遠(yuǎn)都不會自己去做的任務(wù)。但現(xiàn)在我只需提出需求,就能得到解決方案。

現(xiàn)在這個方案的運(yùn)行速度比我原來的Python代碼快了100倍。

我發(fā)現(xiàn)自己經(jīng)常會這么做。再舉個例子,同樣是在Python里,我也進(jìn)行了類似的操作。

這些任務(wù)其實(shí)都不難,但每次這么做,我都能節(jié)省大量時間。

這就是我認(rèn)為當(dāng)下大語言模型了不起的地方之一:

這并不炫酷,說“我用大語言模型讓生活變得更輕松,不過是做了些無聊的事”也不會在網(wǎng)上引起轟動,但這卻是實(shí)實(shí)在在的幫助。

處理單調(diào)的任務(wù)

我有很多不得不做的事情,既無聊又無需動腦,但又必須完成。

事實(shí)上,我拖延任務(wù)的一個主要原因就是,我知道完成這些任務(wù)會既煩人又痛苦。

大語言模型極大地減輕了這種痛苦,讓我知道自己只需解決有趣的問題,從而更容易開始做事。

例如,最近我要反匯編一個用Python3.9編寫的程序。

大多數(shù)Python反匯編器只支持Python3.7及更早版本,無法處理我手頭的3.9二進(jìn)制文件。

反匯編本身并不是特別難的任務(wù),主要就是在按照跳轉(zhuǎn)指令重構(gòu)控制流時別出錯。

所以,我沒有花時間手動為幾百行代碼里的數(shù)千個操作碼進(jìn)行轉(zhuǎn)換,而是讓大語言模型幫我完成。

它完成得非常出色!比我預(yù)想的要好得多。

再比如,當(dāng)我需要將一些非結(jié)構(gòu)化數(shù)據(jù)整理成結(jié)構(gòu)化格式時,大語言模型也能幫上忙。有一次我在做某個項目,需要一份包含書名和作者姓名的列表。

我在網(wǎng)上找到了非結(jié)構(gòu)化的數(shù)據(jù),于是讓大語言模型幫我進(jìn)行格式化。

還有,最近我寫了一篇關(guān)于如何破解某種防御機(jī)制的博客文章,想展示我修改代碼的完整差異對比。

于是我粘貼了差異和之前如何將差異轉(zhuǎn)換為HTML的示例,并讓LLM按照之前的格式為我生成差異。

另外,在工作中我經(jīng)常需要為使用的資源生成引用。谷歌學(xué)術(shù)可以方便地為論文生成引用,我只需復(fù)制粘貼就行。

但為網(wǎng)頁生成引用有點(diǎn)麻煩,最近我就直接讓大語言模型幫我生成(當(dāng)然,我會檢查生成的引用是否正確)。

這樣的例子我可能至少還能再列舉一百個,但我想你已經(jīng)明白我的意思了。

我完全理解有人看到這些任務(wù)會說“就這?”

但請記住,五年前大語言模型連連貫的段落都寫不好,更別說幫你解決整個問題了。

07 讓每個用戶都成為“專家”

如果你見過有人使用某個工具,而他的熟練度遠(yuǎn)不如你,那場面可能會有點(diǎn)讓人難受。

你會看到他們花上幾分鐘,甚至幾小時去完成一個本來可以通過某種宏或者巧妙運(yùn)用并行應(yīng)用來自動化完成的任務(wù)。

但要學(xué)會使用這些方法來實(shí)現(xiàn)自動化需要時間,而且有一定難度。

例如,最近我想寫一個Python程序來處理蘋果Lisa鍵盤的輸入。

我在網(wǎng)上找到一個用C語言寫的實(shí)現(xiàn),里面有很多類似“#defineKEYNAMEkey_code”的語句,我想把這些語句轉(zhuǎn)換成一個Python字典,將整數(shù)代碼映射到對應(yīng)的字符串。

我是一個Emacs用戶,我知道如何在Emacs里解決這個問題,而且也不算太難。

我剛錄制的按鍵組合就能實(shí)現(xiàn)這個效果:

ChCs#def[回車]Mf[刪除]CdMf
C[空格]MfCwCaCy:”Mf”,CgC]}C[{

雖然,對我來說這幾乎是自然而然的操作,但我花了半輩子才在Emacs里達(dá)到如此熟練的程度。

但現(xiàn)在有了連接到大語言模型的編輯器,你知道我會輸入什么嗎?

ChCh將這些#define重寫成一個{keycode: string, …}形式的字典

然后,文本就在我眼前被重寫了!

在這種情況下,我認(rèn)為大語言模型對非專家用戶的潛在價值比對專家用戶還要高。

模型提升了所有人的下限,如果你以前什么都做不了,突然之間就能做很多事情了。

08 作為API

參考真正的程序員想要理解某個工具的工作原理時會閱讀參考手冊。

但我是個懶惰的程序員;我更愿意直接得到答案。因此,現(xiàn)在我向語言模型提問。

當(dāng)我向人們展示這些例子時,有些人會變得有些防御性,他們說:“LLM沒有做任何你不能用已有工具完成的事情!”

你知道嗎?他們說得對。

但是,用搜索引擎能做的事,用一本關(guān)于該主題的實(shí)體書也能做;用一本實(shí)體書能做的事,通過閱讀源代碼也能做。

然而,每一種方式比前一種都簡單。當(dāng)事情變得更簡單時,你會更頻繁地做,而且方式上也會有所不同。

這就是我問“哪個$命令可以傳遞所有剩余參數(shù)”并獲得答案的例子。(緊接著是另一個“我該如何使用這個東西”的問題?。┻@實(shí)際上是我最常用LLMs的方法之一。我之所以不能給你展示更多這樣的例子,是因?yàn)槲以贓macs和我的shell中都內(nèi)置了查詢LLMs的工具。因此,當(dāng)我想要做這些事情的90%的時間,我甚至不需要離開我的編輯器。

09 搜索難以找到的內(nèi)容

在互聯(lián)網(wǎng)上搜索內(nèi)容曾經(jīng)是一項需要學(xué)習(xí)的技能。

你想在查詢中包含哪些特定的詞匯?它們應(yīng)該是復(fù)數(shù)還是單數(shù)?過去時?

你希望避免在頁面上出現(xiàn)哪些詞匯?我是想要X和Y,還是X或Y?

現(xiàn)在情況已經(jīng)不同了。我想不起上次我在Google中使用OR的時間。我也想不起上次我使用減號()來移除結(jié)果子集的時間。

在大多數(shù)情況下,今天你只需要寫下你想要找的內(nèi)容,搜索引擎就會為你找到。但搜索引擎仍然不是100%的自然語言查詢。

它仍然有點(diǎn)像你在玩反向危險邊緣游戲,試圖使用答案中會有的關(guān)鍵詞而不是問題。

這是一項我認(rèn)為我們幾乎都忘記了我們學(xué)過的技能。

對于今天的一些簡單任務(wù)(隨著時間的推移會越來越多),語言模型只是更好。

我可以直接輸入“所以我知道+對應(yīng)于__add__,但是是什么”,它會告訴我答案是__inv__。這是用標(biāo)準(zhǔn)搜索引擎很難搜索到的東西。

是的,我知道有方法可以問,這樣我就能找到答案。

可能如果我輸入“python文檔元類”add””,我可以搜索頁面上的并得到答案。

但你知道還有什么有效嗎?

只要問LLM你的問題。這樣做任何一次只節(jié)省幾十秒的時間,但當(dāng)你在解決某個編碼任務(wù)的過程中,已經(jīng)試圖同時記住一百萬件事時,能夠?qū)⒛阍噲D解決的問題傾倒出來并得到一個連貫的答案是令人驚訝的。

這并不是說他們今天在這方面已經(jīng)完美。語言模型只有在線上被足夠頻繁地重復(fù)時才知道事情。

“足夠頻繁”是什么意思取決于模型,所以我確實(shí)需要花一些精力思考我是應(yīng)該詢問模型還是詢問互聯(lián)網(wǎng)。但模型只會變得更好。

10 解決一次性任務(wù)

程序可以分為兩類。第一類是你希望能做好的程序,它們會存在一段時間,代碼的整潔度很重要,因?yàn)槲磥韼啄昴愣家S護(hù)它們。

第二類程序則只會存在短短25秒,它們幫你完成某個任務(wù)后就會被立即丟棄。

在這種我完全不在乎代碼質(zhì)量、程序又完全自成一體的情況下,我現(xiàn)在幾乎只讓大語言模型幫我編寫。

提醒一下:同樣,這些任務(wù)中的大多數(shù)會讓你看了之后說“就這點(diǎn)事兒?”

但就像我之前說的,我每天用于某個特定項目的時間有限。

如果能讓我既節(jié)省時間,又節(jié)省精力去編寫一個我再也不會用的程序,我肯定會這么做。

最常見的例子可能是幫我生成可視化研究實(shí)驗(yàn)數(shù)據(jù)的圖表。我有幾十個這樣的例子,可能接近上百個而不是零個。

它們看起來基本都差不多,所以這里就舉一個例子:

還有一個類似的例子是,當(dāng)我有某種格式的數(shù)據(jù),想把它轉(zhuǎn)換成另一種格式的數(shù)據(jù)時。通常我只需要做一次,完成后就會扔掉生成的腳本。

我還能給你舉上千個這樣的例子。

很多時候,當(dāng)我想編寫一個足夠簡單的腳本時,我會直接讓大語言模型完整地寫出來。

比如,我讓大語言模型給我寫一個腳本,把我的論文讀出來,這樣我就能確保論文沒有愚蠢的語法錯誤。

很多情況下,當(dāng)我不太清楚自己想要什么時,我也會先讓模型給出一些初始代碼,然后再在此基礎(chǔ)上進(jìn)行迭代。

例如,這里有一個一次性任務(wù),我只需要快速處理一些數(shù)據(jù)。

在2022年,我會花兩分鐘用Python編寫代碼,然后等上幾個小時讓它運(yùn)行,因?yàn)檫@個程序只運(yùn)行一次——優(yōu)化它所花的時間比程序運(yùn)行的時間還長。

但現(xiàn)在呢?我肯定會花同樣的兩分鐘讓模型給我生成一段能完成數(shù)據(jù)處理的Rust代碼。

再比如,我讓模型幫我下載一個數(shù)據(jù)集并進(jìn)行一些初步處理。

對我來說自己做容易嗎?可能吧。

但這不是我想思考的任務(wù),我想思考的是用這個數(shù)據(jù)集開展的研究。

消除這些干擾,其價值遠(yuǎn)不止節(jié)省的那幾分鐘。

還有一次,我在編寫一個程序,想用小方塊3D打印出像素化圖像。

為此,我需要把PNG文件轉(zhuǎn)換成STL文件,但這不是項目的重點(diǎn),只是過程中必須完成的事情。

所以,我讓大語言模型幫我解決這個問題。

又如,最近我想用DockerCompose搭建一個新項目。

我遇到了一些問題,只想不惜一切代價讓它運(yùn)行起來,之后再去弄清楚哪里出了問題。

于是,我和模型來回交流了好幾次,我只是不斷復(fù)制錯誤信息發(fā)過去,直到它最終給了我一個可行的解決方案。

11 通俗解釋事物

我最近開始對電子學(xué)產(chǎn)生了興趣。

我年輕的時候做過一些電子項目,并在大學(xué)期間上過幾門相關(guān)課程。

但現(xiàn)在我想進(jìn)行實(shí)際的電子項目,我發(fā)現(xiàn)有許多我不了解的細(xì)節(jié),這讓開始任何項目都變得困難。

我可以去讀一本關(guān)于實(shí)用電子學(xué)的書。我可能真的會在某個時候這么做,以便徹底理解這個主題。但我并不想把我的時間花在感覺自己在學(xué)習(xí)上。

我從事電子學(xué)的部分原因是想從整天的閱讀和寫作中抽身而出。

這就是LLMs發(fā)揮出色的地方。它們可能不如世界上最出色的專家那樣知識淵博,但成千上萬的人可能知道我可能會提出的任何電子問題的答案。

這意味著語言模型很可能也知道答案。它樂于為我提供所有問題的答案,使我可以享受樂趣而不必糾結(jié)于細(xì)節(jié)。

雖然,我完全可以通過在互聯(lián)網(wǎng)上搜索來找到答案,但在忙碌一整天后,簡單地讓模型為我完成這些工作的便利性使我感到非常放松。

這里是一些例子,展示了我如何詢問語言模型有關(guān)電子學(xué)中事物工作原理的基本問題。

這些答案完美嗎?誰知道呢。但有一點(diǎn)是肯定的,總比我一無所知要好。

12 從尋求完整方案到獲取修改提示

很多時候,我會先向大語言模型尋求一個完整的解決方案,然后再詢問如何對其進(jìn)行修改的提示。

在下面這次交流中,我一開始讓它寫一個解析HTML的程序,之后又詢問關(guān)于API參考或其他改進(jìn)方法的提示。

還有一次,我想跟蹤我的電腦在一段時間內(nèi)的內(nèi)存和CPU使用情況。

我本可以花幾分鐘找出合適的命令,然后把它們組合成一個能實(shí)現(xiàn)我需求的腳本……但我也可以直接讓大語言模型幫我搞定。

最近我在搗鼓一些電子方面的東西。我有一個能在Arduino上運(yùn)行的C程序,但我想讓它在樹莓派Pico上以MicroPython的形式運(yùn)行。

這個轉(zhuǎn)換過程沒什么特別的,只是需要完成而已。所以我沒自己動手,而是讓大語言模型來處理。

在另一個項目中,我需要用一些復(fù)雜的機(jī)器學(xué)習(xí)模型在交互式循環(huán)中對圖像進(jìn)行分類。

我可以自己編寫代碼,但我也可以直接讓模型幫我完成。

13 解決已有解決方案的任務(wù)

幾乎所有事情都有人做過。你想做的事情幾乎沒有真正新穎的。而大語言模型非常擅長為它們見過的問題提供解決方案。

在最近的一個項目中,我需要提升一些Python代碼的性能。

于是我(1)讓大語言模型把代碼重寫成C語言,(2)讓它構(gòu)建一個能讓我從Python調(diào)用C代碼的接口。

這兩項任務(wù)都“不難”。

把Python代碼轉(zhuǎn)換成C代碼,我相信自己花一兩個小時也能完成。雖然我不太清楚Python到C的API是如何工作的,但我相信通過閱讀文檔也能弄明白。

但如果要我自己動手,我肯定不會去做這件事。

這并非項目的關(guān)鍵環(huán)節(jié),我寧愿等計算機(jī)慢慢運(yùn)行,也不想花時間去優(yōu)化那些不常運(yùn)行的代碼。

不過,對于簡單的程序來說,把Python轉(zhuǎn)換成C(大部分情況下)是一個技術(shù)流程,而且有一套標(biāo)準(zhǔn)的Python到C的調(diào)用規(guī)范。

所以,我直接讓大語言模型幫我完成。

從那以后,我就覺得這是我隨時都能讓模型幫忙做的事。

基本上,任何時候我想要一段快速運(yùn)行的代碼,我就用Python描述需求,然后讓模型生成優(yōu)化后的C代碼。

14 為新項目做準(zhǔn)備

對于一個即將開展且我可能會在這里提及的項目,我需要了解人們常用的簡易無線電發(fā)射器有哪些。

由于我真正想要的是大眾普遍認(rèn)知的答案,大語言模型就是絕佳選擇!

15 修復(fù)常見錯誤

2022年之前,當(dāng)我在使用一些流行工具或庫時遇到錯誤信息,會遵循以下流程:

1. 復(fù)制錯誤信息。

2. 粘貼到谷歌搜索框。

3. 點(diǎn)擊搜索結(jié)果中排名靠前的StackOverflow鏈接。

4. 確認(rèn)問題是否正是我想問的;若不是,回到步驟2。

5. 將排名靠前的解決方案應(yīng)用到當(dāng)前任務(wù)中。

6. 如果方案不起作用,回到步驟2,更換搜索關(guān)鍵詞,然后祈禱能找到解決辦法。

說實(shí)話,通常出問題的工具和你最終要完成的任務(wù)可能隔了好幾層關(guān)系,你其實(shí)根本不在乎它具體是怎么運(yùn)作的,只希望它能正常工作就行。

那到了2024年,這個流程變成什么樣了呢?

1.  復(fù)制錯誤信息。

2.  詢問大語言模型“如何修復(fù)這個錯誤?[錯誤信息]”。

3.  按照大語言模型給出的分步解決方案操作。

4. 如果方案不起作用,就說“這個方法沒用”。

我沒有相關(guān)的對話記錄可以給你展示這些例子(或者說,我花了一個小時也沒找到),但其實(shí)有個很好的原因:

我已經(jīng)把這個流程直接融入到我的工作流里了。

我是Emacs用戶。我對自己的工作環(huán)境進(jìn)行了設(shè)置,每當(dāng)我運(yùn)行一個程序,若它以非零狀態(tài)碼退出(意味著出現(xiàn)了問題),系統(tǒng)會自動調(diào)用當(dāng)前最快的大語言模型,讓它解釋錯誤原因,并同時請求一個可以直接應(yīng)用到代碼中修復(fù)該錯誤的補(bǔ)丁。

如今,模型在大多數(shù)情況下還不能在這個任務(wù)上超越我,但已經(jīng)很接近了。

時不時地,當(dāng)大語言模型修復(fù)了一個我知道會很難追蹤的錯誤(比如某個地方的拼寫錯誤)時,我都會感到驚喜。

16 還有無數(shù)其他用途

上面提到的所有對話,僅僅占我去年一年與大語言模型交互總量的不到2%。

我沒有展示其他對話的原因,并非是模型在這些對話中讓我失望了(雖然這樣的情況也不少),而是因?yàn)椋?/p>

(1)很多對話和我已經(jīng)展示的那些遵循相同的模式;

(2)有些對話很難解釋清楚,也不容易讓你明白它們對我有什么用。

我完全預(yù)計未來我對這些模型的使用會持續(xù)增加。

作為參考,2024年我通過網(wǎng)頁界面向大語言模型發(fā)起的查詢比2023年多了30%——我甚至都沒法統(tǒng)計通過API發(fā)起的查詢增加了多少,但我猜至少是原來的兩到三倍。

17 評估大語言模型能做什么,而非不能做什么

我在面試求職者時得到的一條最佳建議是:根據(jù)一個人能做什么來評估他們,而不是看他們不能做什么。

我猜我隨便問你幾個問題,就能讓你顯得能力不足。

舉個極端的例子:世界上有十億人會說普通話,而我連數(shù)到十都不會。

如果,有人讓我參加一場普通話小學(xué)考試,我肯定會慘敗。即使,在計算機(jī)科學(xué)領(lǐng)域內(nèi),也有很多我一無所知的領(lǐng)域。

同樣的道理,我不會因?yàn)槿祟悷o法在腦海中計算64位整數(shù)的除法(這對計算機(jī)來說是小菜一碟)就認(rèn)為人類完全無用。

我也不認(rèn)為僅僅因?yàn)槟隳芟氤鲆粋€大語言模型無法解決的任務(wù),就否定它們的價值是合理的。

顯然,做到這一點(diǎn)很容易。關(guān)鍵問題是,你能否找到它們能發(fā)揮價值的任務(wù)?

程序員們早就明白,一個東西可以因不同目的而有用。

文/樹一?

本文由人人都是產(chǎn)品經(jīng)理作者【烏鴉智能說】,微信公眾號:【烏鴉智能說】,原創(chuàng)/授權(quán) 發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)許可,禁止轉(zhuǎn)載。

題圖來自Unsplash,基于 CC0 協(xié)議。

更多精彩內(nèi)容,請關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號或下載App
評論
評論請登錄
  1. 目前還沒評論,等你發(fā)揮!