來源丨晚點LatePost(ID:postlate)作者丨賀乾明編輯丨龔方毅題圖丨Midjourney在電腦上輸入幾個詞,等着在屏幕上看到它們被轉化成圖片,比如山川湖海、鳥獸魚蟲、樓宇院落、人物肖像。不管效果如何,都不是容易的事。因為實現這些前,需要解決計算機視覺和自然語言處理中那些最難的問題:電腦要學會聽懂我們説的話,知道我們想表達什麼,還要知道怎麼把我們的話變成圖畫裏的東西,最後還要儘可能好看。這方面的產品化已經相對成熟,譬如 Stable Diffusion、Midjourney、OpenAI 旗下的 DALL·E 2,以及百度的文心一格。背後的實現算法也大同小異。但上週文心一格畫了一些讓人難以理解的 “錯圖”。例如收到提示詞 “起重機” 後畫了一幅 “仙鶴”,或者把 “鼠標” 畫成 “老鼠” 等。百度用 177 字聲明為其人工智能研發能力辯護,稱是用 “符合行業慣例” 的全球互聯網公開數據訓練自研模型。它回應了有關 “抄襲”“套殼” 的質詢,但沒有説清楚為什麼會出現這些錯誤。
機器畫圖是個聽懂人話然後匹配圖像的過程當你在文本框裏輸入作圖提示語(prompt),可以是幾個詞或一段話,用來形容你想要的作畫主體、背景、風格、尺寸等,然後發給電腦。理論上提示語越精確,作圖效果越驚豔。系統接收到提示語以後,其背後一系列算法、模型便開始工作。第一步是理解人類語言,這得通過 “編碼器” 把文字轉化成一連串的數字、符號或字母,變成這套系統看得懂的語言。因為已經提前學習了很多人畫的東西,所以系統知道不同的東西長什麼樣子,對應什麼樣的文本。此時,它開始匹配最接近提示語特徵的圖像。比如貓有尖尖的耳朵,狗有長長的舌頭,花有漂亮的顏色等。接着它開始畫圖。先畫出一張(或一組)很模糊的圖片,有點像在霧裏看東西一樣。再過一會兒,畫中主體的輪廓、色彩以及畫作背景慢慢清晰。這是個不斷地檢查圖片和文字是否匹配的過程,如果不匹配,它就會改變圖片,讓它更接近文字的意思。最後,它可能會畫出一張很清晰和漂亮的圖片。
文生圖應用生成圖片的過程
圖源:Midjourney
這裏的每一個環節都需要結合大量數據地反覆訓練。即便如此,機器也可能不理解提示語的含義,從而畫出奇奇怪怪或者壓根不合你意思的圖片。各家產品都依賴 Google 和 OpenAI 搭建的基礎設施這一輪人工智能根據文本提示語畫圖的爆發點,是 OpenAI 在 2022 年 4 月發佈 DALL·E 2,它們展示了一系列新模型生成的作品,比如宇航員騎馬、泰迪熊在時代廣場上玩滑板,將現實世界中幾乎不可能搭配在一起的元素巧妙地融合在一起。教機器畫圖的嘗試則更早啓動。2015 年起,許多科學家試着通過一種稱為 “對抗生成網絡” 的技術,讓電腦學習如何生成圖片。其原理是用大量同類的圖片,比如人臉,訓練模型,讓它學習一個人的面部都有什麼特徵,然後讓一個模型負責生成人臉圖片,另一個模型負責鑑定,符合要求後才算完成。經過多年迭代,通過這種方法訓練出來的圖片已經以假亂真。但它侷限也很明顯,教它認識什麼,就只會畫什麼 —— 用人臉數據訓練,它只能隨機生成人臉 —— 無法融入其它元素。2017 年 Google 發佈的 Transformer 架構極大程度地拔高了電腦理解文字的能力,後來成為諸多大語言模型的底層技術,如 OpenAI 的 ChatGPT、GPT-4 等。2020 年,Google 開始在圖像處理領域試驗 Transformer 架構,開啓視覺領域的大模型研究。藉助 Google Transformer 架構的學習能力,OpenAI 在 2021 年帶來文字生成圖片領域的關鍵突破。它們訓練了超過 4 億個圖文對,實證經過大量數據訓練後人工智能模型,既可以根據文本提示較精確地找出圖片,反過來它也能看懂圖片。OpenAI 將這一研究成果取名 CLIP。今天我們討論的幾乎所有文生圖產品,包括 DALL·E 2(OpenAI 研發)、Midjourney、文心一格,要麼直接用、要麼借鑑 CLIP 的技術來理解語義和圖像之間的關係,最後通過 “擴散模型” 生成圖片。如果把 “擴散” 想象成一種畫畫的方法,它是這樣的:首先,你在一張白紙上隨便塗滿一些顏色,這樣就得到了一張全是噪聲的圖片。噪聲就是一些沒有意義的顏色點,看起來很亂。然後,你開始用橡皮擦擦掉一些顏色,讓圖片變得稍微清晰一點。你要按照你想畫的東西的形狀和位置來擦,比如你想畫一個蘋果,就要在中間留下一個圓形。接着,你繼續用橡皮擦擦掉更多的顏色,讓圖片變得更清晰一點。你要按照你想畫的東西的細節和特徵來擦,比如你想畫一個紅色的蘋果,就要在圓形裏面留下紅色。最後,你重複這個過程很多次,直到你覺得圖片已經很完美了。這樣就完成了一張根據你想畫的東西生成的圖片。訓練數據質量和作圖 “技法” 都很重要機器從大量帶有文字解釋的圖片中不斷學習,才能較準確地把文本和圖像關聯起來,通常需要經過上億甚至數十億的 “圖文對” 的訓練。每一個產品化的文生圖應用都經歷了這一過程。由於實現原理大同小異,區別不同產品的關鍵,成了訓練大模型的數據質量和生成模型的調教策略。百度文心一格的大模型 ERNIE-ViLG 公開於 2021 年,其模型訓練的基礎方法和同行近似,去年 10 月更新到了 2.0 版本。據其論文介紹,ERNIE-ViLG 訓練數據集一共有 1.7 億個圖文對,其中一部分是百度的中文數據集,還有一部分是基於公開英文數據集的中譯版(經百度機器翻譯)。百度沒有説明不同數據集的佔比。這就導致百度的大模型在沒有上下文的情況下誤判提示詞的含義。比如 Mouse 既是鼠標也是老鼠,BUS 既是總線也是巴士, Musk 既是馬斯克也是麝香。由於文心一格學習了大量的機翻英譯中圖文對,所以當接收到 “總線” 或者 “巴士” 的中文提示語,可能都會指向英文數據集中 “BUS” 對應的圖片。Midjourney 早期訓練數據集和百度的一樣,但前者既沒有機器翻譯造成的誤差,同時自去年 11 月起即着手清理數據,刪除其中模糊、帶水印和邊框的圖片,以重新訓練圖像生成模型。他們還花了大量資源和精力訓練生成模型。Midjourney 創始人大衞·霍爾茲(David Holz)説,大多數團隊只想讓機器生成寫實的圖像,比如輸入 “狗”,它會生成一張狗的圖片,而他們自己想做的是 “弄清楚人們真正想要的是什麼”,讓機器學會什麼樣的圖像有美感和創造力。
Midjourney 的進化
V2-V5 四個引擎下生成的“教皇打碟”
為此 Midjourney 先花大量的時間給模型生成的圖像評分反饋,持續調整模型,隨着去年 7 月開放給普通用户,得以進一步藉助用户反饋讓模型學會審美。霍爾茲説 “隨着時間的推移,用户的美感會融入系統”。百度也在生成的環節投入了不少精力。根據他們發佈的論文,百度的研究人員在生成圖片時,針對不同的步驟,設置了不同的強化方式,儘可能提升生成效果。論文稱在圖像細節和質量方面的測試中,百度文心一格的模型,明顯優於現有的模型,比如 DALL·E 2。但對於人工智能應用來説,算法決定它的上限,而數據決定它離上限有多遠。一位百度人士稱,他們已經開始清理數據、迭代模型。最新版本的文心一格已經分得清楚老鼠是老鼠,鼠標是鼠標。其他的產品也在飛速迭代,Midjourney 的最新版本基本攻克圖像生成模型長期存在的問題 —— 畫不出真實的手。找靠譜商機,關注創業邦視頻號!