本文是人機協作搭配 LLM 產出
Andrej Karpathy 是人工智慧領域的權威人士,曾擔任 Tesla 人工智慧總監,現效力於 OpenAI。在他最新發布的 YouTube 講座 「How I use LLMs」 中,他深入淺出地講解了大型語言模型(LLM)的運作原理,並示範如何在日常工作中充分利用這些模型以提高生產力和創造力。本報告將全面整理該影片的核心技術概念、重點論點與細節,並結合日常生活和工作場景提供具體應用案例。同時,我們也參考相關社群觀點,諸如一位獸醫教授在 Facebook 上分享的AI 生產力工具心得,進行補充與比較,以提供更全面的視角。
https://youtu.be/EWvNQjAaOHw?si=7-U-avXXjFy7uf87
首先,Karpathy 強調理解大型語言模型需從其核心架構入手:LLM 本質上由兩部分組成,即「參數檔案」和「執行程式碼」。所謂參數檔案,是模型訓練完成後所得的權重集。例如 Llama 2-70B 模型包含了約700億個參數,存儲在一個約140GB大小的二進制檔案中。而執行程式碼則是一段用於載入這些參數並執行模型推理的程式,可以用 C、Python 等語言編寫。在使用時,程式碼讀入參數檔案,然後根據輸入的提示(prompt)計算出對應的模型輸出。Karpathy 解釋說,儘管模型的訓練過程極為複雜且資源密集,但一旦訓練完成,部署與使用反而相對簡單——只需一份參數檔和推理程式,即可在單機上執行推理。為了讓觀眾理解 LLM 的規模,Karpathy 舉了 Llama 2-70B 的例子:訓練這樣一個模型需要處理約10TB的文本資料(主要來自網際網路的大規模抓取),約6000張 GPU 持續運算12天,耗資約200萬美元。他形象地將這個訓練過程比喻為對整個網際網路文本進行有損壓縮——也就是把海量文本知識濃縮進模型的參數檔中。最終得到的140GB權重檔案,儼然就是互聯網知識的壓縮包。這一比喻有助於理解:LLM 所掌握的知識其實來源於訓練語料的統計規律,因此模型並非具備「理解」或「常識推理」能力,而更像是透過參數記憶了大量語言模式,根據提示預測下一個最可能的字詞。換言之,LLM本質上是一個根據經驗數據做預測的機器。這也解釋了為何 LLM 有時會產生幻覺(hallucination)——當問題超出其訓練經驗範圍或需要嚴謹邏輯推理時,模型可能給出看似合理但實則虛假的答案。Karpathy 提醒,用戶在使用模型時務必瞭解其局限,對生成結果保持審慎態度。
在正式應用 LLM 前,了解所使用模型的種類和計價機制也很重要。Karpathy 指出,不同 LLM 在規模、能力和成本上差異巨大。例如,OpenAI 提供的 ChatGPT 平台中,免費用戶使用的是基於GPT-3.5的模型,反應速度快但生成品質和推理能力不及更新的 GPT-4;而付費的 Plus 用戶則可以使用功能更強大的 GPT-4,每次對話都能獲得更高品質的回答,但也受到每月訂閱費和調用次數限制的約束。除了 OpenAI 的模型,市場上還有其他公司與團隊提供的 LLM 服務:Anthropic 公司的 Claude(具備最長可達10萬字上下文的特長)、Google 即將推出的 Gemini 模型、Elon Musk 創立的 xAI 提供的 Grok,以及整合搜尋與對話的 Perplexity 等。使用者應該瞭解各平台的優勢與限制,選擇最適合任務需求的模型。例如,若需要處理超長文檔,可考慮 Claude 這類上下文窗口大的模型;如需最新網路資訊,可考慮內建檢索的工具(如必應聊天或 Perplexity)。同時也要留意計費方式:有些服務按字數(token)收費,有些是訂閱制。在實務中,掌握模型的定價層級能幫助我們平衡成本與效果。
案例:一位內容行銷專員可能在撰寫報告時,同時使用兩種模型:用較便宜的模型(如GPT-3.5)生成初稿,再用高階模型(如GPT-4)潤色關鍵段落。這樣既控制開銷又確保品質。此外,對於只需要簡單問答的場合,可使用開源的本地模型以節省API費用;但遇到需要創意寫作或專業知識的任務,則切換到大廠的模型以提高成功率。總之,知己知彼——瞭解模型能力與成本——是高效使用 LLM 的第一步。
LLM 的強大功能只有在正確引導下才能充分發揮。Karpathy 花了一部分時間講解 ChatGPT 的交互機制,以及如何通過良好的提示(prompt)設計,引導模型產生所需結果。他說明,當我們在 ChatGPT 提交一個問題時,模型背後實際會將多種資訊組合送入神經網路,例如系統預設指令(如「你是ChatGPT,一個大型語言模型…」)、使用者提示,以及模型自己的先前回覆等。了解這種提示-回應迴圈的工作原理,有助於我們調整對話策略。一個關鍵技巧是運用思維鏈(Chain-of-Thought)或稱逐步推理的提示方式。Karpathy 建議,在面對複雜問題時,不妨請求模型一步一步地思考,而非直接給出最終答案。例如,可在提示中加入「讓我們先一步步推理,再給出結論」之類的引導語句。這種方法能促使模型在內部展開多步推理過程,往往得到更合乎邏輯的回應。類似地,有時先讓模型列出解題思路(思維模型)再選擇答案,也是一種有效策略。Karpathy 將這類不同的交互模式稱為**「思維模型」**,提醒使用者根據任務性質選擇合適的提示策略:簡單任務直接詢問即可,複雜任務則可以要求模型列出步驟、比較選項,甚至進行自我反思。在日常應用中,這種思維鏈技巧幫助許多人提高了 LLM 回答的可靠性。
案例:假設我們在做財務規劃,需要 ChatGPT 協助分析一個複雜的投資組合。與其直接問「我該怎麼投資?」,我們可以這樣提示:「讓我們一步步來。首先分析每項投資的風險和收益,其次比較它們的期限,最後給出最適合我的組合建議。」這樣模型會先列出各投資選項的細節與利弊,模擬出一個思考過程,再綜合這些步驟給出更經過推敲的建議。實踐證明,精心設計提示語,引導模型按邏輯順序思考,往往能得到更令人滿意的結果。
接下來,Karpathy 分享了他如何在日常工作中融入 LLM,以提高開發、生產力和創作效率。他提到了幾個主要的應用場景:編程助手、寫作工具和研究輔助。下面我們分別說明這些場景下的具體用法,並穿插來自其他專業領域的實例,展示 LLM 在不同工作環境中的價值。
在軟體開發方面,LLM 可扮演強大的編程助手角色。Karpathy 提到,他常利用 LLM 來生成程式碼片段、尋找潛在的bug,甚至一次性撰寫完整函式或模組。具體而言,當遇到實現某個算法的需求時,可以先用自然語言向模型描述這個算法要做什麼,模型會產生對應的程式碼框架。開發者再進行測試並讓模型協助修正錯誤、優化性能。這種互動式編程讓開發流程更為順暢。例如 Karpathy 在影片中演示了使用一款名為Cursor的AI輔助編輯器(帶有 “Composer” 功能)來撰寫代碼。他只需提出功能需求,LLM 即可產生對應的程式碼,同時在編輯器中即時執行、檢查輸出結果,形成快速迭代。
這種 AI 編程助手的應用已在業界廣泛展開。以 GitHub 推出的 Copilot 為代表的工具,能在工程師寫程式時即時給出程式碼自動補全建議,大幅減輕重複性工作負擔。一些開發者表示,在日常編碼中,約有一半以上的程式碼可以透過這類工具產生,自己只需負責審核和整合。值得注意的是,LLM 產生的程式碼品質取決於訓練語料,偶爾也會引入漏洞或不最佳的實現。因此 Karpathy 強調了人機協作的重要性:讓模型先給出初稿,由人來把關最後品質。
案例:想像一名資料科學家在編寫數據清洗腳本。她可以對 ChatGPT 說:「請幫我寫一個Python函式,讀取CSV檔並清洗資料:去除缺失值、把日期欄位轉換成時間戳,最後輸出整理好的DataFrame。」數秒內,模型會提供一段Python程式碼。接著她可以將這段代碼貼入開發環境測試,若出現錯誤,再將錯誤訊息回饋給 ChatGPT 請求修正。如此反覆幾個回合,一個原本需耗時半天手工撰寫的腳本,可能在幾分鐘內就調試完成。這正是LLM編程助手提高效率的典型場景。