生成式 AI 寫程式入門:原理解析與實作指南
引言:AI 是怎麼「學會」寫程式的?
「AI 又不是人,怎麼可能會寫程式?」
這是很多人的疑問。其實 AI 不是真的「懂」程式,而是透過大量學習,找出「什麼樣的程式碼最可能是正確答案」。
這篇文章用白話文解釋生成式 AI 寫程式的原理,讓你不只會用,還能理解背後的運作方式。

一、什麼是生成式 AI?
1.1 生成式 AI 的定義
生成式 AI(Generative AI)= 可以「創造」新內容的人工智慧。
傳統 AI 只能「分類」或「判斷」,例如:
- 這張照片是貓還是狗?(分類)
- 這封郵件是垃圾信嗎?(判斷)
生成式 AI 可以「創造」,例如:
- 寫一篇文章
- 畫一張圖
- 生成程式碼
1.2 生成式 AI vs 傳統 AI
| 項目 | 傳統 AI | 生成式 AI |
|---|---|---|
| 主要功能 | 分類、預測、判斷 | 創造新內容 |
| 輸出 | 標籤、數字、選項 | 文字、圖片、程式碼 |
| 舉例 | 垃圾郵件過濾 | ChatGPT、Midjourney |
| 技術基礎 | 機器學習、規則系統 | 大型語言模型(LLM) |
1.3 為什麼生成式 AI 能寫程式?
關鍵:程式碼也是一種「語言」。
生成式 AI 的核心是「大型語言模型」(LLM),它透過學習大量文字,學會了「語言的規律」。
而程式碼(Python、JavaScript 等)本質上也是一種有規則的語言。所以 LLM 也能學會。
二、生成式 AI 如何「學會」寫程式?
2.1 訓練過程簡介
AI 學寫程式的過程:
- 收集資料:從網路上收集數十億行程式碼(GitHub、Stack Overflow 等)
- 預處理:清理資料,把程式碼切成小塊(Token)
- 訓練模型:讓 AI 學習「看到這些 Token,下一個最可能是什麼」
- 微調:用人類回饋調整,讓輸出更好
2.2 AI 學到了什麼?
AI 並不真的「理解」程式碼的意義,它學到的是:
- 程式碼的「模式」(哪些寫法常常一起出現)
- 程式碼的「結構」(函式、迴圈、條件判斷的寫法)
- 程式碼的「慣例」(命名習慣、縮排規則)
舉例:
當你輸入「def calculate_」,AI 會預測接下來可能是:
- total
- area
- average
因為它從訓練資料中看過無數類似的模式。
2.3 Token 是什麼?
Token = AI 處理文字的最小單位。
AI 不是一個字一個字看,而是切成「Token」處理。
舉例:
"Hello World" → ["Hello", " ", "World"]
"def function():" → ["def", " function", "(", "):", ]
為什麼這很重要?
因為 AI 的能力受限於它能處理的 Token 數量。Token 越多,上下文越長,但成本也越高。
三、從 Prompt 到程式碼:背後的運作原理
3.1 運作流程
當你輸入 Prompt 後,AI 做了什麼?
Step 1:接收 Prompt
↓
Step 2:把 Prompt 轉成 Token
↓
Step 3:模型計算「下一個 Token 最可能是什麼」
↓
Step 4:重複 Step 3,一個一個生成 Token
↓
Step 5:組合成完整的程式碼輸出
3.2 為什麼 Prompt 很重要?
AI 是「機率」驅動的。
你的 Prompt 決定了 AI「往哪個方向」生成。
範例:
| Prompt | AI 可能的方向 |
|---|---|
| 「寫一個函式」 | 可能寫出任何函式 |
| 「用 Python 寫一個計算面積的函式」 | 會往計算面積的方向走 |
| 「用 Python 寫一個計算圓形面積的函式,輸入半徑」 | 方向更明確 |
Prompt 越具體,AI 越不會亂猜。
3.3 為什麼 AI 有時會「幻覺」?
幻覺(Hallucination)= AI 編造不存在的東西。
原因:
AI 是「預測下一個 Token」,不是「查詢正確答案」。如果訓練資料沒有涵蓋,或是模式太相似,AI 可能會:
- 編造不存在的函式名稱
- 生成過時的 API 用法
- 混淆不同程式語言的語法
解決方法:
- 多檢查 AI 的輸出
- 用更具體的 Prompt
- 實際執行測試
如果 AI 生成的程式碼有問題,可以聯繫我們讓工程師直接幫你處理。

