一種輕松且客觀介紹大模型方式,避免過度解讀
一、前言
這篇文章旨在為沒有計(jì)算機(jī)科學(xué)背景的讀者提供一些關(guān)于ChatGPT及其類似的人工智能系統(tǒng)(如GPT-3、GPT-4、Bing Chat、Bard等)如何工作的原理。ChatGPT是一種聊天機(jī)器人,建立在一個(gè)大型語言模型之上,用于對(duì)話交互。這些術(shù)語可能比較晦澀難懂,我將對(duì)其進(jìn)行解釋。同時(shí),我們將討論它們背后的核心概念,而且本文并不需要讀者具備任何技術(shù)或數(shù)學(xué)方面的背景知識(shí)。我們將大量使用比喻來解釋相關(guān)概念,以便更好地理解它們。我們還將討論這些技術(shù)的意義,以及我們應(yīng)該期待或不應(yīng)該期待大型語言模型如ChatGPT所能做的事情。
接下來我們將以盡可能不使用專業(yè)術(shù)語的方式,從基礎(chǔ)的“什么是人工智能”開始,逐步深入討論與大型語言模型和ChatGPT相關(guān)的術(shù)語和概念,并將使用比喻來解釋它們。同時(shí),我們也將談?wù)撨@些技術(shù)的意義,以及我們應(yīng)該期待它們能夠做什么或不應(yīng)該期待它們能夠做什么。
二、什么是人工智能
首先,讓我們從一些基本術(shù)語開始,這些術(shù)語你可能經(jīng)常聽到。那么什么是人工智能呢?
人工智能:指一種能夠表現(xiàn)出類似于人類所認(rèn)為的智能行為的實(shí)體。用“智能”來定義人工智能有些問題,因?yàn)椤爸悄堋北旧聿]有一個(gè)清晰的定義。但是,這個(gè)定義仍然比較恰當(dāng)。它基本上意味著,如果我們看到一些人造的東西,它們能夠進(jìn)行有趣、有用、看起來有一定難度的行為,那么我們可能會(huì)說它們具有智能。例如,在電腦游戲中,我們通常稱計(jì)算機(jī)控制的角色為“AI”。這些角色大多是基于if-then-else代碼的簡單程序(例如,“如果玩家在射程范圍內(nèi),則開火,否則移動(dòng)到最近的石頭后躲藏”)。但是,如果這些角色可以保持我們的參與度和娛樂性,同時(shí)不做任何顯然愚蠢的事情,那么我們可能會(huì)認(rèn)為它們比實(shí)際上更為復(fù)雜。
一旦我們了解了某個(gè)東西的工作原理,我們可能就不會(huì)覺得它很神奇,而是期望在幕后有更為復(fù)雜的東西。這完全取決于我們對(duì)幕后發(fā)生的事情的了解程度。
重要的一點(diǎn)是,人工智能不是魔術(shù)。因?yàn)樗皇悄g(shù),所以它是可以被解釋的。
三、 什么是機(jī)器學(xué)習(xí)
另一個(gè)與人工智能經(jīng)常相關(guān)聯(lián)的術(shù)語是機(jī)器學(xué)習(xí)。
機(jī)器學(xué)習(xí):一種通過收集數(shù)據(jù)、形成模型,然后執(zhí)行模型的方式來創(chuàng)建行為的方法。有時(shí)候,手動(dòng)創(chuàng)建一堆if-then-else語句以捕捉某些復(fù)雜現(xiàn)象(比如語言)是很困難的。在這種情況下,我們嘗試找到大量數(shù)據(jù),并使用能夠在數(shù)據(jù)中找到模式的算法進(jìn)行建模。
那么什么是模型呢?模型是某種復(fù)雜現(xiàn)象的簡化版本。例如,汽車模型是真實(shí)汽車的更小、更簡單版本,它具有真實(shí)汽車許多屬性,當(dāng)然并不意味著要完全替代原始版本。模型汽車可能看起來很真實(shí),在實(shí)驗(yàn)的時(shí)候很有用。
就像我們可以制造一個(gè)更小、更簡單的汽車一樣,我們也可以制造一個(gè)更小、更簡單的人類語言模型。我們使用“大型語言模型”這個(gè)術(shù)語,因?yàn)檫@些模型從需要使用的內(nèi)存(顯存)量的角度來看是非常大的。目前生產(chǎn)中最大的模型,例如ChatGPT、GPT-3和GPT-4,非常龐大,需要運(yùn)行在數(shù)據(jù)中心服務(wù)器上的超級(jí)計(jì)算機(jī)才能創(chuàng)建和運(yùn)行。
四、什么是神經(jīng)網(wǎng)絡(luò)
有很多方法可以通過數(shù)據(jù)來學(xué)習(xí)一個(gè)模型,其中神經(jīng)網(wǎng)絡(luò)就是其中一種方法。這種技術(shù)大致基于人腦的結(jié)構(gòu),人腦由一系列互相連接的神經(jīng)元組成,神經(jīng)元之間傳遞電信號(hào),使我們能夠完成各種任務(wù)。神經(jīng)網(wǎng)絡(luò)的基本概念在20世紀(jì)40年代就已經(jīng)被發(fā)明了,如何訓(xùn)練神經(jīng)網(wǎng)絡(luò)的基本概念則是在20世紀(jì)80年代發(fā)明的,當(dāng)時(shí)神經(jīng)網(wǎng)絡(luò)非常低效,直到2017年左右計(jì)算機(jī)硬件升級(jí),我們才可以大規(guī)模地使用它們。
但是,個(gè)人比較喜歡用電路的隱喻來模擬神經(jīng)網(wǎng)絡(luò)。通過電阻、電流經(jīng)過電線的流動(dòng),我們可以模擬神經(jīng)網(wǎng)絡(luò)的工作。
想象一下我們想要制作一輛可以在高速公路上行駛的自動(dòng)駕駛汽車。我們?cè)谲嚨那?、后和兩?cè)裝上了距離傳感器。當(dāng)有物體接近時(shí),距離傳感器會(huì)報(bào)告一個(gè)值為1的數(shù)值,而當(dāng)附近沒有可檢測的物體時(shí),傳感器會(huì)報(bào)告一個(gè)值為0的數(shù)值。
我們還安裝了機(jī)器人操作方向盤,踩剎車和加速。當(dāng)油門接收到1的數(shù)值時(shí),它使用最大的加速度,而0的數(shù)值意味著沒有加速。同樣,發(fā)送給制動(dòng)機(jī)構(gòu)的數(shù)值為1意味著緊急剎車,而0則意味著沒有制動(dòng)。轉(zhuǎn)向機(jī)構(gòu)接受-1到+1之間的數(shù)值,負(fù)數(shù)表示向左轉(zhuǎn),正數(shù)表示向右轉(zhuǎn),而0表示保持直線行駛。
當(dāng)然我們必須記錄駕駛的數(shù)據(jù)。當(dāng)前方的道路清晰時(shí),你會(huì)加速。當(dāng)前方有汽車時(shí),你會(huì)減速。當(dāng)一輛汽車從左側(cè)靠得太近時(shí),你會(huì)向右轉(zhuǎn)向并變換車道,當(dāng)然,前提是右側(cè)沒有車。這個(gè)過程非常復(fù)雜,需要根據(jù)不同的傳感器信息組合進(jìn)行不同的操作(向左或向右轉(zhuǎn),加速或減速,制動(dòng)),因此需要將每個(gè)傳感器都連接到每個(gè)機(jī)器人機(jī)構(gòu)上。
當(dāng)你開車上路時(shí)會(huì)發(fā)生什么?電流從所有傳感器流向所有機(jī)器人執(zhí)行器,車輛同時(shí)向左轉(zhuǎn)、向右轉(zhuǎn)、加速和剎車。會(huì)形成一團(tuán)亂麻。
拿出電阻器并開始將它們放在電路的不同部分,以便電流可以在某些傳感器和某些機(jī)械臂之間更自由地流動(dòng)。例如,我們希望電流能夠從前方接近傳感器更自由地流向剎車而不是轉(zhuǎn)向機(jī)構(gòu)。我們還安裝了稱為門的元件,直到足夠的電荷積累以觸發(fā)開關(guān)之前,電流才會(huì)停止流動(dòng)(只有在前方和后方的接近傳感器都報(bào)告高數(shù)字時(shí)才允許電流流動(dòng)),或者僅在輸入電強(qiáng)度較低時(shí)向前發(fā)送電能(當(dāng)前方接近傳感器報(bào)告低值時(shí)向加速器發(fā)送更多電力)。
但是我們應(yīng)該在哪里放置這些電阻器和門呢?我也不知道。隨機(jī)地將它們放在各個(gè)位置。然后再試一次。也許這次汽車開得更好,這意味著它有時(shí)會(huì)在數(shù)據(jù)表明最好剎車和轉(zhuǎn)向等時(shí)剎車和轉(zhuǎn)向,但它并不是每次都正確。而有些事情它做得更糟糕(在數(shù)據(jù)表明有時(shí)需要?jiǎng)x車時(shí)它加速了)。因此,我們不斷地隨機(jī)嘗試不同的電阻器和門的組合。最終,我們會(huì)偶然發(fā)現(xiàn)一個(gè)足夠好的組合,那么我們宣布成功。比如下面這個(gè)組合:
(實(shí)際上,我們不會(huì)添加或刪除門,但我們會(huì)修改門,使其可以以較低的能量從下方激活,或者需要更多的能量從下方輸出,或者只有在下方有非常少的能量時(shí)才釋放大量的能量。機(jī)器學(xué)習(xí)是純粹主義者,可能會(huì)對(duì)這種描述感到不舒服。技術(shù)上,這是通過調(diào)整門上的偏置來完成的,這通常不會(huì)在此類圖示中顯示,但從電路隱喻的角度來看,它可以被認(rèn)為是一個(gè)插入直接連到電源的線纜,可以像所有其他線纜一樣進(jìn)行修改。)
隨意嘗試并不好。一個(gè)名為反向傳播的算法在改變電路配置方面具有相當(dāng)不錯(cuò)的猜測能力。算法的細(xì)節(jié)并不重要,只需知道它會(huì)微調(diào)調(diào)整電路以使其行為更接近于數(shù)據(jù)所建議的行為,經(jīng)過成千上萬次的微調(diào),最終可以得到與數(shù)據(jù)相符的結(jié)果。
我們稱電阻器和門為參數(shù),因?yàn)閷?shí)際上它們無處不在,而反向傳播算法所做的是宣布每個(gè)電阻器更強(qiáng)或更弱。因此,如果我們知道電路的布局和參數(shù)值,整個(gè)電路可以在其他汽車上復(fù)制。