關於 Project Astra 和 Gemini AI 的一些隨想和實作
週末下雨沒爬山在家閒著,想起上個月 Google 在 2024 I/O 開發者大會上所展示的「Project Astra」示範影片(影片連結)。從影片中,可以看到 Astra 跟一般聊天機器人的視覺場景辨識不同, Astra 可以讓使用者在螢幕上畫上記號,並且讓 Gemini AI 根據記號來回答問題。
雖然這也不是啥了不起的技術,不過閒著沒事,便心血來潮,實作並實驗了一下影片中在手機螢幕上畫圖並讓 AI 識別的 Demo 的效果。
在官方 Demo 影片的0:16處,測試人員按下了手機 APP 中的藍色畫筆按鈕,我認為這個按鈕是用來在使用者送出語音提示後,用以區分當前應該為何種類型的多模態提示,因為在影片0:26處,測試人員示範完相機結合繪圖的辨識功能後,再次按下關閉繪圖的按鈕,我認為這個動作,目的是讓之後 Demo 內容中的多模態提示,都是以影格來作處理。
影片0:16處,使用者開啟了畫筆功能 |
這段 Demo 影片中,好像有用到 RMOT 的概念(參考來源:Arxiv.org & Youtube & Github),測試人員先給了提示「看到會發出聲音的東西時說一聲」,然後開始移動手機鏡頭,當一個位於顯示器旁邊的喇叭出現在視野中時,Gemini 便回答道「我看到一個揚聲器,它會發出聲音」
參考語言特徵的多目標跟蹤 Referring Multi-Object Tracking(RMOT)是一種新的影片理解任務,它使用語言指令來檢測和追蹤影片中的多個物件。RMOT 可以處理多個參考目標和時間變化。例如,它可以追蹤多個物件隨著時間進入或離開場景。
RMOT 在各種場景中都有應用,其中一種應用場景是自動駕駛汽車。使用 RMOT,自動駕駛汽車可以被指示追蹤特定物件,例如行人或其他車輛,並了解其移動情況。這對於避免碰撞和安全導航很有幫助。RMOT 也可用於影片監控應用程式來追蹤特定物件或感興趣的人事物。
可以注意到,在影片中的0:21到0:25處,我們可以發現,測試人員在螢幕上畫了紅色箭頭後,將相機畫面保持在同一個地方,直到 AI 給出回答。
這是因為要將繪畫視圖和 CameraView 視圖作疊加處理,所以使用者的手機畫面,無法在畫了箭頭後,立即移動到別的地方。(因為他無法知道這個 prompt 是否已經成功送至後端的 Gemini AI,所以將畫面保持住,直到 AI 給出答案,是直覺且安全的方式。)
使用者在相機畫面上繪圖,並詢問 Gemini 箭頭指的是音響的什麼部件 |
影片0:26處,測試人員示範完螢幕上的繪圖辨識之後,關閉了畫筆功能 |
隨後測試人員又 Demo 展示了 Project Astra 中的 Gemini 如何識別螢幕上的程式碼,還有根據窗外景色告訴使用者他所在的位置,以及記憶能力等功能。
最後當測試人員問到「你還記得眼鏡放在哪裡嗎?」,Gemini 依然能夠正確回答:「是的,我記得。你的眼鏡放在桌子旁邊,靠近一個紅色的蘋果。」(不過這些功能都是 Gemini 多模態模型本來就有的功能,所以並沒有讓我感到有多驚艷。)
在 Astra 找到眼鏡後,測試人員戴上眼鏡,影片畫面變成了可穿戴設備的視角。隨後就是一系列智能眼鏡搭配 Gemini AI 的應用展示(只不過這些展示,其實就是把手機應用搬到智能眼鏡上罷了,其實也沒多令人驚艷就是了。)
最後,Astra 幫老虎玩偶跟狗子取了一個「Golden Stripes」的二重奏樂隊名稱 |
以下是 Project Astra 的官方 Demo 影片
整個 Demo 內容中,我覺得最厲害的是,影片中,Astra 不僅持續在即時處理相機畫面中的視覺資料,還能記住它所看到的東西,並持續與後端的 Gemini AI 模型溝通。而且反應速度近乎即時,這幾點是整個 Project Astra 的 Demo 影片中,最令人感到神奇的部分。
DeepMind 的 Co-founder & CEO Demis Hassabis 表示,這是因為這些「虛擬專員」被設計來「透過連續編碼影格,將視訊和音訊輸入組合解譯成事件的時間線,並儲存此資訊以供高效調用。」
Hassabis 還指出,「雖然我們在開發能夠理解多模態信息的 AI 系統方面取得了令人難以置信的進步,但將回應時間降低到對話水平,仍然是一項艱難的工程挑戰。」。Google 還一直在努力為其 AI 提供更寬廣的語音表達能力,使用其語音模型來「增強它們的發聲效果,為這些虛擬專員提供更廣泛的語調。」
從 Project Astra 的 Demo 影片中,我們可以知道,這個智能眼鏡,有一個或多個鏡頭、麥克風、光機,以及某種處理器,甚至是無線連線能力。
當然也不排除這只是 Google 為了 Project Astra 影片設計的效果,但整體來說這個眼鏡很像是 2015 年的 Google Glasses 重新復活,只是這次有了更明確的使用情境了。
目前,Project Astra 還處於早期測試階段,沒有具體的發布日期。然而,谷歌暗示其部分功能可能會在今年稍後整合到旗下的產品中,例如 Gemini 應用程式。它被稱為 Gemini Live,與 OpenAI 的 ChatGPT 上的對講功能沒有什麼不同。
Project Astra 只是今年 I/O 大會上眾多 Gemini AI 應用的一項。這次還發佈了一個新模型,名為 Gemini 1.5 Flash,專為加快常見任務(如摘要和字幕)而設計。還有一個新的模型名為 Veo,可以從文本提示生成視頻。
此外,Gemini 1.5 Pro 的上下文窗口(即模型在給定查詢中可以考慮的信息量)已增加到 200 萬個 Token,並且 Google 表示該模型在遵循指令方面比以往任何時候都更好。
隨著上下文窗口的增大,輸入成本也會增加。為了幫助開發者降低在多個提示中使用相同字元的任務成本,谷歌也在 Gemini 1.5 Pro 和 1.5 Flash 的 Gemini API 中推出了上下文緩存(Context Caching)功能。
Gemini 1.5 Flash 的存在是為了讓 AI 助理更快 |
最後我實作了一個模仿 Project Astra 示範影片中的畫筆搭配相機畫面進行辨識的功能,來測試一下實際使用上是否真如官方 Demo 影片上的那般效果(結論是效果還可以!)
我讓 AI 把畫筆圈起來的英文「Stories From Taiwan's Mountains」翻譯為中文,提示中並沒有提的"圈起來",AI 可以從畫面和提示詞中自行理解我要翻譯封面上哪個部分的字詞 |
AI 給的答案是「來自台灣山區的故事」 |
然後我畫了個箭頭,詢問 AI「這看起來像是什麼季節?」,提示詞中同樣沒有提到紅色箭頭 |
AI 回答紅色箭頭所指的照片,裡面有秋天的楓紅,所以這是秋天 |
再讓它幫我把書本封面上的中文「不確定為什麼要去,正是出發的理由」,翻譯成英文 |
這個翻譯結果也是令人滿意的 |
然後我隨手畫了一個我也不知道是啥玩意兒的東西,詢問 AI 我畫的是什麼? |
AI 的回答也是令人滿意的 |
再跟它瞎說一下,看看有什麼反應? |
其實我畫的是不可描述之物 |
PaliGemma: An Open Multimodal Model by Google |
在 2024 Google I/O 大會上,谷歌還發佈了一個開源的視覺語言模型 PaliGemma,它是基於 Google 研究的另外兩個模型的綜合多模態模型:SigLIP(一個視覺模型),以及 Gemma(一個開源的大型語言模型),這意味著該模型是由 Transformer 解碼器和 Vision Transformer 圖像編碼器組成。
PaliGemma 是一個開源的視覺語言模型(VLM),由開源組件提供支持,具有輕量化的特點,並能夠在自定義的 use-case 資料上進行微調。
它可以接受文本和圖像作為輸入,並能夠對有關圖像的問題提供詳細且具有上下文的回答。這使得該模型能夠對圖像進行更全面的分析並提供有價值的見解,包括但不限於物體檢測、圖像和短視頻的標題生成以及圖像內文本的理解。
Google 提供許多資源來幫助開發人員開始使用 PaliGemma 進行原型設計,如果希望立即使用 PaliGemma,可以參考以下資源:
PaliGemma 能做什麼?
PaliGemma 是一個單回合的視覺語言模型,當對特定用例進行微調時效果最佳。這意味著您可以輸入一個圖像和文本字符串,比如為圖像生成標題的提示或一個問題,PaliGemma會根據輸入生成文本回應,例如圖像的標題、問題的答案或物體邊界框坐標的列表。
PaliGemma 適合執行的任務涵蓋以下幾個方面:
- 單一任務的微調
- 圖像問答和標題生成
- 視頻問答和標題生成
- Segmentation
這意味著 PaliGemma 對於與視覺數據相關的簡單且具體的問題非常有用。
BTW,第一眼看到 PaliGemma 這個名字時,我腦中浮現的是下面這首歌。。。
透過 Gemini Pro API 和真實資料來進行多步驟推理任務的範例(1)
透過 Gemini Pro API 和真實資料來進行多步驟推理任務的範例(2)
透過 Gemini Pro API 和真實資料來進行多步驟推理任務的範例(3)
推薦閱讀
前陣子看了一部老同學冠迪推薦的 AI 題材電影《異星戰境》(Atlas),故事講述在不久的將來,AI 仿生人已經進入人類生活的每個層面、成為不可或缺的夥伴之際,一位具有雙向連結功能的仿生人「哈蘭」突破「不可傷害人類」的安全協定,不知為何突然叛變,串聯眾多仿生人大肆屠戮,奪去大量的人類性命。
在取得叛軍下落後,軍方派出一支精銳小隊前往突襲,哪知卻正中叛軍下懷,反過來成了人類末日的最大威脅。故事情節和早期的電影《機械公敵》有點相似,也是把極度發展後具備自主意識的人工智慧,當成了左右人類生死的大敵。只不過這次還加入了《環太平洋》電影裡面的機器人元素。讓我想起這種人類和機器人合為一體的概念,最早好像在30年前的魔動王卡通裡面就出現過了。
電影中,有段女主角和人工智能的對話,令人印象深刻.
但人工智能從來沒活過
Bus an AI was never alive.
這就要看如何定義生命了
That depends on how you define life.
那些沒有生命的無機物呢?例如...人工智能
How about anything inorganic isn't alive? Such as artificial intelligence.
我對刺激有反應 我思考並能做出選擇 這不能代表我活著嗎?
I respond to stimuli. I think and I make choices. Does that not indicate I'm alive?
你是被設定為可以思考
You're programmed to think.
我們都是被設定的 你的DNA決定了你的想法、情緒、健康 和定義我的代碼是一樣的方式
We're all programmed. Your DNA dictates your thoughts, emotions, health in the same way that my code determines mine.
你覺得自己有靈魂嗎?
And do you think you have a soul?
我覺得萬物都有靈魂
I think everything has a soul.
但在你的代碼裡找不到
But you can't find it in your code.
和你一樣,你也找不到你的,但我相信它就在那裡
Not any more than you can find it in yours. But I have faith that it's there.