天天看點

程式設計 20 載,這位新加坡程式員靠 GPT 圖解大模型火了

作者:CSDN
程式設計 20 載,這位新加坡程式員靠 GPT 圖解大模型火了

作者 | 夢依丹 受訪嘉賓 | 黃佳

出品 | CSDN(ID:CSDNnews)

大模型正在重新整理一切,軟體開發從數字化時代進入智能化時代。軟體工程師們正站在曆史的轉折點上,在大模型的催化下,程式設計的門檻日益降低,人人都能成為開發者,應用開發觸手可及,程式員們正步入一個既充滿挑戰也孕育無限可能的新紀元。

本文主人公黃佳是一位在軟體開發行業摸爬滾打 20 多年的大資料和 AI 專家,就在他以為能靠 SAP 就能吃一輩子飯而沾沾自喜時,一位在 IBM 當項目經理朋友的一句話,給他打開了新世界的大門。

程式設計 20 載,這位新加坡程式員靠 GPT 圖解大模型火了

黃佳 新加坡科研局首席AI研究員,前埃森哲新加坡公司資深顧問入行 20 餘年,參與過政府部門、銀行、電商、能源等多領域大型項目,積累了極為豐富的人工智能和大資料項目實戰經驗。近年主攻方向為 NLP 預訓練大模型應用、FinTech 應用、持續學習。

曾出版《GPT圖解 大模型是怎樣建構的》《資料分析咖哥十話》《零基礎學機器學習》《SAP 程式設計》等多本暢銷書,最近剛出版《大模型應用開發 動手做 AI Agent》一書。

程式設計 20 載,這位新加坡程式員靠 GPT 圖解大模型火了

從 SAP 到大模型,20 年程式員的轉型之路

從 SAP 轉型并全力以赴投身到 AI 大模型的研究與開發之中,他的經曆恰是衆多程式員與時代變遷下的縮影。在此過程中,他撰寫了多本 AI 方面的暢銷書籍,其中《GPT圖解 大模型是怎樣建構的》更是獲得 2023 年度十大 IT 技術圖書,讀者将其評價為「即見樹木,又見森林 」。随後,他又将底層原理知識轉化成具體的實戰應用,将在《大語言模型原理與應用開發實戰》當中揭曉。Q:請先介紹一下自己,目前主要從事的工作,所用到的技術棧及日常關注的技術動态?黃佳:我在新加坡科技研究局做大模型的科研和落地應用的工作。我之前長期從事 SAP 系統的設計、二次開發和實施,最近幾年,則是義無反顧的投入到了大語言模型的訓練、微調,以及大語言模型的應用開發工作。大語言模型的爆發隻是這兩年的事情,但是在這之前的好幾年,我們研究所已經投入了大量的資源對基于 Transformer 架構的語言模型進行科研和應用,如 BERT、T5 等老一代模型,彼時科研項目多,但應用落地項目少。ChatGPT 系列閉源模型和 Llama3 系列開源模型問世之後,我們的企業合作、以及落地應用項目一下子多了起來。很多企業已經開始把開源或者閉源模型的能力嵌入到企業工作和産品的方方面面。這種從科研型項目,到企業的落地應用,正是我們所樂見的。

是以,我所關心并應用的技術棧,目前很簡單,就是開源和閉源大語言模型的訓練、微調、量化,以及基于這些模型能力的落地應用。

Q:你最早接觸程式設計是什麼時候?可否分享一下你的程式設計之路

黃佳:1988 年 9 歲的時候,我所在的國小作為試點學校購入了一批蘋果電腦。有一天,我的班主任突然問我:你會 26 個英文字母嗎?當時我哥曾經教我一些英文,但我即不知道老師的意圖,也誤會了她的問題。我以為它問我會不會用英文數數,我說會 20 個,能從 one 數到 twenty。老師說:啊,那也行啊。再學 6 個就夠了。(下面的話語氣很神秘,好像學校什麼地方埋藏着寶貝…… 也不能讓别的同學知道,應該是害怕被嫉妒…… ) 我想讓你加入咱們學校的計算機小組,别和别人說呢,咱們學校有幾台蘋果機。就這樣,我陰差陽錯的進入了計算機小組。還記得顯示器當時就做的很漂亮,白白半透明的塑膠外殼後腦,比那時候的一般黑白或彩色電視機好看,螢幕是綠綠的,透着一絲神秘感。

程式設計 20 載,這位新加坡程式員靠 GPT 圖解大模型火了

