昨天知道 AI 可以透過大量資料和訓練學習規律
但我又突然想到一個問題
那 ChatGPT 到底是怎麼看懂我打的文字,還可以接著我的話回答?
我明明只是打一段文字,它卻可以理解我在問什麼,甚至還可以根據前面聊過的內容繼續回答
所以 ChatGPT 到底是怎麼做到的?
一、ChatGPT 真的「看得懂」我的文字嗎?
我們平常看到的是一句完整的話
但對 ChatGPT 來說,文字會先被拆成一個一個比較小的單位,這些單位叫做 Token
Token 不一定等於一個完整的字,也可能是一個詞或一小部分的文字
例如我打一段問題給 ChatGPT,它會先把這些文字轉換成模型可以處理的形式
所以第一步其實不是直接回答我
而是先把我輸入的文字轉換成 AI 可以分析的資訊
二、那 ChatGPT 是怎麼知道我要問什麼?
這就跟前幾天講到的 AI 學習有關
ChatGPT 在訓練的過程中看過大量的文字資料,從中學習不同文字之間的關係和出現的規律
所以當我輸入一句話的時候
它會根據前面的文字,判斷接下來什麼樣的內容比較合理
簡單來說
ChatGPT 很重要的一件事情,就是預測接下來最可能出現的內容
聽起來好像很簡單
但當模型學習了非常大量的文字規律之後,就可以產生看起來很自然的回答
三、那它是不是把所有答案都背起來了?
其實不是
如果 ChatGPT 只是把網路上的文章全部背起來
那應該只能找到以前看過的句子
但實際上我們問它一個新的問題,它通常可以重新組合出一個回答
所以它比較像是在學習「文字和概念之間的關係」
而不是單純把所有答案存在一個資料庫裡
就像我們學習一種語言之後
不需要把每一句可能出現的話全部背起來
也可以自己組合句子
ChatGPT 的方式雖然和人類學習完全不同,但也有類似的地方
四、那為什麼我可以跟它一直聊下去?
這就跟「上下文」有關
如果我只問一句
「今天台北天氣如何」
ChatGPT 可以根據這句話回答
但如果我接著問
「那明天呢」
它還是可以知道我是在問台北的天氣
因為它會把前面的對話內容一起當成目前回答時可以參考的上下文
所以它才可以看起來像是真的有記住我們前面聊過的事情
也因此
聊天機器人和一般搜尋框最大的不同之一,就是它可以根據前面的對話繼續回答
五、那 ChatGPT 是不是每次都知道正確答案?
這裡就很有趣了
因為 ChatGPT 的主要工作不是像資料庫一樣直接查出「正確答案」
而是根據它學到的模式,產生一個最合理的回答
所以有時候它可能會回答得非常有自信
但內容卻是錯的
這也是為什麼 AI 有時候會出現我們常說的「幻覺」
看起來講得非常像真的
但其實根本沒有這回事
所以「回答得很像人」和「一定是正確的」其實是兩件不同的事情
六、原來 ChatGPT 的聊天方式是這樣
如果把整個過程簡化
大概可以想成
我輸入文字 → 文字被拆成 Token → 模型分析上下文 → 預測接下來的內容 → 產生回答
而且這個過程不是一次把整篇答案全部想好
而是會一個 Token 一個 Token 地產生
最後組合成我們看到的完整回答
所以我現在看到 ChatGPT 回覆我的這一大段文字
其實背後已經經過很多次的計算
七、心得
今天才發現
原來我跟 ChatGPT 聊天的時候
它並不是像一個人一樣坐在電腦前面思考我要說什麼
也不是單純從一個超大的答案資料庫裡面把答案找出來
而是透過模型學到的語言規律
再搭配我現在輸入的內容和前面的上下文
一步一步產生回答
難怪同樣一句話
換個問法,有時候得到的答案也會不太一樣
⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯
明日預告
今天知道 ChatGPT 是靠模型理解輸入並產生回應
但我又突然想到一個問題
如果 ChatGPT 背後是一個模型,那大家一直說的 LLM 到底是什麼?
為什麼叫 Large Language Model?
它到底「學」了什麼?
那明天就來討論一下
「LLM 到底是什麼?」