作者 | 夢依丹
受訪嘉賓 | 黃佳
出品 | CSDN(ID:CSDNnews)
大模型正在重新整理一切,軟體開發從數位化時代進入智慧化時代。 軟體工程師們 正站在歷史的轉折點上, 在大模型的催化下,編程的門檻日益降低,人人都能成為開發者,套用開發觸手可及,程式設計師們正步入一個既充滿挑戰也孕育無限可能的新紀元。
本文主人公
黃佳
是一位在軟體開發行業摸爬滾打 20 多年的大數據和 AI 專家,就在他以為能靠 SAP 就能吃一輩子飯而沾沾自喜時,一位在 IBM 當計畫經理朋友的一句話,給他開啟了新世界的大門。
黃佳 新加坡科研局首席AI研究員,前埃森哲新加坡公司資深顧問入行 20 余年,參與過政府部門、銀行、電商、能源等多領域大型計畫,積累了極為豐富的人工智慧和大數據計畫實戰經驗。近年主攻方向為 NLP 預訓練大模型套用、FinTech 套用、持續學習。
曾出版【GPT圖解 大模型是怎樣構建的】【數據分析咖哥十話】【零基礎學機器學習】【SAP 程式設計】等多本暢銷書,最近剛出版【大模型套用開發 動手做 AI Agent】一書。
從 SAP 到大模型,20 年程式設計師的轉型之路
從 SAP 轉型並全力以赴投身到 AI 大模型的研究與開發之中,他的經歷恰是眾多程式設計師與時代變遷下的縮影。 在此過程中,他撰寫了多本 AI 方面的暢銷書籍,其中【GPT圖解 大模型是怎樣構建的】更是獲得 2023 年度十大 IT 技術圖書,讀者將其評價為「即見樹木,又見森林 」。隨後,他又將底層原理知識轉化成具體的實戰套用,將在【大語言模型原理與套用開發實戰】當中揭曉。
Q:請先介紹一下自己,目前主要從事的工作,所用到的技術棧及日常關註的技術動態?
黃佳: 我在新加坡科技研究局做大模型的科研和落地套用的工作。
我之前長期從事 SAP 系統的設計、二次開發和實施,最近幾年,則是義無反顧的投入到了大語言模型的訓練、微調,以及大語言模型的套用開發工作。大語言模型的爆發只是這兩年的事情,但是在這之前的好幾年,我們研究所已經投入了大量的資源對基於 Transformer 架構的語言模型進行科研和套用,如 BERT、T5 等老一代模型,彼時科研計畫多,但套用落地計畫少。ChatGPT 系列閉源模型和 Llama3 系列開源模型問世之後,我們的企業合作、以及落地套用計畫一下子多了起來。很多企業已經開始把開源或者閉源模型的能 力嵌入到企業工作和產品的方方面面。這種從科研型計畫,到企業的落地套用,正是我們所樂見的。
因此,我所關心並套用的技術棧,目前很簡單,就是開源和閉源大語言模型的訓練、微調、量化,以及基於這些模型能力的落地套用。
Q:你最早接觸編程是什麽時候?可否分享一下你的編程之路
黃佳: 1988 年 9 歲的時候,我所在的小學作為試點學校購入了一批蘋果電腦。 有一天,我的班主任突然問我: 你會 26 個英文字母嗎?
當時我哥曾經教我一些英文,但我即不知道老師的意圖,也誤會了她的問題。我以為它問我會不會用英文數數,我說會 20 個,能從 one 數到 twenty。
老師說:啊,那也行啊。再學 6 個就夠了。(下面的話語氣很神秘,好像學校什麽地方埋藏著寶貝…… 也不能讓別的同學知道,應該是害怕被嫉妒…… ) 我想讓你加入咱們學校的電腦小組,別和別人說呢,咱們學校有幾台蘋果機。
就這樣,我陰差陽錯的進入了電腦小組。
還記得顯視器當時就做的很漂亮,白白半透明的塑膠外殼後腦,比那時候的一般黑白或彩色電視機好看,螢幕是綠綠的,透著一絲神秘感。
正是這種!!!!激起了回憶殺!!!
具體學習過程印象還是挺深的,可能對於當時 4 年級小學生來說,英文是一點點小趣味。記得老師有一天講的 Go To 語句,這個語句現在很少用到了哈哈,屬於那種已經被拋棄的一類編程範式,畢竟現代程式執行時不好隨便就Go To到別的地方。
老師在黑板上寫:今天我們學習Go To(鉤兔)語句!
哈哈哈,沒辦法,因為畢竟當時老師和同學都更習慣中文。
然後,我撇了一眼旁邊同學的筆記,看到她記錄的是:釣兔語句。哈哈哈哈,笑了一天。
學了兩年多,6 年級時候,代表學校參加了編程比賽,記得大題目就是用Basic語言寫演算法打印楊輝三角形這類的題目。因為升初中了,就離校了,也不知道得的是幾等獎,後來學弟升到同樣的初中,我問他學校說沒說我們得了幾等獎。他說,得獎了,也發獎了,就是我代表你們領的。
Q:職業生涯中是否碰到過什麽令你頭疼甚至折磨你好幾天的那種的 bug,最後又是如何解決的?
黃佳:
當了這麽多年的程式設計師,那這樣的時刻簡直不要太多了。這就是程式設計師生命的一部份不是嗎?
我曾經支持過我當時所工作的國家的公務員的 Payroll 和全國公積金系統,每天晚上進行幾百萬人的批次處理,然後把檔發給相關幾十個上百個部門(各種銀行,金融機構)。如果晚上系統 batch job fail 突然掉,淩晨三點接到領導電話馬上起來 Debug,找到方案,解決問題,如果解決不了問題,那麽也要確定下一步的計劃,比如請求客戶通知各大銀行今早推遲拉取檔 4 個鐘頭(也就是說下 4 個鐘頭必須解決問題,因為你總不能讓客戶一而再再而三的通知各大銀行推遲發錢)。有的時候,以為找到了解決方案,結果一個 change 進入了 production 系統,又搞砸了其它相關的模組。
奇怪的是,我其實並不記得這些具體的艱難跋涉和痛苦了,就好像,一個程式和計畫過去了,就湮滅在歷史的長河中,再也回憶不起來了。我認為這和我一直從事的都是具體業務的程式設計,而不大涉及系統架構的原因,因此我遇到的問題都是很具體的,解決方案也都不是通用性質的。
但是,有一點無疑,那就是:
1. 所有問題最終都是有解的;
2. 新的問題也會不斷回來的。
作為程式設計師,永遠戰戰兢兢,永遠如臨深淵,永遠如履薄冰。
Q:在你 20 多年的技術編程生涯中,你是如何保持保持對新技術的敏感度和學習熱情的?
黃佳: Stay hungry stay foolish.
我覺得人生有轉變是非常幸運的事情。其實我不是一直對新技術敏感的,有長達 15 年左右的時間,我在做同一件事情,就是 SAP 程式設計。我持續的重復自己,然後沾沾自喜,說你看一個技術棧,居然可以紅火十幾年,也許會一直紅火下去,也許我可以靠完全一樣的技術,吃一輩子的飯。就像老一輩的 COBOL 程式設計師現在仍然很吃香,不是嗎?
直到有一天,終於到了一個沒有任何挑戰,沒有任何新意,沒有任何激情的狀態。工作仍然在那裏,我已經駕輕就熟,輕車熟路。但是我不再擁有創造的意義感。
此時,一個在 IBM 當計畫經理,也在內部做過一些 Coaching 的朋友(前輩)告訴我說,「哦,如果你無聊的話,也可以學學機器學習,現在很熱門的呦,你知道嗎?吳恩達的課程聽說過嗎?我也試著學了學,前兩課講的還聽清楚的,我透過了,到第三課開始編程了,我就學不進去了。你可以試試。」
嗯嗯嗯。我可以試試。我想也是如此。我應該試一試。
於是我就開始了。—— 一扇新世界的大門從此開啟了。
大概 1-2 個月後,我拿到了吳恩達在 Coursera 上面的機器學習課程結業證書,而與此同時,我的第四本著作【零基礎學機器學習】也基本定稿了(前三本著作都是 SAP 技術)。——是的,學習和寫作的過程,對我來說通常是同一個過程,因為只有如此,我才能夠真實的記錄初學者的疑慮、煩惱、從不懂到懂的心路歷程和所有困惑。
之後,我真的愛上了 AI 這個領域,這個領域發展很快,我感覺自己從一個半退休的老家夥又重回青年人的狀態,我進入科研機構,和一群同事們學習,讀最新的論文,做計畫。AI 領域中的大量精巧演算法令我非常非常著迷 (舉個例子,比如生成式對抗網路 GAN 的左右手互博原理,ResNet 中的殘留誤差連結,再比如 CNN 的摺積核權重共享和特征提取思想、RNN 的迴圈連線思想等)真是不勝列舉 ,數不完也說不清。
總之,重拾激情吧。只有激情和改變,與時俱進,你才能夠持續的熱愛生活。
黃佳最新【大語言模型——原理與套用開發實踐】即將上線
大模型時代,哪些技能會被放大?
大模型正重塑軟體開發,測試驅動開發創始人 Kent Beck 在推特上寫道:盡管過去的職業技能中有 90% 會被淘汰,但剩下的 10% 技能將被放大 1000 倍。
Q:在 CSDN 釋出的 【2024 AI 開發者調查報告中】,90% 的開發者已使用程式碼智慧助手/生成工具,相比傳統編程,大模型時代下的開發者應該更註重哪些技能的提升?
黃佳: 這 3 方面的技能可能對程式設計師大有裨益:
對業務的深刻理解;
強大的與人溝通的能力,解決問題不重要,編碼也不那麽重要,如何讓你的領導聽懂你說什麽還是挺重要的;
架構能力和邏輯思維 —— 程式碼再容易寫,也需要人告訴 AI 要怎麽設計,設計什麽。
Q:會說話就能當程式設計師,未來只需學習自然語言就能編程?你覺得大語言模型時代,程式設計師還有必要學習程式語言嗎?或者說一些基礎演算法、數據結構這些基礎知識?
黃佳: 答案不言自明。如果你的目標是一個普通碼農,學不學都無所謂,學什麽都無所謂。如果你的目標是一個技術工匠,你就用工匠精神去學習。好比一個精通 18 般武藝的廚師炒出來的菜,和一個用微波爐加熱預制菜的服務生,對於一個只需要填飽肚皮的人來說,價值是相同的。如果我們的客戶全都是只需要填飽肚子的人。
同理:AIGC時代,我們還需不需要藝術家去一筆一筆地繪畫?
Q:2024 年被外界解讀為大模型套用落地元年,在你主攻的 NLP 預訓練大模型套用層面,你覺得當前面臨哪些挑戰和問題?
黃佳: 挑戰和問題非常多,每一個都是你我的機遇:
無法實際落地 —— 這是一個範式的改變,大家還在理解之中,這是從嚴謹的程式設計邏輯到自然語言編程的範式改變,諸多問題需要解決;
找不到落地場景 —— 需要一個發現場景的慧眼;
安全性和幻覺 —— 隨著大語言模型能力越來越強,以及RAG的上下文變長,模型有所參照,相信這個問題會逐漸有答案;
算力需求大 —— 莫耳定律會化解。
Q:ChatGPT 和 Llama3 各自所代表的閉源和開源模型已落地到千行百業的套用中,這裏想插個技術圈一直伴隨的爭議,就是開源大模型和閉源大模型,你如何看待兩者之間的爭論,未來是大模型開源稱霸一方還是閉源遙遙領先?
黃佳:
我是這樣看待的,二者是會永遠共存並且可以互相印證,彼此促進的。這就像歷史上的 Unix vs Linux,MS Office vs WPS,並不會是誰吃掉誰,而是相互激發著、刺激著彼此的成長。
更具體一些說:
開源模型,如 Llama3,提供了透明度和可存取性,使研究者和開發者能夠自由地修改、改進和適應這些模型以滿足特定的需求。開源策略促進了創新的速度和廣度,因為它允許全球的貢獻者共同解決問題和分享解決方案。這種模式可以加速技術發展和套用的普及,特別是在學術界和初創企業中。
閉源模型,如ChatGPT,通常由商業公司開發,可能在資源、專有數據集和商業驅動的創新方面具有優勢。閉源策略有助於保護智慧財產權和商業秘密,可能導致在特定領域或套用中具有更精細調優的效能。
關於未來哪種模式將占據主導地位,這很難一概而論。可能的情況是開源和閉源模型將繼續並存,各自在不同的環境和用途中發揮優勢。開源模型可能會在學術研究和開放創新領域繼續擴大影響力,而閉源模型可能會在需要高度專業化和商業化的套用場景中占據主導地位。具體選擇哪種模型,可能會根據業務需求、成本效益和技術支持等多種因素綜合考慮。
另外,隨著 AI 領域的快速發展和法規政策的逐步完善,未來可能會出現新的模式或者對現有模式的調整。例如,可能會有更多的合作模式出現,結合開源的創新能力和閉源的資源優勢,來共同推動大模型技術的發展。
這種趨勢可能會導致更多的跨界合作和技術共享,從而推動整個行業的進步。——作為科研人員,以及套用開發人員,這種競爭和合作都是我所樂見的。因為OpenAI 和 GPT一家獨大的情況,對每個人來說肯定也不是好訊息。
目前,我已經欣喜的看到,在商用閉源模型領域,Claude3 Opus模型已經在很多方面超越了GPT-4,當然GPT-5也隨時會再度出場趕超。而開源模型領域,優秀的模型如Lllama3, Mistral系列模型,以及Phi-3系列模型,都在積極的靠近GPT-4。我們抱著非常積極的心態期待未來創新的不斷湧現。
Q:大模型智慧體(Agent)技術也非常火爆,可否給我們分享一些案例,在你的課程中,是否會有這方面的內容分享?
黃佳: 好的,恰好這一段,我正在聚焦於Agent的研究工作。Agent其實就是由大模型驅動的、會自主決策的自動化應用程式。
學 Agent,最重要的是兩點:一是學習先進的 Agent 認知框架(比如 CoT、ReAct 、 Self-Ask、Plan-n-Execute);二是學習整合了先進 Agent 認知框架的開發平台(比如 LangChain、LlamaIndex,以及 OpenAI Assistants)。
從先進的 Agent 認知框架來說,吳恩達老師最近總結了 4 大範式。
這四種基本的思維框架設計模式分別是:
反思(Reflection):Agent 透過互動學習和反思來最佳化決策。
工具使用(Tool use):Agent 在這個模式下能呼叫多種工具來完成任務。
規劃(Planning):在規劃模式中,Agent 需要規劃出一系列行動步驟來達到目標。
多 Agent 協作(Multiagent collaboration):涉及多個 Agent 之間的協作。剛才說的.. ..都是這種認知模式下的產物。
那麽在課程中,我剖析得更為具體,分為:
CoT(Chain of Thought) 透過引入連貫的思考過程來引導模型進行更深入的邏輯推理,極大地提高了模型處理復雜問題的能力;
Self-Ask - 允許模型自我生成問題,進行自查詢來獲取更多資訊,然後再結合這些資訊生成最終答案;
Reflection - 增加了自我反思和自我改進的能力,不僅僅是在解決單一問題時進行思考,而是利用長期和短期記憶來最佳化整體的決策過程;
Function Callings/Tool Calls - 工具呼叫機制就如虎添翼 賦予了大模型更多的環境互動和掌控環境的能力;
ReAct框架是推理和行動的整合,Reasoning and Acting, ReAct框架的核心思想在於 在思考,觀察和行動 反復迴圈,叠代,不斷最佳化解決方案,知道問題最終解決位置,這就不僅使Agent能夠進行復雜的內部推理,還能即時反應並調整其行為以適應不斷變化的環境和需求。這進一步增強了模型的互動能力和套用範圍,代表了在Agent認知框架開發中的一個新的裏程碑;
Plan-and-Solve – 先做計劃,在執行任務,步步為營,這樣就更能夠增加任務的完成度。
這些推理框架,我們並不只是理論上面去講解,而是全部有程式碼實作,透過實戰案例來學習如何設定Agent 的思維框架。
下一步,就是 Agent 套用開發框架,或者說工具的實戰。
每一個框架,我們也會配備具體業務案例進行實戰演練。
Q:你覺得學習大模型智慧體(Agent)技術需要具備哪些編程基礎?
黃佳: 1. 只需要簡單的編程基礎
2. 清晰的邏輯思維
3. 對大語言模型原理的深入理解 (最好手撕幾次Transformer架構)
4. 大語言模型的開發框架/API
大模型時代,程式設計師大可不必焦慮
Q:AI 技術正以日為單位飛速進展,每一天都見證著技術的躍進與創新的火花。語言模型領域 Claude 3、GPT-4、Gemini 1.5 爭先樹立了新的評測標桿,而開源模型界也不甘落後,Llama 3、Grok-1.5 以及 Mixtral 等計畫的活躍發展,在這個競爭激烈的大模型時代,程式設計師如何擺脫技術變革所帶來的焦慮或者不安心理?
黃佳: 只有跳進來學這一條路,而且,AI 技術對於套用開發人員來說不難,開發人員做提示工程設計、做大模型開發是降維打擊。但是需要知道學什麽,知道怎麽學。因為這個技術棧內容很雜,很容易鉆到一個兔子洞裏面去出不來,但是學的東西又不實用。我的建議是先總覽全域,再找到自己喜歡的點深入鉆研。
最後:不必焦慮,也不必覺得自己年齡大(反正你年齡應該是沒我大),因為不僅僅你是新手,所有人都是新手。奧爾特曼第一次看到 GPT-4 也是和你我一樣震驚,他也是新手,每一個人,包括 GPT-4 的建立者,都是和我們一樣,從 0 理解 GPT。現在 GPT 已經在那裏了,等著我們去從 0 開始思考,怎麽有創造力的去使用它。
Q:對比市面上的其它大語言模型課程,你是否可以談談這門課的亮點是什麽?
黃佳: 我從這幾點談談這門課:
實用性,我強調程式碼實戰。親手編碼較多,每天都在嘗試用大模型編碼,做實際計畫;
覆蓋面廣,從大模型原理、套用、到開發實戰、到微調量化,總攬全域,厘清脈絡,各種開發框架之間的關聯和比較;
適合初學者。我的風格是從0到1,循序漸進,初學者通常會覺得非常舒服;
集體學習,加入群,一起進步,這個學習氛圍會讓你很有收獲。
Q:在擔任技術教練的過程中,有哪些讓您難忘的學員或案例?
黃佳:我目前的經驗集中在做計畫,和寫作書籍、專欄課程上。我的作品讓我擁有了一大堆支持者,他們的鼓勵讓我不斷前進。
這是其中部份讀者和粉絲對我課程和作品的鼓勵與評價:
我喜歡讀者「終於擺脫碎片化,完成了拼圖」這樣的贊嘆;
很喜歡讀者的一句話:見樹木,又見森林。希望我們的課程能夠給學習者帶來全域觀。
收到的肯定實在是太多太多了,這些激勵著我盡力而為,做好自己作為一個知識傳播者的本分。
有關【大語言模型——原理與套用開發實戰】的課程大綱及更詳細內容, 歡迎大家掃描課程小助理微信 領取。