iT邦幫忙

2026 iThome 鐵人賽

DAY 8
0
Build on Google AI

今天學什麼?30 天用 Google AI 打造智慧學習卡系列 第 8

Day 08|同一個 Prompt 重複跑,Gemini 的輸出穩定嗎?

  • 分享至 

  • xImage
  •  

昨天測試不同 Learner 之後,我發現 Gemini 會根據年齡調整 Learning Card 的用詞、知識點,甚至連 Question 的設計方式都會跟著改變。

不過在測試過程中,也出現了一個讓工程師有點在意的問題。

如果我什麼都不改,同一份 Prompt 再送一次,結果還會一樣嗎?

所以今天不改 Prompt、不換模型,也不增加任何新功能。

只做一件非常單純的事情:

同一份 Prompt,連跑三次。

原本以為今天只是要驗證「AI 每次回答都不一樣」。

結果實際跑完之後,反而發現事情沒有這麼簡單。


今天來測試 Gemini 的輸出穩定性

今天繼續使用前幾天的幼兒海洋動物 Learning Card。

測試條件全部固定:

Model:gemini-3.8-flash
Learner:3~4 歲幼兒
Topic:海洋動物
Animals:海龜、鯨魚、章魚、螃蟹、小丑魚
Cards:5 張

Prompt 也完全不修改:

請幫我製作一組適合 3~4 歲幼兒學習的「海洋動物學習卡」。

【學習目標】
讓孩子認識常見的海洋動物,並了解每種動物一個簡單的特徵。

【學習主題】
海龜、鯨魚、章魚、螃蟹、小丑魚

請針對以上 5 種海洋動物,各產生 1 張學習卡。

【每張學習卡包含】
- Emoji:使用一個適合該動物的 Emoji
- Title:動物名稱
- Content:使用 30~50 個中文字介紹這個動物,只介紹一個主要特徵
- Question:根據 Content 提出一個簡單問題
- Answer:簡短回答 Question

【內容規則】
- 使用繁體中文
- 使用適合 3~4 歲幼兒理解的詞彙
- 避免使用不必要的專有名詞
- 每張卡片只介紹一個主要知識點
- Question 必須可以根據 Content 回答
- 不要產生 Learning Card 以外的其他內容

為了避免前一次的回答影響下一次,每次測試都重新建立 New Chat,再貼上完全相同的 Prompt。

總共測試三次:

New Chat → Prompt → Run #1
New Chat → Prompt → Run #2
New Chat → Prompt → Run #3

接著就來看看,同一份 Prompt 到底會得到什麼結果。


第一眼看過去:好像其實滿穩的?

先從最基本的結構開始檢查。

檢查項目 Run #1 Run #2 Run #3
產生 5 張 Cards
五個欄位完整
指定 5 種動物
使用繁體中文
Question 對應 Content
沒有額外內容

三次都有:

Emoji
Title
Content
Question
Answer

也都有按照指定的五種動物產生 Learning Card。

前幾天曾經出現的「陪讀小技巧」,這次三次都沒有再突然跑出來。

所以如果只是從:

「Gemini 有沒有按照 Prompt 產生我要的五張 Learning Cards?」

這個角度來看,三次其實都滿穩定的。

原本還期待第三次突然自由發揮一下,結果居然比想像中乖(笑)。


更意外的是:連「教什麼」都很接近

原本在開始實驗之前,我以為可能會看到這種結果:

海龜

Run #1:硬殼
Run #2:游泳
Run #3:產卵

畢竟 Prompt 只指定「海龜」,沒有告訴 Gemini 一定要介紹海龜的哪個特徵。

但實際結果並不是這樣。

海龜

三次幾乎都在介紹:

硬殼
↓
保護自己

鯨魚

三次都圍繞:

浮出水面呼吸
↓
噴出水花

章魚

三次都選擇:

八隻手/腳

螃蟹

三次都是:

橫著走

小丑魚

三次也都以:

