吳恩達最新演講:AI Agent驅動下一個創新浪潮_風聞
乌鸦智能说-1小时前
在2024年Snowflake峯會開發者日的Luminary演講中,Landing AI創始人兼CEO吳恩達詳細介紹了AI智能體工作流及其潛力。吳恩達認為,AI智能體工作流可能比下一代基礎模型帶來更大的AI進展。吳恩達在演講中重點講述了AI智能體工作流如何迭代地進行任務,從而比傳統的零樣本提示方式產生更優質的結果。
吳恩達還分享了Landing AI團隊在視覺智能體方面的最新進展,並展示了視覺智能體在複雜任務中的應用,進一步證明了智能體工作流的有效性和廣泛應用前景,並就其侷限性和未來發展方向進行了分析和展望。他呼籲開發者們關注和參與AI智能體技術的發展,共同推動這一激動人心的趨勢。
他表示,雖然目前技術依舊有缺陷,但AI智能體工作流已經開始從一種新奇的“玩具”過渡到真正的實用階段,未來必將為開發者帶來前所未有的高效創新體驗。吳恩達相信,通過開源和社區合作,這些技術將不斷進步,顯著提升開發者的能力。
以下是演講內容目錄:
01 AI智能體工作流
02 視覺智能體
03 視覺智能體當前的技術不足
/ 01 / AI智能體工作流
因為這是一個開發者大會,我想借此機會和大家分享一些我對人工智能體 (AI agent) 感到興奮的事情。實際上,我將分享一些從未公開過的新內容。大家都知道人工智能代理,對吧?我們很多人習慣於使用大型語言模型進行所謂的零樣本提示,這意味着讓它寫一篇文章或者對提示做出回應。這有點像你去找一個人,對他説,請你寫一篇關於某個主題的文章,從頭到尾一次性寫完,不允許使用退格鍵。儘管以這種方式寫作是很困難的——我自己就不能這樣寫——但大型語言模型表現得相當不錯。
相比之下,智能體工作流 (agentic workflow) 的工作流程要迭代得多。你可能會讓一個語言模型先寫一個文章大綱,然後問它是否需要進行網絡搜索。如果需要,它會去網上搜索,獲取一些信息,然後寫出初稿。然後再讀自己的初稿,看是否可以改進,之後再進行修改。
所以,智能體的工作流程看起來更像這樣:模型可能會先思考一下,做一些研究,然後進行修改,再做更多的思考。
這種迭代循環實際上會產生更好的最終產品。如果你考慮用代理來寫代碼也是同樣的情況,今天我們往往讓一個模型直接寫代碼,這就像讓一個開發者從頭到尾一次性打出程序,並且運行代碼,第一次和最後一次字符都是這樣,雖然這樣做效果也出奇的好。但是,代理的工作流程同樣可以使工作效果更好。
我的團隊收集了一些數據,這些數據基於一個叫做Human Eval的編碼基準,這是OpenAI幾年前發佈的一個標準基準,裏面有一些像這樣的編碼難題,比如給定一個非負整數數組,返回某些數據,結果是這樣的解答。
事實證明,GPT-3.5在這個評價指標上的通過率是48%,也就是零樣本提示下讓它直接寫出代碼的準確率是48%。而GPT-4則好得多,準確率達到67%。但事實證明,如果你把GPT-3.5放入一個代理工作流程中,它的表現會更好。而GPT-4在這個流程中的表現也非常好。因此,我希望你們從中瞭解到的一點是,**雖然從GPT-3.5到GPT-4的進步是巨大的,但與GPT-3.5在代理工作流程中的進步相比,這種進步其實顯得相形見絀。**對於所有正在構建應用程序的人來説,我認為這可能表明了代理工作流程的巨大潛力。
/ 02 / 視覺智能體
我的團隊在Landing AI從事視覺AI的工作,我想與大家分享一些最新的進展,這是我以前從未展示過的。我們幾天前剛剛開源了這個項目,我對此非常興奮,即構建一個視覺智能體(visual agent)。
這個項目的負責人Dillon Laird是一個狂熱的衝浪愛好者,他經常看鯊魚視頻。這是一條鯊魚,而這是一位衝浪者在遊動。Dillon對這類視頻很感興趣,比如這些鯊魚離衝浪者有多近。這個視頻是生成的,例如鯊魚離衝浪者6.07米,7.2米,9.4米。現在鯊魚離衝浪者足夠遠了,所以我們把顏色從紅色變為綠色。當衝浪者離鯊魚超過10米時,顏色就變成綠色。
如果你想寫代碼來實現這一點,你需要進行對象檢測,進行一些測量,找到邊界框,繪製一些東西。你可以做到,但這很麻煩,需要幾個小時來寫代碼。現在我想展示一下我們構建這個視頻的方式,我們編寫了一個提示:你能在視頻中檢測到任何圓圈或鯊魚嗎?在視頻中畫一條綠色線表示衝浪者,假設30像素為1米,多條紅線,等等。
這就是給視覺智能體的指令。根據這個自然語言提示,它會分解成一系列步驟的指令集,比如使用extract_frames工具來提取視頻幀等等。這就是完成該任務所需的一系列步驟。之後會檢索工具,也就是函數調用。比如save_video,這是一個實用函數,可以保存一系列幀。然後我們會檢索save_video工具或save_video函數的詳細説明。對於其他工具如closest_box_distance來測量鯊魚和衝浪員之間的距離,也是如此。基於此,我們最終生成了代碼,當運行這段自動生成的代碼時,就會產生你之前看到的那段視頻。所以我想再深入一些,解釋這是如何實現的。
所以,我們構建的視覺代理是這樣工作的。你輸入一個提示。這是一個比我剛才用的提示稍微簡單一點的提示,例如計算鯊魚和最近的圓圈之間的距離。我們視覺代理的目標是編寫代碼來執行你提示的任務,這樣你就可以輸入單個圖像,並生成所需的結果。
類似於編寫非圖像代碼的代理工作流程,我們發現對於許多應用來説,這種方法比零樣本提示要好得多。此外,我們還發現,對於許多圖像用户來説,比如在Snowflake中如果你有10萬張圖像,那麼擁有可以非常高效地在大量圖像上運行的代碼也很重要,因為一旦你有了代碼,你就可以處理大量圖像或視頻幀,並通過相對高效的代碼處理得到答案。
我想和大家分享一下視覺代理的工作原理。這是開源的,所以請看看,給我們反饋,也許可以幫助我們改進。視覺代理是用兩個代理構建的。一個是編寫代碼的代理,另一個是測試代碼的代理。給出一個像這樣的提示,編寫代碼的代理首先運行一個計劃程序,生成一個完成任務所需步驟的計劃。比如加載圖像,使用工具檢測對象,計算距離等等。然後它會檢索這些工具(即函數)的詳細描述,最後生成代碼。
不知道這一切聽起來是否有點像魔法,但所有代碼都在GitHub上。可以看看,看看我們使用的具體提示。當你看到細節時,可能會感到驚訝,雖然第一次看可能覺得這些東西像魔法,但看看代碼和提示,也許你會發現其中的原理。當你這樣做時,還有其他一些演示。比如檢測每個人是否戴口罩,並將結果生成一個Python字典。生成了一堆代碼,這是一個Python字典,八個人戴了口罩,兩個人沒有戴。
這是一個不同的提示,實際上生成了一個可視化,繪製了檢測結果。所以這是自動生成的新代碼。比如它漏掉了一些未戴口罩的人,未能檢測到未戴口罩的人。
再舉一個例子,這很有趣。分析視頻,每兩秒鐘分類一次,看是否有車禍。輸出一個JSON,顯示是否有車禍。這個視頻有16秒,我認為沒有人受傷。當你這樣做時,右邊的代碼會處理視頻並生成一個JSON,顯示在這個時間點沒有車禍,在這個時間點有車禍。我的內部團隊和一些用户給我的反饋是,雖然我自己也可以寫這段代碼,但這會花我幾個小時。現在可以很快完成。
在計算機視覺領域,我們使用很多不同的函數。説實話,我經常記不住要用哪個函數,語法是什麼。而這真的讓構建視覺AI應用的過程變得更容易,只要它能正常工作。
我還想分享一個提高性能的其他方法,使用了測試代理。我展示了編寫代碼的代理,事實證明你可以提示一個語言模型來編寫測試代碼或測試腳本。基於這些,它可以執行測試代碼。
現在我們的測試代碼主要是類型檢查,所以有些有限,但即便如此,我們也可以執行測試代碼,如果測試代碼失敗,就把輸出反饋給編寫代碼的代理,讓它反思並重寫代碼。這可以進一步提高性能。
在學術文獻方面,我們參考最多的兩篇論文是Huang等人的代理代碼論文和Huang等人的數據解釋器論文。如果你想了解更多這些技術,可以看看這些論文。
最後展示一個演示,這是每兩秒鐘檢測一次視頻中的摩托車,並高亮顯示。實際上這是為了處理閉路電視監控視頻而製作的,就像特斯拉汽車那樣拼接成視頻,普通人認為需要高亮顯示有趣的地方。
所以這是一個很長的提示和YouTube鏈接。它創建了指令,檢索了工具。結果發現代碼沒有正常工作,對吧?所以這段代碼實際上失敗了幾次。你可以看到這裏有個索引錯誤的回溯。它將所有這些錯誤信息反饋給了大型語言模型。第三次失敗時,沒有名為PyTube的模塊。
最後通過Pip安裝PyTube解決了這個問題,成功運行了代碼,並生成了突出顯示監控攝像頭視頻中四個包含超過 10 輛車的視頻片段的效果。我對這個方向非常感興趣,它適用於許多應用,包括編程和視覺智能體。
/ 03 / 視覺智能體當前的技術不足
我也想分享一些限制。在我們的實驗中,失敗是常見的。我們使用通用對象檢測系統,有時未能檢測到對象。比如漏掉了一些黃色番茄。這是常見的錯誤之一。
我對Landing AI和Snowflake的合作非常興奮,我們最近構建了Landing Lens,這是一個Snowflake原生應用的監督學習計算機視覺系統。我認為通過監督學習,我們可以減少一些錯誤。但它在複雜推理上表現不好。比如説每隻鳥重半公斤,柵欄上一共承重多少。系統會天真地檢測到所有鳥,但不會意識到有一隻鳥在飛,不會施加重量。但如果你修改提示,説忽略飛翔的鳥,它就能正確識別。我覺得今天發佈的視覺智能體是beta版,有時能正常工作,有時不能,對提示的措辭也有些挑剔,有時需要更具體地描述步驟。
所以,我不會説這是非常出色的軟件,但有時它能工作,我對結果感到非常高興和驚訝。團隊的成員其實今天也在這裏。希望你們能和他們聊聊,不論是在這裏還是在Landing AI展台,也可以在線訪問landing.ai。我們還將核心引擎開源了。我覺得AI智能體是非常重要且令人興奮的趨勢,我們做出了這一小小的開源貢獻,希望能幫助大家。我希望我們能一起讓智能體變得更好,這將顯著提高我們作為開發者的能力。
我看到AI智能體正在被用於許多不同的應用。我覺得你們中的一些人可能在社交媒體上看到了Devin做的演示,我看到有些團隊在做法律工作,例如分析複雜的法律文件,使用智能體來分析複雜的法律文件。
我認為AI研究智能體已經可以上網進行網頁搜索,綜合大量信息並寫出一份深入的研究文檔。這確實已經開始流行起來了。我其實也經常玩一些Agentic平台,比如Quora、AutoGen,有時還有LandGraph和其他平台。很多人基於這些框架構建了很多應用。目前,我發現很多智能體都是為特定目的構建的,但看看是否會有一個非常通用的智能體是很有趣的。我認為這很令人興奮。
**對於很多智能體,我認為我們剛剛跨過了從玩具新奇到實用的門檻。**例如,AI研究智能體,幾個月前我還只是玩玩,上網搜索信息,為你寫研究論文。大約三個月前,這還是很有趣的玩具。但就在過去幾個月裏,我的朋友,斯坦福大學的Monica Lam,她的研究實驗室發佈了Storm,這是一個開源軟件,我感覺這個確實開始變得有用。
