Google 所開源多模態模型,比你想像中還有料 — Paligemma

Simon Liu
7 min readJun 11, 2024

--

看完文章後歡迎按鼓勵,訂閱,並分享給所有想知道此類知識的所有人!

Google 所開源多模態模型,比你想像中還有料 — Paligemma

PaliGemma 介紹

PaliGemma 是在 2024 年 5 月份的 Google I/O 活動中發布,是一款基於 Google 研究的兩個模型的結合多模態模型:

1. SigLIP,一個視覺模型
2. Gemma,一個大型語言模型

這意味著該模型結合了 Transformer 解碼器和 Vision Transformer 圖像編碼器。它同時接受圖像和文本作為輸入並生成文本輸出,也支援多種語言。

相關 PaliGemma 資源連結

  1. HuggingFace: 連結
  2. Kaggle: 連結
  3. Google Document: 連結
  4. NVidia NIM: 連結

PaliGemma 特點

  1. 多模態學習:PaliGemma 能夠同時處理影像和文本數據,這使得它在多模態學習方面具有顯著優勢。通過融合這兩種數據類型,PaliGemma 可以理解和分析它們之間的關聯性,從而提供更豐富的資訊。這種能力特別適合應用於需要綜合多種數據來源的場景,例如醫療診斷、智能監控和自動駕駛。
  2. 相對較小的 30 億參數組合模型
  3. 允許商業使用條款
  4. 能夠針對圖像和短影音字幕、視覺問答、文本閱讀、目標檢測和目標分割進行微調和處理

NVIDIA NIM™ 介紹

接下來的使用範例,我們將會透過 NVIDIA NIM 進行介紹,因此會先介紹 NVIDIA NIM 工具。

黃仁勳在 2024 年的 GTC 大會上,介紹了 NVIDIA NIM 服務,這個服務是由 NVIDIA 所提供的推論微服務,透過模型服務打包,可以將數以億計的 GPU 連接起來,以部署各種客製化的AI項目,讓開發人員能夠將部署時間從原本的數週縮短到幾分鐘。

根據官方的說法,Nvidia NIM 微服務可以部署 NVIDIA、A121、Adept、Cohere、Getty Images 和 Shutterstock 的模型,以及 Google、Hugging Face、Meta、Mistral AI 和 Stability AI 的開放模型,提供了速度最快、執行效能最高的生產型AI容器。

詳細資訊可見此處:

PaliGemma 使用範例

以下我將透過剛剛介紹的 Nvidia NIM 來進行測試,讓大家也可以有一個空間來試用看看這樣的模型。

  1. 透過 PaliGemma 文件來進行光學字元辨識 (OCR)理解

只要上傳圖片後,在敘述中描述你要進行 OCR 辨識,就可以預測出辨識的結果。不過,如果你要求模型「讀取序號,並且傳回沒有附加文字的號碼。」模型會有機率回覆它沒有接受過訓練或沒有能力回答這個問題。

2. 文件理解

文件理解是指從圖像中提取相關關鍵資訊的能力,通常還有其他不相關的文字,我們這邊嘗試使用某停車場的收據範例來進行試用,發現他可以理解需要花費多少錢,表現可以接受。

3. 餐飲業菜單測試

既然文件理解表現還可以的狀況下,我們就來嘗試看看是否能夠認識菜單上的資訊,當我詢問速食業者的菜單單點多少錢時,發現他只會回答套餐價錢,所以在這樣的菜單資訊上,可能還要進步的空間

4. 零錢辨識:

因為我家人常常都不分類零錢,所以我也出一個考題來考他是否能夠辨識圖片中的零錢有多少錢,但是測試之後發現,Paligemma 只認識美元零錢,而且就辨識能力來說,也不是到最頂尖,所以我認為辨識台幣的功能,可能就無法透過此模型實踐。

5. 偵測物體位置

在此階段,我們可以測試看看是否能夠偵測物體的位置,那根據我的測試,如果沒有用對的方式來去說明,你可能會得不到正確的位置,但我測試以下 Prompt 方法之後,我就可以得到正確的解答:

偵測圖片上的狗,並且提供 x_min, x_max, y_min, y_max 的座標。

另外,NVidia NIM 因為無法直接呈現圖像,所以我們這邊可以另外使用 Huggingface space 的方式來畫出圖像,像是 Segment dog 或者 Detect dog ,都可以畫出正確的結果出來:

Segment Dog
Detect Dog

所以 Paligemma 是可以完成分割物體和偵測物體的功能,只是在輸出上,需要額外多處理圖像呈現的部分。

PaliGemma 的局限性

PaliGemma 以及所有視覺語言模型 (VLMs) 最適合用於「有明確指示的任務」,不適合開放式、複雜、細微或基於推理的問題,相信從上面的測試應該可以感受到此事。這點與語言模型 (LMMs) 不同,因此在選擇使用這些模型時,應該根據它們最可能表現良好的情況來使用。

在上下文方面,PaliGemma 的資訊基於預訓練數據集和任何在微調期間提供的數據。PaliGemma 不會知道這些之外的訊息,除非有來自 Google 或開源社群的新數據進行權重更新。因此,不應該將 PaliGemma 當作一個知識庫來直接使用。

最後,在各種測試中,我們發現稍微改變提示詞會導致結果有顯著差異。這種情況需要時間來理解如何最佳地提示模型。改變提示詞中的一個細節,比如將單詞的複數形式改為單數形式,可能會決定結果是完美的檢測還是無法使用的輸出。

結論

Google 發布的 PaliGemma 對多模式人工智慧的進步具有重大意義。輕量級的開放模型使得任何人都可以自訂訓練自己的大型視覺語言模型,並將其部署在自己的硬體或雲端上以滿足商業需求。相較於先前的 LMM 微調成本高昂且計算需求龐大,PaliGemma 的出現打破了這一模式,為致力於建立自訂 AI 應用程式的人們提供了一個突破性的工具,能夠創建更為複雜和多樣化的應用。

I am Simon

大家好,我是 Simon 劉育維,目前是一位 AI 工程師,幫助企業以 MLOps 概念,導入相關人工智慧技術,包含但不限於傳統型 AI 和生成式 AI 等相關技術。如果這篇文章對您有幫助,請在 Medium 上按一下鼓勵並追蹤我的個人帳號,這樣您就可以隨時閱讀我所撰寫的文章。歡迎在我的 Linkedin 上留言提供意見,並與我一起討論有關人工智慧的主題,期待能夠對大家有所幫助!

My Personal Website: https://simonliuyuwei-4ndgcf4.gamma.site/

--

--

Simon Liu

Hi, I'm Simon Liu, AI and LLM engineer who's shaped AI solutions for major firms. Welcome to see my Medium article!