iT邦幫忙

2025 iThome 鐵人賽

DAY 19
0
開始前先說個有趣的。

AWS Bedrock 的畫面中,在 Top P 和 Top K 的參數上都有提示說明可以參考。
然而...
https://ithelp.ithome.com.tw/upload/images/20251003/20168437h9x284ZZmL.png
不知道是不是筆誤,兩個內容寫的都是 where P is the value you choose.

這篇是 Bedrock 的最後一個參數設定了,希望可以測試順利 🙏
好煩,這年頭用個 emoji 都要擔心會不會被當成 AI


Top K

用來限制候選詞的數量,設定範圍從 0-500。
在模型要選下一個字/詞時,它會先算出所有可能字的機率。
Top K 就是只保留「機率最高的 k 個詞」,再從這些裡面隨機抽選。

那跟同樣是限制字池的 Top P 有麼不同?

Top K:固定數量 → 比如: Top K = 5 = 只從最容易被選中的前 5 個詞彙中做選擇。
Top P:固定機率總和 → 比如: Top P = 0.9 = 從被選中佔比最高的詞彙開始累計,直到百分比累積到 > 90%,再從中做選擇。

假設下一個詞的機率分布是:
A: 40%,B: 25%,C: 15%,D: 11%,E: 5%,F: 4%
  • Top K = 3 → [A, B, C]
  • Top P = 0.8 → [A, B, C] (40% + 25% + 15%)
  • Top P = 0.9 → [A, B, C, D] (40% + 25% + 15% + 10%)

數值範圍:K ≥ 1,通常 10~200 之間比較常見。


實際測試

提示詞:

請接續這個故事:
從前從前,有一隻青蛙來到了池塘邊...

測試說明:

  • 選定 1、10、50、200、500 五個數值進行測試
  • 每個數值進行 2 次測試
  • 每個數值只選定其中一個結果來做分析
  • 完整測試內容會附註在文末連結

