• <strike id="44quq"></strike>
      <s id="44quq"><em id="44quq"></em></s>
            <pre id="44quq"></pre>
          • 熱文:后GPT書:從GPT-3開始,續寫Transformer龐大家族系譜
            時間:2023-04-16 18:38:59  來源:引領外匯網  
            1
            聽新聞

            一文帶你了解Transformer 大家族。

            編者按:本文來自微信公眾號 機器之心(ID:almosthuman2014),作者:王子嘉,編輯:H4O,創業邦經授權轉載,頭圖來源攝圖網

            最近,大語言模型軍備戰爭占據了朋友圈的大部分篇幅,關于這些模型能做什么和有什么商業價值,已經有很多文章探討。然而,作為一個在人工智能領域浸淫多年的小小研究員,我更關注的是這場軍備競賽背后的技術原理,以及這些模型是如何工程化并造福人類的。相比于看這些模型怎樣賺錢和工程化以便為更多人帶來好處,我更想探索的是這個現象背后的原因,以及在 AI 取代人類之前,我們這些研究員還能為實現 “被 AI 取代然后光榮退休” 做些什么。


            (資料圖)

            三年前,當 GPT-3 在技術界掀起軒然大波時,我曾嘗試以史書的方式剖析 GPT 背后的龐大家族。我按時間順序梳理了 GPT 背后的技術脈絡(圖 1),并試圖解釋 GPT 的成功背后的技術原理。今年,GPT-3 的小兒子 ChatGPT 似乎更加聰明,能夠用聊天的方式與人交流,這讓更多人了解了自然語言處理領域的最新進展。在這個歷史性的時刻,作為 AI 史官,我們或許應該花些時間回顧一下最近幾年發生了什么。第一篇文章是以 GPT-3 作為起點,所以這個系列其實是對于后 GPT 時代的記錄(后 GPT 書),而在探索 GPT 家族的變化時,我意識到大多數故事都與 Transformer 有關,因此這篇文章的名字就是 Transformer 世家。

            圖 1. GPT 舊族譜

            前情回顧

            在正式開始介紹 Transformer 世家前,我們先按照圖 1 回顧一下過去發生了什么。從 Word Embedding [1,2] 開始,向量(一串數字)以一種奇特但有效的方式將文字的語義包含了進來,圖 2 展示這種表征方式的說明:用數字表示的(國王 - 男人 + 女人 = 女王)。以這個為基礎,這一支龐大的 NLP(自然語言處理)家族就創立了。

            圖 2. Word2Vec 圖解 (King - Man + Woman = Queen)

            在這之后,他的大兒子 ELMo [3] 發現了語境的重要性,比如以下兩句話:

            與此同時,Word Embedding 的一個遠房表親發現了另一個問題 —— 人在理解一句話的時候,是會有重點的關注一部分詞的,一個很明顯的現象就是我們在讀自己母語的時候很多錯別字會被輕易地忽略掉,這是因為我們在理解這段話的時候注意力并不在這上面。因此,他提出了 Attention(注意力)機制 [4],但是此時的 Attention 機制很初期,并不能單獨工作,因此只能依附在類似于 RNN,LSTM 這種序列模型上。圖 3 展示了 attention 機制與 RNN 的結合過程,也說明了為什么 Attention 自身無法單獨工作。這里簡單說一下 NLP 模型的工作過程,首先我們有一句話,比如 “我愛你中國”,這就是五個字符,可以變成圖 3 里的 x_1-x_5,然后每個字符會變成剛剛所說的 word embedding (一串數字),也就是圖 3 里的 h_1-h_5,然后他們再最后變成輸出,比如 “I love China”(翻譯任務),也就是圖 3 里的 x_1’-x_3’。圖 3 里剩下沒說的部分就是 attention 機制了,也就是圖 3 里的 A,他相當于給每個 h 賦予了一個權重,這樣我們就知道在轉換當前這個詞的時候,哪些字比較重要了。具體的細節可以參考我最開始寫的那篇文章(從 word2vec 開始,說下 GPT 龐大的家族系譜 )。可以看出,這里的數字表征是整個任務的基礎,這也是為什么 Attention 機制無法單獨工作的原因。

            圖 3. 早期照片 - Attention 與 RNN 強強聯合(source: Attention for RNN Seq2Seq Models (1.25x speed recommended) - YouTube)

            此時,作為驕傲的皇族直系親屬,Transformer 不認可這種依附他人的工作方式,在論文 “Attention is all you need”(你只需要注意力機制就夠了)[5] 中提出了自己獨立的方式, 將 “注意力機制” 加了一個字變成了 “自注意力機制”,只用注意力機制就能生成那串數字。我們用中醫開藥來說明這個變化。最開始的 Attention 機制可以說是每種材料的劑量,但是最終去拿藥的時候,藥品是存在 RNN 或者 LSTM 這種采藥者手里的,我們開出的藥方當然也要基于藥房(RNN、LSTM)里有什么藥。Transformer 做的只是將采藥權要了回來(加入了 value 矩陣),然后換了一種開藥方的方式(加入 key 和 query 矩陣)。此時,Source 可以看作一個中藥鋪子的儲物箱,儲物箱里的藥品由地址 Key(藥品名)和值 Value(藥品)組成,當前有個 Key=Query(藥方)的查詢,目的是取出儲物箱里對應的 Value 值(藥品),即 Attention 數值。通過 Query 和儲物箱內元素 Key 的地址進行相似性比較來尋址,之所以說是軟尋址,指的是我們不只從儲物箱里面找出一中藥物,而是可能從每個 Key 地址都會取出內容,取出內容的重要性(量的多少)根據 Query 和 Key 的相似性來決定,之后對 Value 進行加權求和,這樣就可以取出最終的 Value 值(一副中藥),也即 Attention 值。所以不少研究人員將 Attention 機制看作軟尋址的一種特例,這也是非常有道理的 [6]。

            從此之后,Transformer 正式開始帶領家族走向繁榮。

            Transformer 繼位

            其實從圖 1 也可以看出,transformer 就是爺爺家族里子嗣最旺盛的一支了,也證實了當年”Attention is all you need” 這個題目狂的確實有理有據。雖然剛剛講過他提出的自注意力機制是什么,前面那篇文章 (從 word2vec 開始,說下 GPT 龐大的家族系譜 ) 已經詳細講過 transformer 的演化過程了,這里還是快速給新來的同學回顧一下 transformer 這個架構到底是什么。

            簡單來說,我們可以將 Transformer 看作一個 “演員”,對這個 “演員” 來說,編碼器就像是演員的記憶,負責將臺詞轉化為一個中間表示(抽象成腦海里我們不知道是什么的東西,也就是演員的理解),而解碼器則像是演員的表演,負責將腦海里的理解轉化成熒幕上的展示。這里面最重要的自注意力機制則充當了演員的專注力,能夠自動調整演員在不同位置的注意力,從而更好地理解所有臺詞,使其在不同的情境中表演得更加自然流暢。

            更具體一點來說,我們可以將 Transformer 看作一個大型 “語言處理工廠”。在這個工廠中,每個工人(編碼器)都負責處理輸入序列中的一個位置(比如說一個字),對其進行加工和轉換,然后將其傳遞給下一個工人(編碼器)。每個工人都有一份詳細的工作說明書(自注意力機制),其中詳細描述了如何處理當前位置的輸入以及如何與前面的位置建立關聯。在這個工廠中,每個工人都可以同時處理自己的任務,因此整個工廠可以高效地處理大量的輸入數據。

            Transformer 一登場,直接因為其強大的實力和兩個爭氣的兒子(BERT 和 GPT)毫無懸念的奪下皇位。BERT (Bidirectional Encoder Representations from Transformers) [1] 繼承了 Transformer 的 Encoder 部分,贏得了前半程比賽,但是因為其限制性,在通用性上輸給了 GPT。老實的 GPT (Generative Pre-trained Transformer)[7-10] 繼承了 Decoder 部分,老老實實從頭學起,學習人類的交流方式,最終在后半程實現了了反超。

            當然,Transformer 的野心顯然不止于此,”Attention is all you need”,指的并不只是 NLP 領域。在介紹 GPT 和 BERT 之間的恩怨情仇之前,先看看他們老當益壯的父親都做了些什么吧。

            新族譜 - 諸侯林立

            在了解了 Transformer 的機制之后,我們可以來看看在 Transformer 的強力發展下,Transformer 世家現在發展到什么程度了(新族譜)。從前面的 “演員” 例子可以看出,Transformer 代表了一種符合人類邏輯的學習方式,因此它不僅可以處理文字,還可以處理圖像。圖 2 總結了 Transformer 世家強大的家族背景。除了讓 GPT 和 BERT 在最開始的 NLP(自然語言處理)領域繼續開疆裂土外,Transformer 還開始涉足計算機視覺領域。它的小兒子(谷歌提出的 ViT 等)也在這個領域發光發熱。2021 年,Vision Transformer 迎來了大爆發,一大批基于 Vision Transformer 的工作席卷了計算機視覺任務。自然而然地,作為一個世家,Transformer 家族總會互通有無,連接文本和圖像(AI 作畫)的 CLIP 應運而生。2022 年底,Stable Diffusion 在 ChatGPT 之前風光無限。除此之外,CLIP 還為 Transformer 世家打開了多模態的新大門。除了文字和圖像,文字是否也能做音樂,是否也能畫圖?多模態和多任務 Transformer 也應運而生。總之,每個領域都是一個諸侯,一個 NLP 領域白手起家的 Transformer,在努力發展后成了可以分封諸侯的 “周王”。

            諸侯林立,當是盛世。

            圖 4. Transformer 世家日益繁盛的家族族譜

            牛刀小試 - Vision Transformer [12]

            在說 GPT 之前,還是要先說說 Transformer 做出的第一個大膽嘗試 - 那就是讓小兒子去摻和 CV 領域。先看看小兒子生平:

            其父親 Transformer 出生于 2017 年一篇叫做 Attention is All You Need 的論文中。

            2019 年,Google 提出了一種 Vision Transformer(ViT)的架構,可以直接處理圖像,而不需要使用卷積層(CNN)。論文題目一如既往的直白:“An image is worth 16x16 words”(一張圖片就是 16*16 個詞)。如圖 5 所示,它的基本思想是把輸入的圖像分成一系列的小塊,每個小塊可以理解成過去處理文章時候的一個文字,然后把這些小塊轉換成向量,就像在普通的 Transformer 中處理文字一樣。如果說在自然語言處理(NLP)領域,Transformer 的注意力機制試圖捕捉文本中不同單詞之間的關系,那么在計算機視覺(CV)領域,ViT 則試圖捕捉圖像中不同部分之間的關系。

            圖 5. ViT 如何處理圖片(source: Are Transformers better than CNN’s at Image Recognition? | by Arjun Sarkar | Towards Data Science)

            在那之后,各種基于 Transformer 的模型層出不窮,而且在相應的任務上都取得了超越 CNN 的成績。那 Transformer 的優勢是什么呢,我們先回到電影的例子上,看看 Transformer 和 CNN 的區別:

            想象你是一位導演,要拍攝一部電影,你需要給演員安排好位置,把不同的元素放在合適的位置上,比如說,將演員放在適當的背景下,使用合適的光線,使整個畫面看起來和諧美觀。對于 CNN 來說,它像是一個專業的攝影師,會逐像素地拍攝每一幀畫面,然后從中提取出一些邊緣、紋理等低層次特征。然后,它將這些特征組合起來,形成更高層次的特征,例如人臉、動作等,最終得到一幀畫面。隨著電影的進行,CNN 會不斷重復這個過程,直到完成整部電影的拍攝。

            而對于 ViT 來說,它像是一個藝術指導,會把整個畫面看作是一個整體,考慮到背景、光線、顏色等因素,為每個演員分配合適的位置和角度,創造出一個完美的畫面。然后,ViT 會把這些信息匯總成一個向量,并使用多層感知器對它們進行處理,最終得到一幀畫面。隨著電影的進行,ViT 會不斷重復這個過程,直到完成整部電影的創作。

            回到圖像處理任務上,假設我們有一張 224x224 像素的貓的圖片,我們想要用一個神經網絡對它進行分類。如果我們使用傳統的卷積神經網絡,它可能會采用多個卷積層和池化層來逐漸縮小圖像的大小,最終得到一個較小的特征向量,然后通過全連接層進行分類。這種方法的問題是,在卷積和池化的過程中,我們會逐漸丟失圖像中的信息,因為我們不能同時考慮所有像素點之間的關系。此外,由于卷積和池化層的順序限制,我們無法進行全局的信息交互。相比之下,如果我們使用 Transformer 和 self-attention 機制來處理這個圖像,我們可以直接將整個圖像視為一個序列,并對它進行 self-attention 計算。這種方法不會丟失任何像素點之間的關系,并且可以進行全局的信息交互。

            此外,由于 self-attention 計算是可并行化的,因此我們可以同時處理整個圖像,大大加快了計算速度。舉個例子,假設我們有一個句子:“I like to eat ice cream”, 其中包含 6 個單詞。現在假設我們正在使用一個基于自注意力機制的模型來理解這個句子,Transformer 可以:

            最小化每層的總計算復雜度:基于自注意力機制的模型中,我們只需要計算每個單詞與所有其他單詞之間的注意力權重,這樣每一層的計算量只取決于輸入長度而不是隱藏層的大小。在這個例子中,輸入長度為 6 個單詞,因此每一層的計算復雜度只取決于這 6 個單詞的數量。

            最大化可并行化的計算量:基于自注意力機制的模型可以同時計算每個單詞與其他所有單詞之間的注意力權重,因此計算可以高度并行化,從而加速模型的訓練和推斷。

            然而,ViT 需要大規模數據集和高分辨率圖像才能發揮其全部潛力 ,因此,雖然 Vision Transformers 在 CV 領域表現不凡,CNN 在計算機視覺領域的應用和研究仍然更為廣泛,并且在目標檢測和分割等任務中具有優勢 。

            但是沒關系,你做的已經夠好了,你父親涉足 CV 的初衷也不是為了取代 CNN,他有更宏大的目標。

            這個目標的基礎,就是前面我說的 “此外”。

            初露崢嶸 - CLIP [13]

            前面我說過,Transformer 還有更宏大的目標,那就是 “大模型”,超級超級大的模型。除了我在前一篇文章里說的 transformer 可以更好地獲得全局信息外,更小的計算復雜度和更好的并行度成為了支撐大模型的基礎。

            2021 年,除了 Vision Transformer 有了長足進展以外,GPT 那一支還在緊鑼密鼓的籌備 GPT3.5,閑不下來的勞模 Transformer 又引領了一個新的高潮 —— 連結文本和圖像。這個高潮也為 “大模型” 計劃打響了除 NLP 領域外的第一槍。而此時,Transformer 在視覺任務上的缺點,在這里反而變成了優勢。”ViT 需要大規模數據集和高分辨率圖像才能發揮其全部潛力 “如果換個說法,就是 “ViT 可以處理大規模數據集和高分辨率圖像”。

            老規矩,先說 CLIP 是什么。

            CLIP 的全稱是 Contrastive Language-Image Pre-Training,很明顯其基本思想就是傳統 CV 領域里的對比學習 (Contrastive learning)。當我們學習新知識時,我們會閱讀不同的書籍和文章,獲取大量的信息。但是,我們并不是只記住了每個書籍或文章中的所有單詞和句子。相反,我們會試圖找到這些信息之間的相似性和區別。例如,我們可能會注意到在不同的書中,某個主題的描述方式和關鍵概念的表述方式可能會有所不同,但它們所描述的概念本質上是相同的。這種尋找相似性和區別的方式就是對比學習的基本思想之一。我們可以將每本書或文章看作不同的樣本,而相同主題的書籍或文章可以被視為來自同一類別的不同實例。在對比學習中,我們會訓練模型來學習如何區分這些不同類別的樣本,以此來學習它們的相似性和區別。

            接下來更學術一點,假設你想訓練一個模型來識別汽車品牌。你可以有一組帶標簽的汽車圖像,每個圖像都有一個品牌標簽,例如 “奔馳”、“寶馬”、“奧迪” 等等。在傳統的監督學習中,您可以將圖像和品牌標簽一起輸入模型,并讓模型學習如何預測正確的品牌標簽。

            但在對比學習中,你可以使用未標記的圖像來訓練模型。假設你有一組未標記的汽車圖像,你可以將這些圖像分為兩組:正樣本和負樣本。正樣本是同一品牌的不同角度的圖像,而負樣本是不同品牌的圖像。接下來,就可以使用對比學習來訓練模型,以便將同一品牌的正樣本彼此靠近,而將不同品牌的負樣本彼此遠離。這樣,模型可以學會從圖像中提取品牌特定的特征,而不必明確地告訴它每個圖像的品牌標簽。

            很明顯,這是一個自監督學習模型,CLIP 也是一個類似的自監督學習模型,只不過它的目標是將語言和圖像聯系起來,從而使計算機能夠理解文本和圖像之間的關系。

            想象你正在學習一組詞匯表,其中每個單詞都有其定義和相應的圖像。對于每個單詞和其對應的圖像,你可以將它們視為一對(pair)。你的任務是找出這些單詞和圖像之間的相互關系,即哪些單詞與哪些圖像匹配,哪些不匹配。

            如圖 6 所示,對于對比學習算法而言,這些單詞和圖像對就是所謂的 “anchor”(錨定樣本)和 “positive”(正樣本)。“anchor” 指的是我們想要學習的對象,而 “positive” 則是與 “anchor” 匹配的樣本。與之相對的是 “negative”(負樣本),即與 “anchor” 不匹配的樣本。

            在對比學習中,我們將 “anchor” 和 “positive” 組成一對,并嘗試將它們區分開來。同時,我們也會將 “anchor” 和 “negative” 組成一對,并嘗試將它們區分開來。這個過程可以理解為是在尋找 “anchor” 和 “positive” 之間的相似性,以及在排除 “anchor” 和 “negative” 之間的相似性。

            圖 6. 對比學習(Contrastive Learning)圖示 [14]。Anchor 就是原始圖像,positives 一般是經過裁切、旋轉后的原始圖像,或是已知的相同類別的圖像,negatives 可以被簡單粗暴的定義為未知的圖像(有可能是同一類別),或者是已知的不同類別的圖像。

            為了達到這個目標,CLIP 首先對大量的圖像和文本進行預訓練,然后使用預訓練的模型進行下游任務,例如分類、檢索和生成等。CLIP 模型采用了一種新的自監督學習方法,即同時處理文本和圖像,通過訓練來學習如何將它們聯系起來。它在文本和圖像之間共享注意力機制,并使用一組簡單的可調參數來學習這個映射。它用的是基于 transformer 的文本編碼器和基于 CNN 的圖像編碼器,然后計算圖像和文本嵌入之間的相似度。CLIP 通過使用對比學習目標來學習關聯圖像和文本,該目標最大化數據中存在的圖像 - 文本對之間的一致性,并最小化隨機采樣的圖像 - 文本對之間的一致性。

            圖 7. CLIP 圖示 [13]。相比圖 6,可以簡單理解成圖 6 中的 positive 和 negative 都是文字了。

            舉個例子,如果我們想用 CLIP 來識別一張圖片是否是 "紅色的沙灘",我們可以輸入這個文本描述和一張圖片,CLIP 將生成一個向量對來表示它們的聯系。如果這個向量對的距離很小,那么就說明這張圖片可能是 "紅色的沙灘",反之則不是。通過這種方法,CLIP 可以實現圖像分類和圖像搜索等任務。

            回到全稱,CLIP 的最后一個詞是 pretraining,所以其本質還是預訓練模型,但是它可以用于涉及匹配圖像和文本的各種下游任務,例如圖像分類、零樣本學習和圖像描述生成等。例如,CLIP 可用于將圖像分類為自然語言標簽給出的類別,例如 “狗的照片” 或 “風景畫”。CLIP 還可用于通過使用以 CLIP 提取的圖像特征為條件的語言模型來為圖像生成說明文字。此外,CLIP 可用于通過使用以 CLIP 提取的文本特征為條件的生成模型從文本生成圖像。

            DALL-E & Stable Diffusion

            在 CLIP 的幫助下,一個新的諸侯崛起了 - 他叫 AIGC(AI generated content)。其實 ChatGPT 本質上也是 AIGC 的一種,但是在這個小節,我們主要說的是 AI 作畫。先來看看 AI 作畫這個小家族的發展史:

            2021.01,OpenAI 發布 DALL-E [15](AI 作畫軟件),它改進了 GPT-3 從而讓 GPT-3 生成圖像,而不是文本 (Image Transformer Network)

            幾乎同時(2021.01),OpenAI 發布 CLIP [13]

            2021.05,Google Brain 和 DeepMind 發布 Stable diffusion [17],并持續迭代新版本。它采用 frozen CLIP 文本編碼器來根據文本提示調整模型。Stable diffusion 將圖像生成過程分解為運行時的 “擴散”(diffusion)過程。從僅有的噪聲開始,它逐漸修正圖像,直到沒有任何噪聲,讓其更接近提供的文本描述。

            2022.04,DALL-E-2 [16] 發布。它可以根據自然語言的描述創建逼真的圖像和藝術品。DALL-E-2 采用由先驗和解碼器組成的兩部分模型。先驗是一個 GPT-3 模型,根據文本提示生成 CLIP 圖像嵌入。解碼器是一個擴散模型,根據 CLIP 嵌入生成圖像。DALL-E-2 還可以進行 outpainting, inpainting,以及對現有圖像的變化。

            這個家族的脈絡可見一斑,大哥 CLIP 連結了圖像和文本,其雙胞胎兄弟 DALL-E 順勢提出了文本到圖像的任務。為了改進這個任務,一個遠房表親 Stable diffusion 改進了生成圖像的算法,最后 DALL-E-2 取長補短,結合了 GPT-3,CLIP 以及 stable diffusion 的優勢,完成了自己的 AI 作畫系統。

            對于最開始的 DALL-E, 假設你是一位畫家,而 DALL-E 就是你的工具箱。在這個比喻中,工具箱中有兩個主要的工具:一個是畫筆,另一個是調色板。

            畫筆是 DALL-E 的解碼器,它可以將給定的文字描述轉換為一張圖像。調色板則是 DALL-E 的編碼器,它可以將任意的文字描述轉化為一個特征向量。

            當你得到一句文字描述時,你會首先用調色板來生成一個特征向量。然后你就可以拿起畫筆,并使用特征向量來生成一張與描述相符的圖像。當你需要細節時,你會使用更精細的畫筆,反之則會使用更粗糙的畫筆。

            與畫家不同的是,DALL-E 使用的是神經網絡,而不是畫筆和調色板。這個神經網絡使用了一種名為 Image Transformer Network 的結構。在生成圖像時,DALL-E 使用先前提到的 GPT-3 模型生成與文本描述相對應的 CLIP 圖像嵌入。然后,DALL-E 使用束搜索算法生成一系列可能的圖像,這些圖像與輸入的文本描述相匹配,并將它們送入一個解碼器來生成最終的圖像。這種嵌入向量是通過使用稱為對比學習的技術來訓練的,該技術可以將相似的圖像和文本嵌入到相鄰的空間中,以便更容易地將它們組合起來。注意,這里 DALLE 并沒有直接包含 CLIP,但是它使用了 CLIP 的文本和圖像嵌入來訓練變換器和 VAE。

            至于在生成圖像過程中使用的束搜索算法,實際上是一種貪心搜索算法,它可以在有限的候選集合中找到最優的序列。束搜索的基本思想是,每次擴展當前序列時,只保留概率最高的 k 個候選(k 稱為束寬度),并舍棄其他低概率的候選。這樣可以減少搜索空間,提高效率和準確度。DALLE 中使用束搜索生成圖像的具體步驟如下:

            將輸入的文本描述編碼為一個向量,并作為變換器模型的初始輸入。

            從一個特殊的開始符號開始,逐像素地生成圖像序列。每次生成一個像素時,都用變換器模型預測下一個像素的概率分布,并從中選擇概率最高的 k 個候選像素,作為當前序列的延伸。

            對每個延伸后的序列,計算其累積概率,并保留概率最高的 k 個序列,舍棄其他序列。

            重復步驟 2 和 3,直到生成一個特殊的結束符號或達到最大長度限制。

            返回概率最高的序列作為最終生成的圖像。

            同樣一幅畫,stable diffusion 是怎么畫的呢?當我們想要畫一幅藝術作品時,通常需要一個良好的構圖和一些具體的元素來構建。Stable diffusion 就是這樣一種生成圖像的方法,它將圖像生成的過程分成了兩個部分:擴散過程和重構過程。擴散過程可以想象成是將一堆零散的畫筆、顏料和畫板混合在一起,慢慢地在畫板上創造出越來越多的元素。這個過程中,我們并不知道最終畫面會是什么樣子,也無法確定每個元素最終的位置。但是,我們可以逐漸添加和調整這些元素,直到整幅畫完成。然后,輸入的文本描述就像是我們對于要畫的作品的大致描述,通過束搜索算法來在文本描述和生成的圖像之間進行精細的匹配。這個過程就像是我們在不斷地修改和調整元素,讓它們更好地匹配我們想要的畫面。最終,生成的圖像將與文本描述緊密匹配,呈現出我們想象中的藝術作品。

            如圖 8 所示,這里的擴散模型是一種生成模型,它通過逐漸向數據添加噪聲,然后逆向恢復原始數據的過程來學習數據的分布。stable diffusion 使用了一個預訓練的變分自編碼器(VAE)來將圖像編碼成低維潛在向量,并使用一個基于變換器的擴散模型來從潛在向量生成圖像。stable diffusion 還使用了一個凍結的 CLIP 文本編碼器來將文本提示轉換成圖像嵌入,從而對擴散模型進行條件化。

            圖 8. Stable Diffusion 過程。首先是上面的箭頭,一張圖片被不斷加入噪聲,最后變成純噪聲圖,然后走下面的箭頭,逐漸消除噪聲,然后重建最開始的圖片。(圖源:From DALL?E to Stable Diffusion: how do text-to-image generation models work? | Tryolabs)

            值得注意的是,Stable Diffusion 中的擴散過程是一種隨機的過程,因此每次生成的圖像都會有所不同,即使是相同的文本描述。這種隨機性使得生成的圖像更加多樣化,同時也增加了算法的不確定性。為了讓生成的圖像更加穩定,Stable Diffusion 使用了一些技巧,如在擴散過程中加入逐步增加的噪聲,以及使用多次重構過程來進一步提高圖像質量。

            Stable Diffusion 在 DALL-E 的基礎上有了很大的進步:

            分辨率:stable diffusion 可以生成高達 1024×1024 像素的圖像,而 DALL-E 目前只能生成 256×256 像素的圖像。

            速度:stable diffusion 需要進行多次迭代才能生成圖像,因此速度較慢。DALL-E 則可以一次性生成圖像,因此速度較快。

            靈活性:stable diffusion 可以對現有的圖像進行擴畫、修補和變化,而 DALL-E 只能從文本提示生成圖像。

            真實性:stable diffusion 可以生成更真實和細致的圖像,尤其是在復雜和抽象的描述下。DALL-E 則可能生成一些不符合物理規律或常識的圖像。

            這也是為什么 DALL-E-2 也將擴散模型加入到其模型中去了。

            潛伏的強者 - GPT3.5 [18] & Instruct GPT [19]

            在其他諸侯把改革開展的如火如荼的時候,GPT 這一支也一直在默默努力著。開頭說過,GPT-3 剛發布的時候已經有很強的能力了,但是使用方式不那么 “非技術人員友好”,所以掀起的浪花都是在技術界,這些本就不算很熱烈的浪花,又因為它不低的收費而日益消散。

            Transformer 十分不滿意,GPT 想了想,那就改革!

            第一個響應改革號召,邁出第一步的是 GPT 3.5:

            “我比較笨,想不出什么好辦法改革,那就先把基礎打牢吧。”

            于是,GPT3.5 基于 GPT-3 ,使用了一種叫做 Text+Code 的訓練數據,即在文本數據的基礎上,增加了一些編程代碼的數據。簡單來說,就是用了更大的數據集。這樣可以使模型更好地理解和生成代碼,提高模型的多樣性和創造性。Text+Code 是一種基于文本和代碼的訓練數據,它是由 OpenAI 從網上收集并整理的。它包括兩部分:文本和代碼。文本是一些用自然語言描述的內容,如文章、評論、對話等。代碼是一些用編程語言編寫的內容,如 Python、Java、HTML 等。

            Text+Code 訓練數據可以使模型更好地理解和生成代碼,提高模型的多樣性和創造性。例如,在編程任務中,模型可以根據文本描述生成相應的代碼,并且代碼具有較高的正確性和可讀性。在內容生成任務中,模型可以根據代碼描述生成相應的文本,并且文本具有較高的一致性和有趣性。Text+Code 訓練數據也可以使模型更好地處理多語言,多模態,多領域的數據和任務。例如,在語言翻譯任務中,模型可以根據不同語言之間的對應關系,進行準確和流暢的翻譯。在圖像生成任務中,模型可以根據文本或代碼描述,生成相應的圖像,并且圖像具有較高的清晰度和逼真度。

            第二個響應號召的是 Instruct GPT,他發現了新的問題:

            “要想跟人類打成一片,我們就需要更有效的聽取他們的意見。”

            于是,出現了大名鼎鼎的新晉外援,也就是 RLHF 訓練策略。RLHF 是一種基于強化學習的訓練策略,它的全稱是 Reinforcement Learning from Human Feedback。它的核心思想是在訓練過程中,給模型提供一些指令,并根據模型的輸出給予獎勵或懲罰。這樣可以使模型更好地遵循指令,提高模型的可控性和可信度。其實 GPT-3.5 也有人類反饋(Human Feedback),那加入了強化學習(Reinforcement learning)之后,發生了什么改變呢?

            GPT3.5 的人類反饋是直接用于微調模型的參數,而 Instruct GPT 的 RLHF 是用于訓練一個獎勵模型,然后用這個獎勵模型來指導模型的行為。

            GPT3.5 的人類反饋是基于單個輸出的評價,而 Instruct GPT 的 RLHF 是基于多個輸出之間的比較。

            GPT3.5 的人類反饋只進行了一次,而 Instruct GPT 的 RLHF 可以進行多次迭代,不斷收集新的比較數據,訓練新的獎勵模型,優化新的策略。

            也就是說,更少的人力投入,但是給模型帶來了更大的收益。

            圖 9. RLHF 過程(圖源:GPT-4 (openai.com))

            如圖 9 所示,RLHF 訓練策略分為兩個階段:預訓練和微調。在預訓練階段,模型使用和 GPT-3 相同的數據集進行無監督學習,學習語言的基本知識和規律。在微調階段,模型使用一些人工標注的數據進行強化學習,學習如何根據指令生成合適的輸出。

            人工標注的數據包括兩部分:指令和反饋。指令是一些用自然語言描述的任務,如 “寫一首關于春天的詩” 或 “給我一個關于狗的笑話”。反饋是一些用數字表示的評分,如 “1” 表示很差,“5” 表示很好。反饋是由人類標注者根據模型的輸出給出的,反映了模型輸出的質量和合理性。

            在微調階段,模型使用一個叫做 Actor-Critic 的算法進行強化學習。Actor-Critic 算法包括兩個部分:Actor 和 Critic。Actor 是一個生成器,它根據指令生成輸出。Critic 是一個評估器,它根據反饋評估輸出的獎勵值。Actor 和 Critic 之間相互協作和競爭,不斷地更新自己的參數,以提高獎勵值。

            RLHF 訓練策略可以使模型更好地遵循指令,提高模型的可控性和可信度。例如,在寫作任務中,模型可以根據指令生成不同風格和主題的文本,并且文本具有較高的連貫性和邏輯性。在對話任務中,模型可以根據指令生成不同情感和語氣的回復,并且回復具有較高的相關性和禮貌性。

            終于,經過前輩們的改革積累,GPT 家族里更加靈活的小兒子 ChatGPT 覺得是時候了,順勢基于 Instruct GPT 推出了更貼合人類交流方式的對話模式,直接在人類社會掀起巨大的浪花(幾億用戶),而且它又是免費的,GPT 家族經過幾年的蟄伏,終于一鳴驚人,成為 Transformer 世家最受寵的皇子,直接在繼位之爭上一舉奪魁,成為太子。

            與此同時,對于 ChatGPT 來說,太子還不是全部,ChatGPT 繼承了 Transformer 巨大的野心:

            “現在的局面太亂了,強大的王朝不需要這么多諸侯,是時候統一他們了。“

            統一諸侯 – 大模型時代

            GPT-4:” 這個時代,是大模型的時代,我說的。”(bushi)

            現在的 ChatGPT 已經是基于 GPT-4 的大門面了。GPT-4 因為懼怕于其競爭對手的快速反應,其實大部分技術細節都是封閉的。但是從其功能上,已經看出 GPT 家族統一各諸侯的野心了,除了文字對話以外,GPT-4 也加入了 AI 作圖功能。GPT 家族從過去幾年的蟄伏經驗里悟出了一個道理,大模型即正義,并想將這個道理推廣到各個領域。

            如果深究這個道理背后的底氣,那可能就是大模型訓練的方式吧。GPT-3 是目前最大的語言模型之一,它擁有 1750 億個參數,比其前身 GPT-2 多了 100 倍,比之前最大的同類 NLP 模型要多 10 倍,也可以算是大預言模型的先驅者了。

            所以,我們先來看看 GPT-3 的模型架構和訓練方法是如何實現這樣的規模和性能的:

            分布式訓練:GPT-3 使用了分布式訓練的方法,即將模型和數據分散在多個計算節點上,并通過通信協議進行協調和同步。這樣可以利用多個節點的計算資源和內存空間,加速模型訓練的過程,并支持更大規模的模型和數據。

            GPT-3 使用了約 2000 個 GPU 節點來進行分布式訓練,每個節點有 多塊 GPU,每塊 GPU 有 相同 的顯存。

            GPT-3 使用了兩種分布式訓練的方法:數據并行和模型并行。

            數據并行是指將數據分成多個子集,每個節點處理一個子集,并在每個節點上更新模型的參數,然后在所有節點間同步參數。

            模型并行是指將模型分成多個部分,每個節點處理一個部分,并在每個節點上計算部分的輸出和梯度,然后在所有節點間傳遞輸出和梯度。

            GPT-3 使用了一種混合的數據并行和模型并行的方法,即在每個節點內部使用數據并行,在不同節點之間使用模型并行。這樣可以充分利用 GPU 的計算能力和通信帶寬,同時減少通信開銷和內存占用。

            激活函數檢查點:GPT-3 使用了一種叫做激活函數檢查點的技術,即在模型的前向傳播過程中,只保存部分層的激活函數的值,而不是所有層的值。這樣可以節省顯存空間,因為激活函數的值占用了大部分的顯存。在模型的反向傳播過程中,如果需要用到某些層的激活函數的值,就重新計算它們,而不是從顯存中讀取。這樣可以犧牲一些計算時間來換取更多的顯存空間,從而支持更大規模的模型和批量大小。

            稀疏注意力機制:GPT-3 使用了一種叫做稀疏注意力機制的技術,即在計算自注意力時,只考慮部分輸入序列中的詞,而不是所有詞。這樣可以減少計算量和內存占用,因為自注意力的復雜度和輸入序列的長度成平方關系。GPT-3 使用了一種基于局部窗口和全局塊的稀疏注意力機制,即將輸入序列劃分為多個塊,并且每個塊只與相鄰的幾個塊進行注意力計算,同時每個塊還與一些隨機選擇的全局塊進行注意力計算。這樣可以保證模型既能捕捉局部信息,又能捕捉全局信息,同時也能降低計算復雜度和內存占用。

            看到這里,ChatGPT 眉頭微皺,似乎有些不滿意 GPT-3 的方案:“這還不夠。”

            "大模型確實是當下的趨勢,但是不應該只是為了競爭而盲目追求規模。在訓練大模型之前,我們需要考慮更多的細節和技術挑戰,才能確保其能夠穩定、高效地運行,并產生有用的結果。"

            “首先,選擇合適的訓練超參數和模型初始化非常關鍵。學習率、批量大小、迭代次數等超參數的選擇對模型的收斂速度、穩定性和性能影響重大。而模型初始化則決定了訓練開始前的權重值,會影響到最終結果的質量。這些參數需要根據經驗實驗或理論分析進行仔細調整,以確保模型的最佳表現。”

            “其次,為了獲得高吞吐量并避免瓶頸,我們需要優化訓練過程中的各個環節,比如硬件配置、網絡帶寬、數據加載速度和模型架構等。優化這些環節可以顯著提高模型的處理速度和效率。例如,使用更快的存儲設備或數據格式可以減少數據加載時間;使用更大的批量大小或梯度累積可以減少通信開銷;使用更簡單或更稀疏的模型可以減少計算時間等等。”

            “最后,訓練大模型時可能會遇到各種不穩定和失敗的情況,例如數值錯誤、過擬合、硬件故障、數據質量問題等等。為了避免或恢復這些問題,我們需要密切監控模型的行為和性能,并使用調試工具和技術來識別和修復任何錯誤或缺陷。此外,我們還可以使用各種安全措施和防護機制,如裁剪、正則化、丟棄、噪聲注入、數據過濾、數據增強等等,以提高模型的魯棒性和可靠性。”

            “在這個時代,大模型的確是重要的,但是僅僅是追求規模并不能讓模型產生有用的結果。只有經過深思熟慮的訓練和優化,才能讓大模型真正發揮其潛力,為人類帶來更多的價值。”

            太子說得對。

            沒落的強諸侯 - BERT

            最后,瘦死的駱駝比馬大,雖然 BERT 最近被 GPT 壓過風頭,但畢竟是曾經的強諸侯,在 GPT 勢不可擋的發展下,BERT 依然保留了自己的一份封地。當談及自然語言處理模型的時候,BERT(Bidirectional Encoder Representations from Transformers)一度是非常受歡迎的模型,因為它在很多任務上都表現得非常出色。當它第一次發布時,它幾乎是無人能敵的,甚至比 GPT 更為成功。這是因為 BERT 的設計與 GPT 有著不同的目標和優勢。

            BERT 的目標是將上下文建模的能力推到一個全新的高度,以便更好地支持下游任務,例如文本分類和問答。它通過訓練一個雙向 Transformer 編碼器來實現這個目標。這個編碼器能夠同時考慮輸入序列的左側和右側,從而獲得更好的上下文表示,因此 BERT 能夠對上下文更好地進行建模,提高了模型在下游任務中的表現。

            但是,隨著時間的推移,GPT 系列模型的出現使得 GPT-3 在多項任務上超越了 BERT。一個可能的原因是 GPT 系列的模型在設計上更加專注于生成性任務,比如文本生成和對話系統,而 BERT 則更注重分類和問答任務。此外,GPT 系列模型使用了更大的參數和更多的數據進行訓練,這也使得它們能夠在更廣泛的任務上取得更好的表現。

            當然,BERT 仍然是一個非常有用的模型,特別是對于一些需要對文本進行分類或回答問題的任務。而 GPT 系列的模型則更適合用于生成性任務,例如文本生成和對話系統。總體來說,這兩個模型都有它們獨特的優勢和局限性,我們需要根據具體任務的需求來選擇適合的模型。

            奪嫡之爭 - 來勢洶洶的 Segment Anything Model (SAM) [20]

            前面說過,在大哥 GPT 默默努力的時候,勞模 Transformer 在 CV 領域(ViT)和多模態領域 (CLIP) 都掀起了不小的浪花,但是最終都成為了經驗寶寶,被老父親 Transformer 教給了受寵的太子 GPT,最終成就了 GPT-4 的所謂大一統。

            骨子里流淌著 Transformer 血液的 ViT 和 CLIP 當然很不開心:“王侯將相寧有種乎?大哥不是學我們嗎,我們也可以學他。”

            “但是,他在 NLP 領域太強大了,我們要找個新的戰場。”

            于是,SAM 橫空出世。在官網,他們自己是這么描述的:

            Segment Anything Model (SAM): a new AI model from Meta AI that can "cut out" any object, in any image, with a single click

            簡單來說,我們可以將 SAM 看作一個高效的 “圖像剪輯大師”,它能夠通過各種輸入提示來精確地識別和分割圖像中的各種對象。例如,當我們在圖像中用鼠標點擊一個點時,SAM 會像一個經驗豐富的畫家一樣,自動剪切出該點所在的對象;當我們輸入 “貓” 這個詞時,SAM 就會像一個聰明的偵探一樣,自動找出并剪切出圖像中所有的貓;當我們給 SAM 一個目標檢測框時,SAM 就會像一個熟練的手術醫生一樣,準確地剪切出框內的對象。SAM 的零樣本泛化能力使其成為一個真正的 “通用剪輯大師”。這意味著無論是常見的對象,如汽車、樹木和建筑,還是罕見的對象,如恐龍、外星人和魔法棒,SAM 都可以毫不費力地識別和剪切。這種強大的能力源于其先進的模型設計和龐大的數據集。我從原論文里選了四張很復雜的場景實例(圖 10),說明了 SAM 到底可以做什么。

            圖 10. SAM 的效果實例。圖片里每個顏色的東西你都可以剪輯提取出來,相當于一個高效的 PS 大師(圖像剪輯大師)。

            簡單來說,以前別人跟我們眉飛色舞地提需求的時候,我們總要無奈地問一句,先等一下,你們能提供什么樣的數據?現在不需要了,至少在 CV 領域,已經更貼近非技術人群對 AI 的理解了。

            為了實現上面說的強大能力,我們來看看 ViT 和 CLIP 是如何大聲密謀的:

            ViT: “我雖然之前主要是做圖像分類任務,但我的架構同樣適用于圖像分割。因為我是利用 Transformer 架構將圖像分解成一系列塊然后對其進行并行處理的,如果集成我的優勢,SAM 就可以繼承我并行處理和全局注意力的優勢,從而實現高效的圖像分割。”

            CLIP:“好呀,那我就帶著我聯合訓練的方法入股,基于這個思想,SAM 也可以處理不同類型的輸入提示(問題提示和視覺提示)。”

            于是,SAM 的模型架構成型了 (圖 11),ViT 用來做 image encoder(圖像編碼器),而 CLIP 來編碼 prompt(提示)的信息。想法是好的,具體該怎么做呢 —— 當然是學習大哥啦!

            “我們想要利用預訓練的語言模型來做圖像分割任務,就像用文字提示(prompt)來讓語言模型生成或預測文字一樣。有了 CLIP,我們的提示就可以很豐富了,可以是一些 point (點)、box(框)、mask,還有 Text (文本),它們告訴語言模型要在圖像中分割出什么。我們的目標就是,給定任何提示,都能得到一個有效的分割 mask (分割結果)。有效的 mask 意味著,即使提示有歧義(比如說襯衫還是人),輸出也應該是其中一個對象的合理 mask。這就像大哥 GPT(語言模型)對一個有歧義的提示也能給出一個連貫的回應一樣。我們選擇這個任務,因為它可以讓我們用一種自然的方式來預訓練語言模型,并且通過提示來實現零樣本遷移到不同的分割任務上。”

            圖 11. SAM 模型架構

            至于結果,前面提到的其強大能力已經證實了這個想法的可行性。但是,不得不提的是,雖然 SAM 確實不再需要重新訓練模型,但是像 chatGPT 剛推出時一樣,他還是有一些限制的。在論文的 Limitation 部分,作者頁明確指出了 SAM 的一些局限性和不足,比如在細節、連通性、邊界等方面的缺陷,以及在交互式分割、實時性、文本提示、語義和全景分割等任務上的挑戰,同時也承認了一些領域專用工具的優勢。

            舉個例子,我在 demo 里做了兩個簡單的測試:一個是醫療圖像領域的病灶檢測,因為病灶太小了,很難檢測到;第二個是人像切割,切出來的人像乍看不錯,但是發絲還是不是很自然,仔細看還是能看出來切割痕跡。

            當然,這畢竟是一個很好的開始,這小哥倆創業未半,還在努力,要啥自行車?所以,這場奪嫡的結果如何,還是讓我們拭目以待吧!

            總結

            Transformer 世家的龐大家族顯然不是這一篇文章可以說明的,當談到基于 Transformer 的成果時,我們可以看到這個領域的持續創新:Vision Transformer(ViT)展示了 Transformer 在計算機視覺領域的成功應用,它可以直接處理圖像像素數據,不需要手工特征工程。DALL-E 和 CLIP 則將 Transformer 應用于圖像生成和圖像分類任務,展示了它在視覺語義理解中的優越表現。Stable Diffusion 則提出了一種穩定的擴散過程,可以對概率分布進行建模,這可以應用于圖像分割、生成等任務。這些成果共同揭示出 Transformer 模型的廣泛應用前景,讓我們不得不承認,未來某一天,可能真的”Attention is all you need”。

            總之,我們可以從這些成果中看到人工智能領域持續創新的活力。無論是 GPT 還是 BERT,還是 Vision Transformer、DALL-E、CLIP、Stable diffusion 等,這些成果都代表著人工智能領域的最新進展。

            而大考(ChatGPT)當前,現在的情景大概是這樣的:

            學霸們這學期好好上課,翻開書本就能回想起當時那節課老師說這個知識點時的音容笑貌,甚至開始規劃下學期的學習計劃。

            偽學霸們天天到課,占據前排,打開課本卻是一臉懵逼,開始跟學渣們一起 “一天一本書,一周一學期”,唯一的區別就是課本不是全新的,對課本內容還有一點點記憶,不算是在完全的學習新知識。

            至于真正的學渣們……

            “知識來,知識來,知識從四面發八方來”

            其實我倒覺得,不管是偽學霸還是學渣,都應該在期末考面前保持冷靜,看看這學期講了什么,找學霸們借一下筆記,甚至可以選擇緩考。對學霸們來說,快是水到渠成的。對偽學霸和學渣們來說,快是有害的。

            在人工智能領域的競爭中,持續創新是至關重要的。因此,作為研究員,我們應該密切關注這個領域的最新發展,并且保持謙虛和開放的心態,以促進人工智能領域的不斷進步。

            參考文獻

            [1] Mikolov, Tomas; et al. (2013). "Efficient Estimation of Word Representations in Vector Space". arXiv (https://en.wikipedia.org/wiki/ArXiv_(identifier)):1301.3781 (https://arxiv.org/abs/1301.3781) [cs.CL (https://arxiv.org/archive/cs.CL)].

            [2] Mikolov, Tomas (2013). "Distributed representations of words and phrases and their compositionality". Advances in neural information processing systems.

            [3] Matthew E. Peters, Mark Neumann, Mohit Iyyer, Matt Gardner, Christopher Clark, Kenton Lee, & Luke Zettlemoyer. (2018). Deep contextualized word representations.

            [4] Bahdanau, Dzmitry, Kyunghyun Cho, and Yoshua Bengio. "Neural machine translation by jointly learning to align and translate." arXiv preprint arXiv:1409.0473 (2014).

            [5] Vaswani, Ashish, et al. "Attention is all you need." Advances in neural information processing systems 30 (2017).

            [6] attention 機制及 self-attention (transformer). Accessed at: https://blog.csdn.net/Enjoy_endless/article/details/88679989

            [7] Radford, Alec, et al. "Improving language understanding by generative pre-training." (2018).

            [8] Radford, Alec, et al. "Language models are unsupervised multitask learners." OpenAI blog 1.8 (2019): 9.

            [9] Brown, Tom, et al. "Language models are few-shot learners." Advances in neural information processing systems 33 (2020): 1877-1901.

            [10] GPT-4 (openai.com)

            [11] Devlin, Jacob; Chang, Ming-Wei; Lee, Kenton; Toutanova, Kristina (11 October 2018). "BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding". arXiv:1810.04805v2 [cs.CL].

            [12] Dosovitskiy, Alexey, et al. "An image is worth 16x16 words: Transformers for image recognition at scale." arXiv preprint arXiv:2010.11929 (2020).

            [13] Radford, Alec, et al. "Learning transferable visual models from natural language supervision." International conference on machine learning. PMLR, 2021.

            [14] Zheng, Laura, Yu Shen, and Ming C. Lin. "Exploring Contrastive Learning with Attention for Self-Driving Generalization."

            [15] Reddy, Mr D. Murahari, et al. "Dall-e: Creating images from text." UGC Care Group I Journal 8.14 (2021): 71-75.

            [16] Ramesh, Aditya, et al. "Hierarchical text-conditional image generation with clip latents." arXiv preprint arXiv:2204.06125 (2022).

            [17] Rombach, Robin, et al. "High-resolution image synthesis with latent diffusion models." Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. 2022.

            [18] Chen, Xuanting, et al. "How Robust is GPT-3.5 to Predecessors? A Comprehensive Study on Language Understanding Tasks." arXiv preprint arXiv:2303.00293 (2023).

            [19] Ouyang, Long, et al. "Training language models to follow instructions with human feedback." Advances in Neural Information Processing Systems 35 (2022): 27730-27744.

            分析師介紹:

            本文作者王子嘉,戴爾科技集團首席技術官辦公室人工智能科學家,英國帝國理工學院Al專業畢業,主要研究方向為計算機視覺、3D重建、AIGC等,重點關注在相關領域進行新技術的探索與創新,在新Al技術賦能的數據隱私保護以及AIGC技術在數據管理上的應用等方向上做過很多嘗試與創新。于2019年加入戴爾科技集團,在此期間,已在相關領域發表論文5篇、專利139項。

            關鍵詞:

            免费又黄又爽又猛大片午夜,免费观看成人碰视频公开,大香一本蕉伊线亚洲网,国产精品美女免费视频大全
            • <strike id="44quq"></strike>
              <s id="44quq"><em id="44quq"></em></s>
                    <pre id="44quq"></pre>
                  • 主站蜘蛛池模板: 男人的肌肌捅女人的肌肌| 亚洲校园春色小说| 亚一亚二乱码专区| 可以免费看黄的网站| 美女扒开腿让男人捅| 欧美又粗又大又硬又长又爽视频| 成人a在线观看| 国产日韩av在线播放| 亚洲av无码一区二区三区观看| xxxxwww免费| 色在线免费视频| 最近更新在线中文字幕一页| 在车子颠簸中进了老师的身体 | 欧美日韩三级在线观看| 成人在线免费观看| 国产在线a免费观看| 亚洲小说区图片区另类春色| www.欧美xxx| 激情爆乳一区二区三区| 成人久久精品一区二区三区| 再深点灬舒服灬太大了男小| 久久亚洲中文字幕无码| 亚洲五月丁香综合视频| 欧美视频免费在线| 好硬好湿好爽再深一点视频| 国产a级特黄的片子视频免费| 久久香蕉国产线看观看亚洲片| 黄色三级电影网| 日本一本二本免费播放视频| 国产手机在线播放| 亚洲精品无码国产| www.youjizz.com国产| 污视频网站在线观看| 大伊香蕉精品一区视频在线| 免费观看一级欧美在线视频| 中文字幕日韩国产| 青青草国产免费| 日韩精品人妻系列无码专区免费| 国产精品久久久久9999| 亚洲国产精品福利片在线观看| 欧美极度极品另类|