正是這種!!!!激起了回憶殺!!!具體學習過程印象還是挺深的,可能對于當時 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 的循環連接配接思想等)真是不勝枚舉 ,數不完也說不清。總之,重拾激情吧。隻有激情和改變,與時俱進,你才能夠持續的熱愛生活。

黃佳最新《大語言模型——原理與應用開發實踐》即将上線

程式設計 20 載,這位新加坡程式員靠 GPT 圖解大模型火了

大模型時代,哪些技能會被放大?大模型正重塑軟體開發,測試驅動開發創始人 Kent Beck 在推特上寫道:盡管過去的職業技能中有 90% 會被淘汰,但剩下的 10% 技能将被放大 1000 倍。Q:在 CSDN 釋出的 《2024 AI 開發者調查報告中》,90% 的開發者已使用代碼智能助手/生成工具,相比傳統程式設計,大模型時代下的開發者應該更注重哪些技能的提升?黃佳:這 3 方面的技能可能對程式員大有裨益:

  • 對業務的深刻了解;
  • 強大的與人溝通的能力,解決問題不重要,編碼也不那麼重要,如何讓你的上司聽懂你說什麼還是挺重要的;
  • 架構能力和邏輯思維 —— 代碼再容易寫,也需要人告訴 AI 要怎麼設計,設計什麼。

Q:會說話就能當程式員,未來隻需學習自然語言就能程式設計?你覺得大語言模型時代,程式員還有必要學習程式設計語言嗎?或者說一些基礎算法、資料結構這些基礎知識?黃佳:答案不言自明。如果你的目标是一個普通碼農,學不學都無所謂,學什麼都無所謂。如果你的目标是一個技術工匠,你就用工匠精神去學習。好比一個精通 18 般武藝的廚師炒出來的菜,和一個用微波爐加熱預制菜的服務生,對于一個隻需要填飽肚皮的人來說,價值是相同的。如果我們的客戶全都是隻需要填飽肚子的人。同理:AIGC時代,我們還需不需要藝術家去一筆一筆地繪畫?

Q:2024 年被外界解讀為大模型應用落地元年,在你主攻的 NLP 預訓練大模型應用層面,你覺得目前面臨哪些挑戰和問題?黃佳:挑戰和問題非常多,每一個都是你我的機遇:

  1. 無法實際落地 —— 這是一個範式的改變,大家還在了解之中,這是從嚴謹的程式設計邏輯到自然語言程式設計的範式改變,諸多問題需要解決;
  2. 找不到落地場景 —— 需要一個發現場景的慧眼;
  3. 安全性和幻覺 —— 随着大語言模型能力越來越強,以及RAG的上下文變長,模型有所參照,相信這個問題會逐漸有答案;
  4. 算力需求大 —— 摩爾定律會化解。

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 大範式。

程式設計 20 載,這位新加坡程式員靠 GPT 圖解大模型火了

這四種基本的思維架構設計模式分别是:

  • 反思(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 應用開發架構,或者說工具的實戰。

程式設計 20 載,這位新加坡程式員靠 GPT 圖解大模型火了

每一個架構,我們也會配備具體業務案例進行實戰演練。

Q:你覺得學習大模型智能體(Agent)技術需要具備哪些程式設計基礎?黃佳:1. 隻需要簡單的程式設計基礎2. 清晰的邏輯思維3. 對大語言模型原理的深入了解 (最好手撕幾次Transformer架構)4. 大語言模型的開發架構/API

程式設計 20 載,這位新加坡程式員靠 GPT 圖解大模型火了

大模型時代,程式員大可不必焦慮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:在擔任技術教練的過程中,有哪些讓您難忘的學員或案例?黃佳:我目前的經驗集中在做項目,和寫作書籍、專欄課程上。我的作品讓我擁有了一大堆支援者,他們的鼓勵讓我不斷前進。

這是其中部分讀者和粉絲對我課程和作品的鼓勵與評價:

  • 我喜歡讀者“終于擺脫碎片化,完成了拼圖”這樣的贊歎;
  • 很喜歡讀者的一句話:見樹木,又見森林。希望我們的課程能夠給學習者帶來全局觀。

收到的肯定實在是太多太多了,這些激勵着我盡力而為,做好自己作為一個知識傳播者的本分。

有關《大語言模型——原理與應用開發實戰》的課程大綱及更詳細内容,歡迎大家掃描課程小助理微信領取。

繼續閱讀