生成內容

  • Top K = 1

    前從前,有一隻青蛙來到了池塘邊。這隻青蛙名叫小綠,牠有著翠綠色的皮膚和一雙明亮的大眼睛。小綠原本住在森林裡的一條小溪旁,但因為最近天氣乾旱,小溪的水位越來越低,食物也越來越少,所以牠決定尋找新的家園。
    
    過三天的跋涉,小綠終於來到了這個傳說中水草豐美、蚊蠅眾多的大池塘。站在池塘邊,小綠既興奮又緊張。這裡比牠想像中還要大得多,水面上漂浮著大片的荷葉,岸邊長滿了蘆葦和各種水生植物。
    
    哇!這裡真美啊!"小綠驚嘆道,一躍跳上了一片荷葉。
    
    然,荷葉晃動起來。
    
    "嘿!這是我的地盤!"一個低沉的聲音響起。原來是一隻體型較大的青蛙,牠瞪著小綠說:"新來的,是吧?在這個池塘,每個青蛙都有自己的領地,你得先通過挑戰才能留下來。"
    
    綠雖然害怕,但牠知道自己別無選擇。
    
    "什麼挑戰?我願意嘗試!"
    
    青蛙露出了笑容:"很簡單,看誰能捉到最多的蚊子,還有誰能跳得最遠。"
    
    這樣,小綠開始了在新池塘的第一場考驗...
    ``
    
    
  • Top K = 10

    從前從前,有一隻青蛙來到了池塘邊。這隻青蛙名叫小綠,他有著翠綠色的皮膚和一雙明亮的大眼睛。小綠原本住在森林裡的一條小溪旁,但因為夏季的乾旱,小溪的水越來越少,他不得不尋找新的家園。
    
    經過幾天的跳躍旅行,小綠終於來到了這個美麗的池塘。池水清澈見底,四周長滿了蘆葦和睡蓮,簡直是青蛙的天堂!小綠迫不及待地跳入水中,感受涼爽的水流撫過全身。
    
    「哇!這裡太棒了!」小綠高興地大喊。
    
    但很快,他發現自己不是池塘的唯一居民。一群老青蛙正從睡蓮葉上好奇地打量著他。
    
    你是誰?從哪裡來?」最大的那隻老青蛙問道。
    
    綠禮貌地自我介紹,並解釋了自己來到這裡的原因。老青蛙們聽完後點點頭,歡迎他加入池塘大家庭,但條件是他必須通過一個考驗。
    
    每個想留在這裡的新青蛙都必須幫助池塘社區解決一個問題,」老青蛙解釋道,「現在我們的問題是,池塘對岸的螞蟻們一直在偷我們的蓮花種子。你能幫助我們與螞蟻們達成和平協議嗎?」
    
    綠雖然害怕,但他知道這是證明自己的機會。於是,他鼓起勇氣,跳到池塘對岸,尋找螞蟻們的家。經過一番搜索,他發現了螞蟻王國的入口,並要求與螞蟻女王見面。
    
    小綠驚訝的是,螞蟻女王非常友善。她解釋說,她的子民拿蓮花種子是因為他們的糧食被一場大雨沖走了。小綠靈機一動,提出一個交換方案:青蛙們可以幫助螞蟻抵禦池塘周圍的害蟲,作為交換,螞蟻只拿掉落的蓮花種子,不再擾亂池塘生態。
    
    蟻女王很滿意這個提議,小綠帶著好消息回到池塘。老青蛙們對小綠的外交才能感到驚訝和欽佩,當即接納他成為池塘的永久居民。
    
    此以後,小綠在新家過著幸福的生活。每天晚上,他都會跳上最大的睡蓮葉,對著明亮的月亮唱歌,講述他的冒險故事給池塘裡的所有朋友聽。他不僅找到了新家,還成為了池塘社區備受尊敬的一員。
    
  • TOP K = 50

    從前從前,有一隻青蛙來到了池塘邊...
    
    叫阿綠,是一隻生活在森林裡的小青蛙。這天,阿綠離開了自己熟悉的小溪,決定探索傳說中的「大池塘」。
    
    阿綠跳到池塘邊時,看見水面像鏡子般閃閃發光,比小溪寬闊十倍不止。池塘中央有幾朵美麗的荷花,荷葉上坐著一隻看起來很老很智慧的老青蛙。
    
    小傢伙,你是新來的吧?」老青蛙注意到了岸邊的阿綠,和藹地問道。
    
    是的,我從小溪來的。」阿綠有些緊張地回答,「我一直想知道池塘生活是什麼樣子。」
    
    青蛙笑了笑:「那就跳進來吧!池塘有很多故事要告訴你呢。」
    
    綠鼓起勇氣,往水裡一跳。水很涼爽,比小溪深得多。在老青蛙的帶領下,阿綠認識了許多新朋友——嘰嘰喳喳的蜻蜓家族、總是忙著收集花粉的蜜蜂姐妹、和躲在荷葉下的小魚群。
    
    幕降臨時,螢火蟲點亮了池塘四周,青蛙們開始了他們的晚間音樂會。阿綠發現,池塘的生活比小溪豐富多了,但他也開始想念自己的小溪家鄉。
    
    每個地方都有它的美好,」老青蛙似乎看出了阿綠的心思,「重要的是,無論你去哪裡,都帶著開放的心去探索,去交朋友。」
    
    綠點點頭。他決定在池塘多住幾天,學習更多知識,然後把這些故事帶回小溪,與那裡的朋友們分享。
    
    為他明白了,冒險的意義不只是去看新的風景,更是讓自己成長,然後把美好帶給更多人。
    
  • TOP K = 200

    蛙與池塘
    
    前從前,有一隻青蛙來到了池塘邊。這隻青蛙名叫小綠,牠長途跋涉,終於找到了這片傳說中的翡翠池塘。
    
    水清澈見底,水面上漂浮著幾片潔白的睡蓮,陽光穿過樹梢灑在水面上,形成了點點金光。小綠觀察著這片美麗的池塘,心想這裡一定是個理想的家。
    
    而,當小綠正要跳入池塘時,一個蒼老的聲音從蘆葦叢中傳來:「年輕人,不要這麼急。」
    
    綠轉頭一看,是一隻年邁的烏龜正緩緩爬出蘆葦。
    
    這池塘看起來美麗,實際上卻隱藏著危險,」烏龜老先生說,「人類最近在附近建了工廠,他們排放的廢水使池塘逐漸變得有毒。」
    
    綠驚訝地看著表面平靜的池水,「那麼我該怎麼辦呢?我已經找了很久的家。」
    
    龜慢慢點頭:「往西行三天,有一片被森林保護的沼澤地。那裡的居民正在尋找勇敢的新成員,一起守護他們的家園。」
    
    是,小綠向烏龜道謝,繼續踏上了旅程。牠心裡明白,真正的家不僅是美麗的地方,更是值得牠付出和守護的地方。
    
    西三天後,小綠找到了那片沼澤地,開始了牠的新生活,並用自己的經歷告訴每一位新來的朋友:家園需要共同守護,才能永遠美麗。
    
  • TOP K = 500

    從前從前,有一隻青蛙來到了池塘邊。這隻青蛙名叫阿綠,是一隻有著翠綠色皮膚和明亮大眼睛的小青蛙。
    
    阿綠原本生活在遠處的森林裡,但聽說這座池塘有著清澈的水和豐富的食物,便決定展開一段冒險旅程。當牠終於抵達池塘邊時,眼前的景象令牠驚嘆不已:水面平靜如鏡,周圍長滿了蘆葦和美麗的睡蓮,蜻蜓在水面上低飛,陽光穿過樹梢灑下金色的光點。
    
    「哇!這真是個美麗的地方!」阿綠興奮地跳上一片荷葉,打算好好休息一下。
    
    不料,荷葉突然動了起來。「嘿!你是誰?為什麼站在我的背上?」原來那不是荷葉,而是一隻正在曬太陽的大烏龜老伯。
    
    「對、對不起!」阿綠嚇得連忙跳開,「我是阿綠,剛剛來到這個池塘,不熟悉這裡的規矩。」
    
    烏龜老伯看著這隻慌張的小青蛙,慈祥地笑了:「別害怕,小傢伙。我叫智者,已經在這池塘住了一百多年。新來的朋友總是受歡迎的,只要你尊重池塘裡的每一位居民。」
    
    就這樣,在智者的引導下,阿綠認識了池塘裡的許多居民:善良的白鷺小姐、熱情的小魚群、害羞的水草兄弟。但阿綠發現,池塘的一角有著濃密的陰影,那裡沒有動物敢靠近。
    
    「那是什麼地方?」阿綠好奇地問。
    
    智者嘆了口氣:「那裡住著老蛇王,他脾氣古怪,經常嚇唬池塘裡的居民。最近池塘的水位越來越低,我們懷疑是他在搞鬼。」
    
    阿綠雖然害怕,但牠相信每個生命都有善良的一面。也許老蛇王只是太孤獨了?帶著這個想法,阿綠決定去拜訪這位神秘的池塘居民,開始了一段意想不到的冒險...
    

