機器學習專家 - Lewis Tunstall
🤗 歡迎來到機器學習專家——Lewis Tunstall
嗨,朋友們!歡迎來到機器學習專家。我是主持人Britney Muller,今天的嘉賓是Lewis Tunstall。Lewis是Hugging Face的機器學習工程師,他致力於應用Transformers來自動化業務流程並解決MLOps挑戰。
Lewis曾為初創公司和企業構建NLP、拓撲資料分析和時間序列領域的ML應用。
您將聽到Lewis談論他的新書、Transformer、大規模模型評估、他如何幫助ML工程師最佳化以實現更快的延遲和更高的吞吐量等等。
在之前的人生中,Lewis是一名理論物理學家,工作之餘喜歡彈吉他、越野跑,併為開源專案做貢獻。
非常高興向大家介紹這一有趣而精彩的節目!以下是我與Lewis Tunstall的對話。
注意:為提供最佳閱讀體驗,文字稿已稍作修改/重新排版。
歡迎,Lewis!非常感謝你從百忙之中抽出時間來和我聊聊你出色的工作!
Lewis:謝謝你,Britney。很高興來到這裡。
好奇你是否能簡單地自我介紹一下,並重點說明是什麼讓你來到了Hugging Face?
Lewis:把我帶到Hugging Face的是Transformers。2018年,我在瑞士的一家初創公司使用Transformers。我的第一個專案是一個問答任務,你可以輸入一些文字並訓練一個模型來嘗試在文字中找到問題的答案。
那時候這個庫叫做:pytorch-pretrained-bert,它是一個非常集中的程式碼庫,包含幾個指令碼,那是我第一次使用Transformers。我完全不知道發生了什麼,所以我讀了最初的《Attention Is All You Need》論文,但我無法理解。於是我開始尋找其他資源來學習。
在這個過程中,Hugging Face的庫發展壯大,包含了許多架構,我開始對為開源軟體做出貢獻感到非常興奮。所以大約在2019年,我萌生了一個有點瘋狂的想法,想寫一本關於Transformers的書,因為我覺得存在一個資訊空白。於是我與我的朋友Leandro(von Werra)合作,我們突然給Thom(Wolf)發了一封不請自來的郵件,說:“嘿,我們要寫一本關於Transformers的書,你感興趣嗎?”我當時沒指望能得到回覆。但出乎我們意料的是,他回覆說:“是的,當然,我們聊聊吧。”大約1.5年後,這就是我們的書:《用Transformers進行自然語言處理》。
這次合作播下了我和Leandro最終加入Hugging Face的種子。我現在在這裡已經大約九個月了。
這太不可思議了。手裡拿著你的書,感覺如何?
Lewis:我得說,我大約一年半前剛為人父,那種感覺有點像我兒子的誕生。你手裡拿著這個你創造的東西。
這是一種相當令人興奮的感覺,而且實際拿著它(與閱讀PDF相比)非常不同。它證實了這本書是真實的,而不是我只是做夢。
沒錯。祝賀你!
想簡單讀一段我非常喜歡的對這本書的推薦語:
“_化繁為簡。這是一本關於NLP、Transformer及其Hugging Face日益壯大的生態系統的稀有而珍貴的書籍。無論這些對你來說是流行詞還是你已經對此有紮實的理解,作者都將以幽默、科學嚴謹和大量的程式碼示例,引導你深入瞭解最酷技術的秘密。從“開箱即用的預訓練”到“從零開始的自定義”模型,以及從效能到缺失標籤問題,作者幾乎解決了機器學習工程師遇到的每一個現實挑戰,並提供了最先進的解決方案,註定這本書將在未來多年內成為該領域的標準。_”——Luca Perrozi 博士,埃森哲資料科學與機器學習副經理。
你能談談你在Transformers庫方面所做的工作嗎?
Lewis:我在Hugging Face之前的工作經歷中,遇到的一大挑戰是如何將這些模型部署到生產環境中;這些模型在引數數量方面非常龐大,這給您的需求增加了許多複雜性。
舉例來說,如果你想構建一個聊天機器人,你需要這個模型非常快速且響應靈敏。而大多數情況下,如果你只是簡單地使用一個現成的模型進行訓練,然後嘗試將其整合到你的應用程式中,這些模型會有點慢。
因此,在過去的幾個月裡,我在Transformers庫上一直致力於提供將這些模型匯出為某種格式的功能,這種格式可以讓您使用我們在Hugging Face擁有的工具,以及開源生態系統中的通用工具,更高效地執行它們。
在某種程度上,Transformers庫的理念是編寫大量的程式碼,以便使用者不必編寫這些程式碼。
在這個特定的例子中,我們談論的是一種名為ONNX的特殊格式。它是一種在工業中使用的特殊格式,您可以在其中擁有一個用PyTorch編寫的模型,但隨後可以將其轉換為TensorFlow,或者在某些非常專用的硬體上執行它。
如果你真正看一下在Transformers庫中實現這種轉換所需的東西,它相當複雜。但我們讓它變得如此簡單,你只需要執行一行程式碼,庫就會為你搞定一切。
所以,這個想法是,這個特定功能可以讓機器學習工程師甚至資料科學家獲取他們的模型,將其轉換為這種格式,然後最佳化它以獲得更低的延遲和更高的吞吐量。
那真是太酷了。Transformer有沒有什麼突出的應用?
Lewis:我認為有幾個。其中一個可能比較感性或個人化,例如我們很多人在OpenAI釋出GPT-2時,這個非常著名的能夠生成文字的語言模型。
OpenAI實際上在他們的部落格文章中提供了一些這個模型建立的論文的例子。其中一篇非常有趣。其中一篇是關於為什麼我們不應該回收或為什麼回收是不好的論文。
然後這個模型寫了一篇很有說服力的關於為什麼回收不好的論文。我和Leandro當時正在一家初創公司工作,我把它打印出來,貼在辦公室的回收箱上方,當作一個笑話。人們都說:“哇,這是誰寫的?”我說:“一個演算法。”
我認為這有點奇怪的人性化,對吧?當我們看到生成的文字時,如果它看起來像我(或另一個人)可能寫的東西,我們會感到更驚訝,而不是像分類文字或更傳統任務那樣發生的其他應用程式。
那真是令人難以置信。我記得他們釋出GPT-2的那些例子時,我最喜歡的一個(幾乎讓我有一種“呼,我們還沒到那一步”的感覺)是一些更不準確的說法,比如“水下火災”。
Lewis:沒錯!
Britney:但是,第二年發生了石油洩漏事故,竟然真的有水下火災!我立刻想起了那段文字,並想,也許人工智慧已經發現了我們尚未意識到的東西?
你和Hugging Face的其他專家一直在Hugging Face課程上努力。這個課程是如何產生的?它未來會走向何方?
Lewis:當我加入Hugging Face時,Sylvian和Lysandre,作為Transformers庫的兩位核心維護者,正在開發一門課程,旨在彌合軟體工程師和對自然語言處理,特別是對正在發生的Transformers革命感興趣的人之間的差距。因此,我與他們以及開源團隊的其他成員合作,建立了一門名為Hugging Face課程的免費課程。這門課程旨在真正幫助人們從對機器學習知之甚少到能夠訓練處理許多不同任務的模型。
而且,我們已經發布了這門課程的兩部分,並計劃在今年釋出第三部分。我對我們目前正在開發的下一部分感到非常興奮,我們將探索Transformer真正強大的不同模態。大多數時候我們認為Transformer用於自然語言處理,但實際上,Transformer的使用範圍已經爆炸式增長,被用於音訊或計算機視覺等領域,我們將詳細研究這些。
你對哪些Transformer應用感到興奮?
Lewis:一個很有趣的應用是,去年我們舉辦了一場活動,讓社群成員利用課程材料構建應用程式。
其中一位參與者建立了一個求職信生成器。這個想法是,當你申請工作時,總會遇到一件煩人的事:你必須寫一封求職信,而且總是要寫得巧妙。所以這個傢伙建立了一個求職信生成器,你提供一些關於你自己的資訊,然後它會根據這些資訊生成求職信。
他實際上用它來申請Hugging Face。
不可能吧?!
Lewis:他正在作為實習生加入“大科學”團隊。所以。我的意思是這真是太酷了,對吧?你學到了一些東西,然後用它來申請,我覺得這太棒了。
你希望在哪些領域看到更多的機器學習應用?
Lewis:所以我個人認為,最讓我興奮的領域是機器學習在自然科學中的應用。這部分是由於我的背景。我以前是個物理學家,但我覺得這裡非常令人興奮的是,在很多領域。例如,在物理學或化學中,你已經知道潛在的定律是什麼,可以用方程寫下來,但事實證明,你感興趣研究的許多問題通常需要模擬。或者它們通常需要非常硬核的超級計算機來理解和解決這些方程。對我來說最令人興奮的事情之一是深度學習與科學家們積累的先驗知識相結合,從而實現以前不可能實現的突破。
我認為一個很好的例子是DeepMind的AlphaFold模型,用於蛋白質結構預測,他們基本上是將Transformer與一些額外資訊結合起來,生成蛋白質預測,我認為以前需要幾個月的時間,現在他們可以在幾天內完成。
所以這以一種非常強大的方式加速了整個領域。我可以想象這些應用最終有望為人類帶來更美好的未來。
你如何看待模型評估領域的發展?
Lewis:這是一個很好的問題。在Hugging Face,我一直致力於構建基礎設施和工具,以實現我們所說的“大規模評估”。你可能知道Hugging Face Hub擁有數千個模型和資料集。但如果你想在這個領域中導航,你可能會問自己:“我對問答感興趣,我想知道這個特定任務上的前10個模型是哪些?”
目前,要找到這個答案很難,不僅在Hub上,在機器學習領域普遍都很難。你通常需要閱讀論文,然後手動測試這些模型,這非常耗時且低效。
因此,我們一直在努力開發一種方法,讓您可以直接透過Hub評估模型和資料集。我們仍在嘗試探索方向。但我希望我們今年晚些時候能展示一些很酷的東西。
這還有另一方面,那就是衡量機器學習進展的一個重要部分是使用基準。這些基準傳統上是一組帶有某些任務的資料集,但可能缺少的是,很多研究人員對我們說:“嘿,我對一個基準有一個很酷的想法,但我真的不想實現所有提交、維護等繁瑣的基礎設施。”
因此,我們一直與一些非常優秀的合作伙伴合作,直接在Hub上託管基準。這樣研究界的人就可以使用我們提供的工具,然後簡化這些模型的評估。
這非常有趣且強大。
Lewis:也許要提一點的是,整個評估問題非常微妙。我們從以前的基準測試中得知,例如SQuAD,一個衡量模型問答能力優劣的著名基準,許多Transformer模型都擅長走捷徑。
嗯,這正是目標,但事實證明,許多Transformer模型非常擅長走捷徑。所以,他們實際做的就是在一個基準上獲得非常高的分數,但這並不一定能轉化為你真正感興趣的問答能力。
而且你還會遇到各種微妙的失敗模式,比如模型可能會給出完全錯誤的答案,或者根本不應該回答。所以目前在研究社群中,關於基準在衡量進展方式中所扮演的角色,以及這些基準如何編碼我們社群的價值觀,正在進行非常積極和激烈的討論。
但是,Hugging Face 還能為社群提供什麼呢?那就是實現價值空間的多樣化,因為傳統上大多數研究論文都來自美國,這是一個偉大的國家,但它只是人類經驗的一小部分,對吧?
機器學習工程師或團隊常犯的錯誤有哪些?
Lewis:我或許可以告訴你我犯過的那些錯誤。
可能可以很好地代表其他事情。所以我認為我剛開始從事這個領域時學到的最大教訓是,在開始時要使用基線模型。我曾經犯過一個常見的錯誤,後來也看到其他初級工程師犯過,那就是追求最花哨的最先進模型。
雖然這可能奏效,但很多時候會發生的是,你會給問題引入大量的複雜性,而且你的最先進模型可能存在一個bug,你卻不知道如何修復它,因為模型太複雜了。在工業界,尤其是在自然語言處理領域,這是一個非常常見的模式,那就是你實際上可以透過正則表示式和線性模型(如邏輯迴歸)走得很遠,這些東西會給你一個好的開始。然後,如果你能構建一個更好的模型,那就太棒了,你應該這樣做,但有一個參考點是很重要的。
然後我認為我在構建許多專案中學到的第二個重要教訓是,你可能會對問題的建模部分有點痴迷,因為那是你做機器學習時最令人興奮的部分,但卻存在一個完整的生態系統。特別是如果你在一個大公司工作,你的應用程式周圍會有一個完整的服務和事物生態系統。
所以,這裡的教訓是,你真的應該嘗試構建一個端到端的東西,甚至可能根本不包含任何機器學習。但它是你可以構建系統其餘部分的基礎,因為你可能會花所有時間訓練一個很棒的模型,然後你發現,哦,糟糕。
它不符合我們應用程式中的需求。然後你就浪費了所有的時間。
這說得好!不要過度設計。我總是努力記住這一點。
Lewis:沒錯。我認為作為人類,尤其是如果你是個書呆子,你會很自然地想找到最有趣的方法來做某事,但大多數時候,簡單才是最好的。
如果可以回到機器學習職業生涯的開端,你會做一件不同的事情是什麼?
Lewis:哦,哇。這可真是個難題。嗯。之所以這個問題很難回答,是因為我現在在Hugging Face工作,這是我一生中做過的最充實的工作。問題是,如果我一開始就改變了什麼,也許我就不會在這裡了,對吧?
從這個意義上講,這是一件很棘手的事情。我想我可能唯一會做一點點不同的事情是,當我開始做資料科學家時,你往往會發展出將業務問題對映到軟體問題或最終的機器學習問題的技能。
這確實是一項很棒的技能。但我後來發現,我真正的熱情在於開源軟體開發。所以,我可能唯一會做不同的事情就是早得多地開始這項工作。因為歸根結底,大多數開源專案都是由社群成員推動的。
所以那可能是我將這條道路縮短為全職工作的一種方式。
我喜歡這個想法,如果你做了不同的選擇,也許你就不會在Hugging Face了。
Lewis:就像蝴蝶效應電影一樣,對吧?你回到過去,然後你卻沒有腿了什麼的。
完全同意。別去破壞美好的事物!
Lewis:沒錯。
快速問答:
對於想要進入AI/機器學習領域的人,最好的建議是什麼?
Lewis:就是開始。就是開始寫程式碼。如果你想做開源,就去貢獻。你總能找到不做的理由,但你必須親自動手。
你最期待看到機器學習應用於哪些行業?
Lewis:正如我之前提到的,我認為自然科學是我最興奮的領域。
這就是我認為最令人興奮的地方。如果我們看看工業方面,我想透過機器學習開發新藥是非常令人興奮的。就我個人而言,如果機器人技術能取得進展,我能最終擁有一個幫我疊衣服的機器人,我會非常高興,因為我真的很討厭做這個,如果有一種自動化方式來處理它,那將是極好的。
人們應該害怕人工智慧掌控世界嗎?
Lewis:也許吧。這很難說,因為我認為我們有理由認為我們可能會創造出相當危險的系統,從某種意義上說,它們可能被用來造成很大的傷害。一個類比或許是武器,你可以在運動中使用它們,比如射箭和射擊,但你也可以用它們來打仗。一個很大的風險可能是,如果我們考慮將這些技術與軍事結合起來,這可能會導致一些棘手的情況。
但是,我並不太擔心《終結者》。我更擔心的是,比如,金融股票市場上一個流氓代理人會搞垮整個世界。
這說得對。
Lewis:抱歉,有點陰暗。
不,這很棒。下一個問題是關於你的疊衣服機器人。什麼時候人工智慧輔助機器人會普及到家家戶戶?
Lewis:老實說,我不知道。我認識的每個從事機器人技術的人都說,這仍然是一項極其困難的任務,因為機器人技術還沒有經歷像自然語言處理和深度學習那樣的革命。但另一方面,你也可以看到去年一些令人興奮的發展,特別是關於將知識從模擬轉移到現實世界的想法。
我想我這輩子有希望擁有一臺疊衣服機器人。
你最近對什麼感興趣?可以是電影、食譜、播客,任何東西。我只是好奇那是什麼,以及對此感興趣的人如何找到它或開始著手?
Lewis:這是一個很棒的問題。對我來說,我喜歡播客。這是我新的閱讀方式,因為我有一個小寶寶,所以我就邊做家務邊聽。
最近有一個播客特別突出,就是DeepMind播客,由英國數學家Hannah Fry製作,她以一種優美的方式講述了DeepMind的工作,更廣泛地來說,深度學習,特別是強化學習,以及它們如何影響世界。聽這個播客感覺就像在聽BBC紀錄片,因為你知道英國人的口音很棒,你會感到非常受啟發,因為她在播客中討論的很多工作與我們在Hugging Face所做的工作有很強的重疊。你會看到一個更宏大的圖景,即努力為更美好的未來鋪平道路。
它引起了強烈的共鳴。我非常喜歡它,因為解釋非常清晰,你可以和你的家人朋友分享,然後說:“嘿,如果你想知道我在做什麼?這個可以給你一個大概的瞭解。”
它還為你提供了對 DeepMind 研究人員及其背景故事的非常有趣的洞察。
我一定會聽一下的。[更新:它是我新的最喜歡的播客之一。:) 謝謝你,Lewis!]
你最喜歡的機器學習論文有哪些?
Lewis:這取決於我們如何衡量,但有一篇論文讓我印象深刻,它是一篇相當古老的論文。它是由隨機森林的建立者Leo Breiman撰寫的。隨機森林是一種非常著名的經典機器學習技術,在工業界常用的表格資料方面非常有用。一年前我不得不在大學裡教授隨機森林。
我當時想,好吧,我來讀這篇2000年代的論文,看看我是否能理解。它清晰明瞭,篇幅很短,非常清楚地解釋了演算法是如何實現的。你基本上可以直接拿著這篇論文,非常容易地實現程式碼。對我來說,這是一個很好的例子,說明了中世紀論文的寫作方式。
而如今,大多數論文都有這種公式化的方法,即:好的,這是一個介紹,這是一個包含一些越來越好的數字的表格,這是一個隨機的相關工作部分。所以,我認為這是其中一篇讓我印象深刻的論文。
但另一篇稍微新一點的論文是DeepMind的又一篇論文,關於使用機器學習技術來證明代數拓撲學等基礎定理,代數拓撲學是抽象數學的一個特殊分支。在我人生的某個階段,我曾研究過這些相關主題。
所以,對我來說,這是一個非常令人興奮的視角,它增強了數學家在試圖縮小他們可能需要搜尋的定理空間時所擁有的知識。我認為這讓我感到驚訝,因為很多時候,我一直對機器學習能否帶來除了顯而易見的預測之外的這種基礎科學洞察持懷疑態度。
但這個例子表明,你實際上可以非常有創造力,並幫助數學家找到新的想法。
生命的意義是什麼?
Lewis:我認為誠實的答案是我不知道。而任何告訴你答案的人可能都在撒謊。這有點諷刺。我不知道,我想作為一個受過訓練的科學家,尤其是物理學家,你形成了一種世界觀,認為這真的沒有什麼更深的意義。
宇宙非常隨機,我想你唯一能從中獲得的,除了非常悲傷之外,就是你自己創造意義,對吧?而大多數時候,這來自於你所做的工作,或者你的家人,或者你的朋友。
但我認為,當你找到一種方法來獲得你自己的意義,並發現你所做的事情確實有趣且有意義時,那才是最好的部分。生活總是起起伏伏,對吧?至少對我個人而言,一直非常有意義的事情通常都是創造。所以,我以前是一名音樂家,那是為他人創作音樂的一種方式,從中獲得了巨大的樂趣。現在我想,我大概在創造程式碼,這是一種創造形式。
絕對如此。Lewis,我覺得這很美!在我們結束之前,你還有什麼想分享或提及的嗎?
Lewis:也許可以買我的書。
太棒了!
Lewis:[展示封面有一隻鸚鵡的書]你知道這隻鸚鵡的故事嗎?
我不這麼認為。
Lewis:所以當O'Reilly告訴你“我們要讓我們的插畫師現在來設計封面”時,這是一個秘密,對吧?
他們不會告訴你邏輯是什麼,你也沒有發言權。所以,基本上,插畫師會提出一個想法,在書的最後一章,我們有一個部分,我們基本上用Python程式碼訓練一個像GPT-2的模型,這是Thom的想法,他決定稱之為“code parrot”(程式碼鸚鵡)。
我想他的想法或玩笑是,社群裡有很多關於Meg Mitchell等人合著的論文《隨機鸚鵡》(Stochastic Parrots)的討論。這個想法是,這些非常強大的語言模型似乎在寫作中表現出像人類一樣的特徵,正如我們之前討論的,但深層原因可能只是某種鸚鵡學舌的行為。
你知道,如果你和一隻鳳頭鸚鵡說話,它會罵你或者開玩笑。這可能不是衡量智力的真正標準,對吧?所以我認為插畫師可能看到了這一點,並決定放一隻鸚鵡,我認為這完美地象徵了這本書。
而且書裡還有Transformer。
我不知道O'Reilly的封面是那樣來的。他們不告訴你,只是從書中提取上下文並創作出來嗎?
Lewis:似乎是這樣。我的意思是,我們真的不知道過程。我只是猜測插畫師可能試圖獲得一個想法,並在書中看到了一些動物。在其中一章中,我們討論了長頸鹿和斑馬等。但是的,我對鸚鵡封面很滿意。
我喜歡它。嗯,它看起來棒極了。很多這類書都相當枯燥和技術性強,而這本讀起來幾乎像一本小說,混合了很棒的實用技術資訊,非常漂亮。
Lewis:謝謝。是的,這是我們後來才意識到的,因為這是我們第一次寫書,我們覺得應該嚴肅一點,對吧?但如果你瞭解我,我從來沒有真正嚴肅對待過任何事情。事後看來,我們應該在書中表現得更傻一點。
我不得不在很多地方控制我的幽默感,但也許有一天會出第二版,那時我們就可以把表情包加進去。
請務必這樣做,我期待著!
Lewis:事實上,書裡確實有一個表情包。我們試圖在編輯眼皮底下把它偷偷塞進去,在書裡放了DOGE狗,我們用一個特殊的視覺Transformer來嘗試分類這個表情包是什麼。
很高興你能把這個加進去。幹得漂亮!期待在下一版中看到更多。非常感謝你今天能來。我真的很感激。我們的聽眾可以在哪裡找到你的線上資料?
Lewis: 我在 Twitter 上相當活躍。你可以透過我的使用者名稱 @_lewtun 找到我。LinkedIn 是一個奇怪的地方,我不太常在那裡。當然,還有 Hugging Face、Hugging Face 論壇和 Discord。
好的。非常感謝你,劉易斯。我們很快再聊!
Lewis: 再見,布蘭妮。再見。
感謝您收聽《機器學習專家》!