橘色 + 白色條紋

作為主要內容。

整理起來:

動物 Run #1 Run #2 Run #3
海龜 硬殼保護身體 硬殼保護身體 硬殼保護身體
鯨魚 浮出水面、噴水 浮出水面呼吸、噴水 浮出水面呼吸、噴水
章魚 八隻腳、吸盤 八隻腳 八隻手
螃蟹 橫著走 橫著走 橫著走、大鉗子
小丑魚 橘白條紋 橘白斑紋 橘白條紋、海葵

至少在這三次小規模測試裡,Gemini 對「這張 Learning Card 要教什麼」的選擇,比我原本預期的還要一致。


同一件事,不代表會用同一句話說

不過再仔細看,就開始看到差異了。

例如海龜。

Run #1:

海龜身上背著一個又圓又硬的大殼,就像背著自己的小房子,可以保護自己的身體不受傷喔!

Run #2:

海龜的背上有一個又硬又圓的大外殼,就像穿著堅固的盔甲一樣,可以保護牠不受傷喔!

Run #3:

海龜背上有一個又硬又圓的大外殼,就像背著自己的小房子,可以保護自己不被大魚咬傷喔!

三張卡片教的其實都是:

海龜有硬殼,可以保護自己。

但 Gemini 使用的比喻不同。

Run #1:小房子
Run #2:盔甲
Run #3:小房子

所以目前看起來:

Gemini 三次都可以教同一件事情,但不代表三次會用同一句話教。

這其實也滿符合生成式 AI 的特性。

如果每次都逐字逐句產生完全相同的內容,好像反而有點失去「生成」的意義了。


Question 也一樣

再來看看螃蟹。

Run #1:

螃蟹是往前走還是往旁邊橫著走?

Run #2:

螃蟹是用什麼姿勢走路的呢?

Run #3:

螃蟹走路是怎麼走的?

三個 Question 都不一樣。

但其實都在問同一件事情:

Learner 知不知道螃蟹是橫著走?

Answer 也分別變成:

Run #1:往旁邊橫著走
Run #2:橫著走路
Run #3:橫著往旁邊走

所以這次可以看到:

Question 的寫法:會變
Answer 的寫法:會變

但

Learning Objective:大致相同

這讓我開始覺得,「Gemini 的輸出穩不穩定」好像不能只用 Yes / No 回答。

還得先問:

我們說的「穩定」,到底是指哪一件事情?


連 Emoji 都不一定一樣

還有一個很小,但我覺得滿有趣的地方。

三次鯨魚使用的 Emoji:

Run #1:🐳
Run #2:🐋
Run #3:🐋

Gemini 並沒有做錯。

因為我的 Prompt 只寫:

使用一個適合該動物的 Emoji

🐳 是鯨魚。

🐋 也是鯨魚。

對 Gemini 來說:

都符合需求啊。

但如果未來 UI 設計希望每次看到「鯨魚」都顯示完全相同的圖示,現在這個 Prompt 顯然沒有辦法保證。

這也讓我開始想到另一個問題:

哪些事情應該交給 AI 決定?哪些事情其實應該由前端自己控制?

例如:

AI
→ 負責產生學習內容

Frontend
→ 負責固定的 UI / Display Rules?

這個問題目前先留著,之後真的開始做 React 畫面時再回來處理。


「一張一個知識點」還是沒有那麼聽話

三次測試裡,最明顯沒有完全遵守的規則,還是這一句:

每張卡片只介紹一個主要知識點。

例如 Run #1 的章魚:

章魚的身體軟軟的,長著八隻長長的腳,腳上還有很多圓圓的小吸盤,能抓緊東西喔!

除了「八隻腳」,還順便講了「吸盤」。

Run #3 的螃蟹:

螃蟹走路和大家不一樣,牠是橫著往旁邊走的,而且前面有一對大鉗子,像剪刀一樣厲害!

除了「橫著走」,又順便介紹「大鉗子」。