不同設定值的差異分析

Top K 角色 故事劇情 特色 創造性(1-5) 文字細膩度
1 小綠、大青蛙 尋找新池塘 → 挑戰大青蛙 → 贏得資格 劇情平淡,互動角色少且同樣是青蛙 1 單薄
10 小綠、老青蛙、螞蟻女王 來到新池塘 → 協調青蛙與螞蟻 → 和平解決 新角色「螞蟻」、出現更多物種 3 場景描述增加
50 阿綠、老青蛙、蜻蜓、蜜蜂 阿綠 → 認識居民 → 參與生活 → 回家 氛圍溫馨,細節豐富 2 場景描述、語氣氛圍
200 小綠、烏龜老先生 小綠 → 發現池塘污染 → 再尋找新家 人類工廠與環保議題 5 場景細膩、細節豐富
500 阿綠、智者烏龜、蛇王 阿綠 → 池塘生活 → 面對蛇王 → 新冒險 轉為奇幻故事,出現反派「蛇王」 5 描寫最為細膩,出現角色刻畫

關於創造性的比較數值
因為「創造性」這個項目相對主觀,所以增加以下說明:

  • K=10 高於 K=50:
    因為 K=10 的故事出現了「外交、協調」的劇情設計(青蛙與螞蟻的談判),在內容和意外性上,比 K=50 的「想家 → 回到故鄉」更加跳脫常規。
  • K=200 與 K=500 並列為 5:
    走向完全不同,無法直接比較高下。
    K=200 → 打破童話故事的框架,引入「人類工廠與環保議題」
    K=500 → 發展成奇幻冒險,增加「蛇王反派」等設定

最後做個參數設定的小總結

  • Temperature
    數值越高,冷門詞與熱門詞的差異約小
  • Top P
    數值越高,納入選擇的語彙越多
  • Top K
    選前幾名,數值越大範圍越廣

實務上的常見組合:

  1. Temperature + Top P
    最常見,控制隨機性 + 控制範圍
  2. Temperature + Top K
    相對直觀,但設計上沒有 TOP P 那麼彈性
  3. 單獨用 Temperature 或 單獨用 Top P
    簡單好理解

最後附上完整的測試結果:Day 19. TOP K 測試結果


上一篇
Day 18. 幫你的魔法棒上 buff
下一篇
Day 20. 沒踩點坑怎麼算是技術文章
系列文
科學的盡頭是玄學?AI占卜小助手與知識庫驗證20
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言