四、主流生成式 AI 模型比較
4.1 目前主流模型
| 模型 | 開發者 | 特色 |
|---|---|---|
| GPT-4 | OpenAI | 最多人用、功能全面 |
| Claude 3.5 | Anthropic | 長文本強、解釋詳細 |
| Gemini | 多模態、整合 Google 服務 | |
| Code Llama | Meta | 開源、可自己部署 |
| DeepSeek | DeepSeek | 高性價比、程式能力強 |
4.2 程式能力比較
| 模型 | 程式生成 | Debug | 解釋能力 |
|---|---|---|---|
| GPT-4 | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐⭐ |
| Claude 3.5 | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ |
| Gemini | ⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐⭐ |
| Code Llama | ⭐⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐ |
| DeepSeek | ⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐⭐ |
4.3 如何選擇?
| 需求 | 建議模型 |
|---|---|
| 一般使用 | GPT-4、Claude |
| 需要詳細解釋 | Claude |
| 想要免費 | Gemini、Code Llama |
| 注重隱私、想自己部署 | Code Llama |
想看更詳細的工具比較,請參考 AI 寫程式工具比較。
五、實作練習:用生成式 AI 寫你的第一個程式
5.1 練習目標
用 AI 寫一個「猜數字」遊戲。
遊戲規則:
1. 電腦隨機產生 1-100 的數字
2. 玩家猜測
3. 電腦提示「太大」或「太小」
4. 猜對就結束
5.2 步驟教學
Step 1:準備 Prompt
用 Python 寫一個猜數字遊戲。規則如下:
1. 電腦隨機產生 1 到 100 的整數
2. 讓使用者輸入猜測的數字
3. 如果猜錯,顯示「太大」或「太小」的提示
4. 猜對就顯示「恭喜你猜對了!」並結束遊戲
5. 紀錄猜了幾次
請加上註解說明每段程式碼的功能。
Step 2:貼到 ChatGPT 或 Claude
Step 3:你會得到類似這樣的程式碼
import random
def guess_number_game():
# 產生 1-100 的隨機數字
target = random.randint(1, 100)
attempts = 0
print("歡迎玩猜數字遊戲!")
print("我想了一個 1 到 100 之間的數字,請猜猜看。")
while True:
# 取得使用者輸入
try:
guess = int(input("請輸入你的猜測:"))
except ValueError:
print("請輸入有效的數字!")
continue
attempts += 1
# 判斷猜測結果
if guess < target:
print("太小了!")
elif guess > target:
print("太大了!")
else:
print(f"恭喜你猜對了!答案是 {target}")
print(f"你總共猜了 {attempts} 次")
break
# 執行遊戲
guess_number_game()
Step 4:測試執行
- 前往 replit.com 或用本地 Python 環境
- 貼上程式碼
- 執行,開始玩遊戲!
5.3 延伸挑戰
試試這些進階要求:
- 「加上難度選擇:簡單(1-50)、普通(1-100)、困難(1-200)」
- 「加上限制猜測次數的功能」
- 「加上排行榜功能」
如果 AI 生成的程式碼有問題,可以聯繫我們讓工程師直接幫你處理。
六、生成式 AI 寫程式的限制與未來發展
6.1 目前的限制
| 限制 | 說明 |
|---|---|
| 不是 100% 正確 | 會有 Bug、邏輯錯誤 |
| 不理解真正的意圖 | 只是預測最可能的輸出 |
| 有幻覺問題 | 可能編造不存在的東西 |
| 上下文有限 | 很長的程式碼可能會忘記前面的內容 |
| 無法執行測試 | 只是生成程式碼,不會自己執行驗證 |
6.2 未來發展方向
AI 寫程式正在快速進步:
- 更強的推理能力:o1、o3 等模型專注於邏輯推理
- 更長的上下文:處理完整大型專案
- 整合執行環境:生成後自動測試
- 專業化模型:針對特定程式語言優化
- Agent 化:不只生成程式碼,還能自動修正
6.3 正確心態
生成式 AI 是工具,不是萬能:
- 它能大幅提升效率
- 但不能完全取代程式設計師
- 需要人類檢查和判斷
最佳使用方式:把 AI 當作很強的助手,但最終決定權在你。

FAQ 常見問題
Q1:生成式 AI 和 GitHub Copilot 有什麼不同?
A:GitHub Copilot 底層也是使用生成式 AI(OpenAI 的模型),但它是專門整合在 IDE 裡的工具,可以即時補完程式碼。ChatGPT 等是通用對話工具。
Q2:AI 生成的程式碼有版權問題嗎?
A:這是一個灰色地帶。因為 AI 是從公開程式碼學習的,可能會生成相似的程式碼。商業使用時建議檢查,或選擇有版權保護的方案(如 GitHub Copilot Business)。
Q3:學程式還有必要嗎?AI 都會寫了?
A:有必要。AI 是工具,但你需要能力來:判斷程式碼對不對、修改和調整、處理複雜的系統設計。懂程式的人用 AI 效率更高。
Q4:為什麼同樣的 Prompt,每次結果不一樣?
A:因為 AI 有「溫度」參數,會引入隨機性。這讓輸出更多樣,但也導致每次結果可能不同。想要穩定結果,可以調低溫度參數(部分工具支援)。
Q5:生成式 AI 寫程式的成本高嗎?
A:免費版夠一般使用。付費版大約 $20/月。對於專業開發者,這個成本換取的效率提升非常值得。
結論:理解原理,用得更好
今天你學到了:
- 生成式 AI 是透過預測「下一個 Token」來生成程式碼
- AI 學習了數十億行程式碼的「模式」
- Prompt 決定了 AI 的生成方向
- AI 有限制,需要人類檢查和判斷
理解原理後,你會:
- 知道為什麼 Prompt 要寫清楚
- 理解 AI 為什麼有時候會出錯
- 更有效地使用 AI 工具
想要更多入門教學,請參考 如何用 AI 寫程式?新手教學。
AI 寫的程式跑不起來?
我們專門解決 AI 生成代碼的 Bug,讓你的專案順利上線。
延伸閱讀
參考資料
- OpenAI,「GPT-4 Technical Report」,OpenAI(2023)
- Anthropic,「Claude's Constitution」,Anthropic(2024)
- Google,「Gemini Technical Report」,Google DeepMind(2024)
- Meta,「Code Llama: Open Foundation Models for Code」,Meta AI(2023)