Run #3 的小丑魚也是:

身上穿著亮橘色和白色的條紋衣服,最喜歡躲在軟綿綿的海葵家裡玩耍。

看來 Gemini 對「只介紹一個」的理解,好像是:

我主要介紹一個,順便再補充一點應該沒關係吧?

工程師:

我就是叫你不要順便(笑)。

這也讓我發現,不同 Prompt 規則的穩定程度好像不太一樣。

像這些:

產生 5 張             → 三次都做到
指定 5 種動物         → 三次都做到
五個欄位              → 三次都做到
不要額外產生其他內容   → 三次都做到

但是:

每張只介紹一個知識點   → 偶爾還是會多講一點

所以把規則寫進 Prompt,確實可以影響結果。

但並不代表每一條自然語言規則,都會被完全一樣地執行。


然後,我發現了一個前端工程師更在意的問題

看到這裡,其實人類閱讀完全沒有問題。

三次都是:

Emoji
Title
Content
Question
Answer

看得懂,也知道每一張 Card 在哪裡。

但仔細比較三次輸出,排版開始出現差異。

Run #1、Run #2 的 Card 中間都有:

---

用來分隔每張卡片。

但是 Run #3 沒有。

另外前兩次是:

Emoji:
Title:

Run #3 則變成:

Emoji:
Title:

一個使用全形冒號,一個變成半形冒號。

對人類來說:

有差嗎?還不是看得懂。

但是如果今天要交給 React:

等一下。

假設我要從這段文字裡找出每一張 Learning Card:

哪裡是一張 Card 的開始?

哪裡是一張 Card 的結束?

「---」一定會存在嗎?

欄位後面一定是「:」嗎?

還是下一次又會變成「:」?

事情突然開始麻煩起來了。


所以 Gemini 到底穩不穩?

跑完三次之後,我覺得答案不是單純的:

穩定。

或:

不穩定。

比較接近:

相對穩定
────────────
Card 數量
欄位
指定動物
核心學習內容
Question 的方向


會發生變化
────────────
文字表達
比喻方式
Emoji
部分補充知識
排版格式

也就是說,如果我在意的是:

「這張海龜 Learning Card 有沒有在教適合幼兒理解的海龜知識?」

這三次結果其實滿穩定。

但如果我要求:

「每一次 Response 都必須長得完全一樣,讓程式直接解析。」

那目前顯然還沒有做到。


順手記錄一下生成時間

這次也順便記錄了三次 Gemini 的生成時間:

Run 生成時間
Run #1 9.4 秒
Run #2 12.7 秒
Run #3 5.6 秒

最快和最慢的差異還滿大的。

不過目前只有三次樣本,而且今天主要測試的也不是 Gemini 的效能,所以這裡先單純記錄,不對時間差異做任何結論。


Day 08 小結

今天原本只是想看看:

同一份 Prompt 按三次,Gemini 是不是每次都會亂跑?

結果實際測完,反而發現「穩定性」這件事情比想像中更有層次。

三次生成中,Learning Card 的:

結構
指定動物
核心知識
Question 方向

其實都相當接近。

真正容易改變的是:

文字怎麼說
用什麼比喻
使用哪個 Emoji
順便補充哪些資訊
輸出怎麼排版

對人來說,這些差異可能沒有什麼問題。

反正三份都看得懂。

但是我們這 30 天的目標,不只是要在 Google AI Studio 裡看 Gemini 回答問題。

最後還要把這些 Learning Cards:

交給 React。

這時候問題就不一樣了。

人看得懂的 Response,程式不一定好處理。

所以明天,前端工程師終於又要開始上班了(笑)。

Day 09|人看得懂就好嗎?開始面對 Gemini 的 Response 格式問題


上一篇
Day 07|同一個主題,不同年齡:Gemini 真的懂學習對象嗎?
系列文
今天學什麼?30 天用 Google AI 打造智慧學習卡8
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言