大語言模型如何指引我們走向配置和編碼的幸福之路
我們都知道傳統(tǒng)的難題:緩存失效、命名、越界錯誤。配置是新的——甚至更令人頭疼的——難題。
譯自How LLMs Guide Us to a Happy Path for Configuration and Coding,作者 Jon Udell。
我們都有不同的學(xué)習(xí)方式。不幸的是,我的學(xué)習(xí)方式是先嘗試所有錯誤的方法,最后才能找到正確的方法。這并不總是壞事。通過探索所有不順暢的路徑,你可以對一個復(fù)雜的系統(tǒng)有更深入的了解,這種學(xué)習(xí)是有價值的。但很多時候,你只想走上幸福之路,盡快到達(dá)目的地。
隨著我們的系統(tǒng)變得越來越復(fù)雜、分層和相互依賴,不順暢的路徑也隨之增多。
在所有技術(shù)領(lǐng)域中,配置是最容易出現(xiàn)不順暢路徑的領(lǐng)域。隨著我們的系統(tǒng)變得越來越復(fù)雜、分層和相互依賴,這些不順暢的路徑也隨之增多。我們都知道傳統(tǒng)的難題:緩存失效、命名、越界錯誤。我認(rèn)為配置是新的——甚至更令人頭疼的——難題。
這周,我需要擴展人類洞察力 + 大語言模型的苦力 = 創(chuàng)意出版解決方案中描述的解決方案。使用 Google Docs 來編寫和協(xié)作審查文檔,然后將其轉(zhuǎn)換為為我們的網(wǎng)站提供支持的 Markdown,已經(jīng)解決了一個大問題。但它也不可避免地帶來了一個新問題。當(dāng)我們審查這樣創(chuàng)建的大量文檔時,我們意識到我們對文件名和標(biāo)題的約定需要改變。如果在 Google Docs 中手動進(jìn)行,這將是一項痛苦的練習(xí),而且我找到的任何插件都無法處理基于正則表達(dá)式的多文檔搜索和替換。因此,除了讀取和翻譯 GDocs 的轉(zhuǎn)換器之外,我還需要一個更新器來自動執(zhí)行就地轉(zhuǎn)換。
如何快速學(xué)習(xí) Google Docs API 的必要知識來完成這項工作?
如果這些文檔只是本地系統(tǒng)上的文本文件,那么這將是微不足道的,因為大語言模型具有強大的正則表達(dá)式能力。但它們是 Google 文檔,這完全是另一回事。弄清楚如何對 Google 進(jìn)行身份驗證一直是我的一大難題。如果這是我必須定期做的事情,我會積累足夠的經(jīng)驗來克服它,而不會有太多戲劇性。但就像很多這樣的瑣事一樣,這不是我經(jīng)常做的事情。兩次遭遇之間可能會有幾個月甚至幾年的時間,所以每次遭遇都意味著要爬上一條痛苦的學(xué)習(xí)曲線。我需要創(chuàng)建什么樣的 OAuth 應(yīng)用程序?請再次提醒我關(guān)于那個同意屏幕。哦,對了,我必須弄清楚要啟用哪些 API,然后顯式地啟用它們,對吧?然后確定哪些范圍可供我的應(yīng)用程序使用?以及如何持久化身份驗證令牌?然后,請?zhí)嵝盐遥?dāng)我更改范圍時,是否需要刪除令牌并重新進(jìn)行身份驗證?哦,我的轉(zhuǎn)換器和更新器可以共享公共憑據(jù)嗎?最后,如何快速學(xué)習(xí) Google Docs API 的必要知識來完成這項工作?
你知道其他人以前也走過同樣的路。
我一直討厭以這種艱難的方式重新學(xué)習(xí)所有這些廢話必要的但令人討厭的儀式。你知道其他人以前也走過同樣的路。如果你能拍拍其中一個人的肩膀,并與他們進(jìn)行五分鐘的交談,你就可以避免這些陷阱。從歷史上看,我們獲取這些知識的最佳方式是進(jìn)行網(wǎng)絡(luò)搜索和閱讀文檔。與之前相比,這已經(jīng)很了不起:閱讀書籍、參加課程。但仍然不夠好。網(wǎng)絡(luò)搜索、文檔、書籍和課程對你在學(xué)習(xí)時所處的特定環(huán)境沒有很好的反應(yīng),如果有的話。大語言模型擴展了我們與知識淵博的人交流的機會。這是一種間接的訪問方式,它是不個人的,如果我能及時找到合適的人,我不會選擇它。但這很少可能,與大語言模型交談是一個很好的替代方案。
重構(gòu)專家關(guān)注
我們應(yīng)該花點時間思考這一點。在重塑發(fā)現(xiàn):網(wǎng)絡(luò)科學(xué)的新時代中,邁克爾·尼爾森寫道:
“在創(chuàng)造性解決問題的過程中,在正確的時間獲得正確專家的關(guān)注往往是最寶貴的資源。專家關(guān)注對于創(chuàng)造性解決問題就像沙漠中的水對于生命一樣:它是基本稀缺資源?!?/p>
本書中一個重要的故事講述了名為 InnoCentive 的組織(現(xiàn)已并入眾包問題解決平臺Wazoku Crowd)如何幫助一個非營利組織——該組織需要在印度農(nóng)村地區(qū)可靠運行的太陽能無線路由器——與 Zacary Brown 聯(lián)系,Zacary Brown 是一位軟件工程師和無線電愛好者,擁有必要的技能。尼爾森補充道:
“InnoCentive 通過重構(gòu)專家關(guān)注度來創(chuàng)造價值,使 Zacary Brown 等人能夠以高杠桿的方式運用他們的專業(yè)知識?!?/p>
我們絕對應(yīng)該期望我們的協(xié)作工具(看看你,Slack!)能夠幫助我們有效地利用專家關(guān)注度。我們?nèi)绾螏椭藗冊诮M織中與專家聯(lián)系,而不會讓這些專家充斥著不必要的、會扼殺工作流程的干擾?這是一個重要的開放性問題。正如我上次提到的,像Cody和Unblocked這樣的基于 LLM 的工具可以充當(dāng)同事的代理,從而保護(hù)他們免受干擾。但我們不要忽視以最有效、最不具破壞性的方式將人們聯(lián)系在一起的必要性。在這方面,還有很大的提升空間——或者與 Slack 競爭。
看我的屏幕
展示而不是講述的能力是一個改變游戲規(guī)則的能力。
如果我能說服一位專家指導(dǎo)我完成 Google 的身份驗證迷宮,我們就會進(jìn)行一個帶有屏幕共享的通話,這樣我就可以展示我各種失敗的嘗試。令人高興的是,現(xiàn)在使用 LLM 可以做到這一點。正如我之前多次提到的,將屏幕截圖粘貼到 ChatGPT(現(xiàn)在也包括 Claude)中是一種非常有效的方法。以下是我在轉(zhuǎn)錄中看到的一張幫助我走出迷宮的圖片。
這張圖片值千言萬語。它表明我們是在 Python 的 Google API 客戶端的上下文中操作的,并且我們已經(jīng)使用某種有效的憑據(jù)對服務(wù)進(jìn)行了身份驗證,但文檔 ID 錯誤或沒有授予必要的范圍(或應(yīng)用程序未請求),或者可能存在其他問題。用文字將這種上下文傳達(dá)給另一個人會很乏味——這就是我們進(jìn)行屏幕共享的原因。用相同的文字提示語言模型也會同樣乏味。展示而不是講述的能力是一個改變游戲規(guī)則的能力。
該轉(zhuǎn)錄中的其他屏幕截圖顯示:
- Google 文檔本身,證明我擁有正確的文檔 ID。
- Google 文檔的共享對話框,證明作為已登錄用戶,我可以查看和編輯具有該 ID 的文檔。
- 開發(fā)控制臺的同意屏幕,證明我已授予必要的范圍。
從我的屏幕上抓取一些內(nèi)容并將其粘貼到 ChatGPT 中,使所有這些基本的故障排除工作變得輕而易舉。
在這種情況下,問題出在其他地方。首先,在添加必要的范圍后,我需要刪除保存的令牌并重新進(jìn)行身份驗證。其次,我的腳本需要在其 API 請求中包含該添加的范圍。這些錯誤已經(jīng)反復(fù)出現(xiàn),我最終會自己糾正。通過利用之前走過這條路的人們的經(jīng)驗,ChatGPT 加快了我識別和擺脫我遇到的陷阱的能力。
解釋代碼
現(xiàn)在我讓 LLM 以長格式編寫正則表達(dá)式,并附上極其詳細(xì)的注釋。
從身份驗證迷宮中出來后,一切都很順利。以下是匹配模式列表并在其中替換替換項的核心函數(shù)。
這不是 Claude 生成的原始函數(shù)。在那個函數(shù)中,正則表達(dá)式看起來像調(diào)制解調(diào)器線路噪音。它們工作正常,但我沒有信心能夠理解、解釋或修改它們。因此,現(xiàn)在我讓 LLM 以長格式編寫正則表達(dá)式,并附上極其詳細(xì)的注釋。它們不會主動這樣做,但如果你堅持,它們會照辦。
趁此機會,我要求快速復(fù)習(xí)一下 Python 的 re.sub 和其中匿名(lambda)函數(shù)的使用。我不再需要掌握這些習(xí)慣用法,這使我可以專注于我要解決的問題。但這只有在我能夠快速輕松地恢復(fù)知識的情況下才是一種可行的策略,而 LLM 有力地使我能夠做到這一點。
找到其他人走過的幸福之路
在如何使用“AI”中,Nicholas Carlini 提供了我在本專欄中一直在探索的策略的詳盡列表。他寫道:
“幾乎所有事情都已經(jīng)被其他人做過。你想要做的幾乎沒有什么真正是新穎的。語言模型在提供你之前見過的解決方案方面非常出色?!?/p>
有些人認(rèn)為,通過聚合從人類經(jīng)驗中汲取的知識,大語言模型(LLM)并非如“生成式”一詞所暗示的那樣是創(chuàng)造力的來源,而是平庸的傳播者。既對又不對。確實,真正新穎的想法和方法很少,我并不期望 LLM 能產(chǎn)生它們。然而,大多數(shù)創(chuàng)造性行為都包含對已知想法和方法的新穎組合。由于 LLM 極大地提高了我們進(jìn)行這種組合的能力,因此它們是人類創(chuàng)造力的放大器,而不是威脅。