Spring AI多模態開發

banq發表於2024-04-29


人類同時跨多種資料輸入模式處理知識。我們學習的方式、我們的經歷都是多模式的。我們不僅有視覺,還有音訊和文字。

現代教育之父約翰·阿莫斯·誇美紐斯 (John Amos Comenius) 在其 1658 年的著作《Orbis Sensualium Pictus》中闡明瞭這些學習的基本原則。

  • “所有自然相關的事物都應該組合起來教授”

與這些原則相反,在過去,我們的機器學習方法通​​常側重於為處理單一模式而定製的專門模型。例如,我們開發了用於文字轉語音或語音轉文字等任務的音訊模型,以及用於物件檢測和分類等任務的計算機視覺模型。

然而,新一波的多模態大語言模型開始出現。示例包括 OpenAI 的 GPT-4 Vision、Google 的 Vertex AI Gemini Pro Vision、Anthropic 的 Claude3 以及開源產品 LLaVA 和 balklava 能夠接受多種輸入,包括文字影像、音訊和影片,並透過整合這些輸入來生成文字響應。

多模態大語言模型 (LLM) 功能使模型能夠與影像、音訊或影片等其他模態結合處理和生成文字。

Spring AI - 多模態
多模態是指模型同時理解和處理來自各種來源(包括文字、影像、音訊和其他資料格式)的資訊的能力。
Spring AI Message API 提供了支援多模式 LLM 所需的所有抽象。
Spring AI多模態開發


例子
例如,我們將下面的圖片 ( multimodal.test.png ) 作為輸入,並要求 LLM 解釋它在圖片中看到的內容。
Spring AI多模態開發


對於大多數多模式大模型,Spring AI 程式碼如下所示:

byte[] imageData = new ClassPathResource(<font>"/multimodal.test.png").getContentAsByteArray();

var userMessage = new UserMessage(
   
"Explain what do you see in this picture?", // text content<i>
    List.of(new Media(MimeTypeUtils.IMAGE_PNG, imageData)));
// image content<i>

ChatResponse response = chatClient.call(new Prompt(List.of(userMessage)));

併產生如下響應:

這是一個設計簡單的水果盤的影像。碗由金屬製成,帶有彎曲的金屬絲邊緣,形成開放式結構,使水果從各個角度都可見。碗裡有兩個黃色香蕉,上面放著一個看起來像紅蘋果的東西。香蕉稍微熟過頭了,從香蕉皮上的棕色斑點可以看出。碗的頂部有一個金屬環,可能用作攜帶的把手。碗放置在具有中性色背景的平坦表面上,可以清晰地看到裡面的水果。

Spring AI 的最新 (1.0.0-SANPSHOT) 版本為以下聊天客戶端提供多模式支援:

  • Open AI - (GPT-4-Vision model)
  • Ollama - (LLaVa and Baklava models)
  • Vertex AI Gemini - (gemini-pro-vision model)
  • Anthropic Claude 3
  • AWS Bedrock Anthropic Claude 3

結論
傳統上,機器學習專注於單一模式的專門模型。然而,隨著 OpenAI 的 GPT-4 Vision 和 Google 的 Vertex AI Gemini 等創新,一個新時代已經到來。

隨著我們擁抱這個多模式人工智慧時代,誇美紐斯設想的互聯學習的願景成為現實。

Spring AI 的訊息 API 促進了多模式 LLM 的整合,使開發人員能夠建立創新的解決方案。透過利用這些模型,應用程式可以理解並響應各種形式的資料,從而為人工智慧驅動的體驗釋放新的可能性。
 

相關文章