前言
自2023 年年初ChatGPT 問世以來,以生成式模型為代表的人工智慧(AI)行業受到了極大關注。截至2024 年年底,AI 行業發展迅猛,日新月異。全球針對AI 行業的投資也遠超其他行業,可以說AI 技術是近幾年人類社會最為關注的領域。與其他行業的變革不同,AI 的發展並不侷限於本行業,而是逐漸滲透到全球各個行業,慢慢地成為國力競爭的重要因素。如此規模,與其稱AI 為一個行業風口,筆者更想大膽判斷為五次工業革命。
生成式AI 應用從廣義上來說包括三個方向:使用AI 應用、基底模型訓練以及生成式AI 應用程式開發。其中,基底模型訓練儲備了生成式AI 應用底層使用的模型,例如ChatGPT 底層的GPT 系列模型;而生成式AI 應用程式開發則是使用基底模型,透過一定的開發方式和機制將模型能力融合到應用中,並最大可能地發揮基底模型的能力。
目前市面上與AI 相關的圖書大部分介紹的是使用AI 應用,例如怎麼使用ChatGPT 寫文章,如何組織Prompt 等,少部分圖書則涉及基底模型訓練。前者內容較為淺顯,容易被替代且不具備時效性,而後者有較高的門檻,更適合專業演算法從業人員閱讀。對於承上啟下,既相容前兩者的內容,又詳細介紹各式生成式AI 應用程式開發的圖書,市面上仍然比較欠缺。本書希望可以補全這部分資料的不足,幫助更多想從事AI 行業的人入門。
這裡簡單介紹一下本書的寫作背景。筆者算是最早一批探索生成式AI 應用程式開發並實作取得成果的程式設計人員,目前在字節跳動的抖音業務線任職前端工程師。那麼,筆者是如何接觸到生成式AI 應用的呢?
2022 年11 月,出於個人興趣以及對程式品質的追求,筆者在網站上撰寫了一本關於單元測試的電子書《前端單元測試精講》,之後開始嘗試為團隊實作單元測試。實現過程中遇到了不少瓶頸,主要在於程式設計師撰寫程式測試的時間成本較高,在排期緊張且頻繁迭代的情況下實作困難。
隨後,筆者開始嘗試使用一些自動化手段來生成單元測試,比如程式靜態分析、注入監聽插槽等方法,以減輕程式設計師手動撰寫單元測試的負擔,但效果一直不盡如人意。因為單元測試程式雖然有規律可循,但面對的場景許多,複雜度較高。
這個問題困擾了筆者很久,直到2023 年3 月,ChatGPT 的從天而降讓筆者迸發了新的靈感。經過嘗試後發現,雖然ChatGPT 生成的內容尚有瑕疵且不夠穩定,但作為單元測試生成的初稿效果非常好,幾乎達到開箱即用的程度。
2023 年4 月,筆者基於GPT 模型實現了自動化生成單元測試的外掛程式,並在公司內實作。這個外掛程式服務了抖音安全、春節服務、TikTok 等不同業務線的幾十個團隊,生成了10 多萬單元測試程式,使研發效率提升了近60%。在這次成功案例後,筆者還開發了AI CR、AI 程式防衰退等提效的外掛程式,在部門內都獲得了不錯的反響。
在整個過程中,筆者總結了不少最前線的生成式AI 應用程式開發經驗,並在社區發表了相關文章。2023 年年初,分享生成式AI 應用程式開發經驗的文章還非常少,因此一經發表便連續幾周都排在熱搜榜上,並獲取了10 多萬的閱讀量。
這時,清華大學出版社的編輯找到了我,希望我能將這些經驗撰寫成書。本人喜歡分享技術,也希望能夠將近兩年的生成式AI 應用程式開發經驗系統地沉澱下來,幫助更多的人,加上之前有寫作電子書的經驗,於是答應了下來。從2023 年11 月份至今,筆者利用每個週末和碎片化的時間,將與生成式AI 應用相關的知識都寫了下來。這便是本書的創作背景,撰寫本書對筆者而言也是一段獨特且充滿挑戰的經歷。
坦誠地說,社區裡除了對AI 應用的肯定外,也有不少對AI 發展的質疑聲,認為生成式AI 應用可能只是曇花一現。畢竟,儘管現在模型的能力令人吃驚,但並不能完全代替人類。筆者個人判斷,從長遠來看,儘管AI 模型自身目前還無法完全替代人類,但AI 無疑將成為未來發展趨勢的重要方向。這一點從行業內的變化和全球投資趨勢中均可得到印證。生成式AI 應用的基建需要長時間的建設和投入,對於個人和團隊而言都是不錯的機會。就像蒸汽時代、電氣時代和資訊時代初期一樣,當時也存在很多質疑聲,認為它們可能是曇花一現。我們仍需給AI 時代的到來給予更多的時間,也給未來多一點信心。
當然,個人判斷並不僅是口頭說說,筆者也將於2024 年9 月從抖音業務線主動轉崗到字節跳動AI IDE 架構業務線,以身入局。正如上面所說,給AI 時代的到來更多的時間,也給未來和自己多一點信心。本書不僅是讀者進入AI 應用領域的起點和入局權杖,對於筆者而言也是新的開始和挑戰,很榮幸能與各位讀者一同前行,做一些有挑戰的事情。
如果有問題,請用電子郵件聯繫booksaga@126.com,郵件主題為「生成式AI 應用程式開發:基於OpenAI API 實現」。
本書得以順利完成,離不開我的妻子春燕的支持。在筆者迷茫和疲憊的時候,她總能耐心傾聽並給予安慰。今年,她還生下了一個可愛的男孩,但由於筆者工作繁忙,即使在業餘時間也需趕稿,因此她幾乎承擔了家中所有的家務和照顧孩子的重任,付出良多。筆者深感幸運,能有這樣一位溫和、寬容的伴侶。
同時,感謝清華大學出版社的編輯,讓筆者有機會將這幾年的沉澱和所學系統地分享給讀者。在寫稿過程中,編輯提出了大量專業建議,讓本書能夠以更好的一面呈現出來。
最後,還要感謝為本書撰寫序言的死月、張添富、章小川、陳陽、魏富強和夏柏陽老師們,感謝他們能在繁忙的工作之餘抽出寶貴時間讀完筆者的拙作,撰寫專業、中肯的點評。
儘管本書融入了筆者的所有努力,但由於水準有限,難免有疏漏之處,歡迎讀者批評指正。
總有人間一兩風,填我十萬八千夢。
陳禎民