搶佔先機
VMware 提供培訓和認證,助您快速進步。
瞭解更多更新 2024年7月20日:更新 Message API 層次結構圖並更新支援多模態的模型名稱
更新 2024年6月2日:新增一個額外的程式碼片段,演示如何使用新的 ChatClient API。
人類同時處理來自多種資料輸入模式的知識。我們的學習方式、我們的經驗都是多模態的。我們不僅僅只有視覺、聽覺和文字。
現代教育之父約翰·阿莫斯·誇美紐斯(John Amos Comenius)在其1658年的著作《感官世界圖》(Orbis Sensualium Pictus)中闡述了這些基礎學習原則。
“所有自然連線的事物都應結合起來教授”
與這些原則相反,過去我們在機器學習方面的做法通常側重於專門的模型,這些模型被定製用於處理單一模態。例如,我們開發了用於文字轉語音或語音轉文字等任務的音訊模型,以及用於物件檢測和分類等任務的計算機視覺模型。
然而,一股新的多模態大型語言模型浪潮開始湧現。例子包括 OpenAI 的 GPT-4o、谷歌的 Vertex AI Gemini Pro 1.5、Anthropic 的 Claude3,以及開源產品 LLaVA 和 Baklava,它們能夠接受多種輸入,包括文字、影像、音訊和影片,並透過整合這些輸入來生成文字響應。
多模態大型語言模型(LLM)的特性**使得模型能夠結合其他模態(如影像、音訊或影片)處理和生成文字。**
多模態指的是模型能夠同時理解和處理來自各種來源的資訊,包括文字、影像、音訊和其他資料格式的能力。
Spring AI 的 Message API 提供了支援多模態 LLM 所需的所有抽象。
UserMessage 的 **content** 欄位主要用作文字輸入,而可選的 **media** 欄位允許新增一個或多個不同模態的額外內容,例如影像、音訊和影片。MimeType 指定模態型別。根據所使用的 LLM,Media 的 data 欄位可以是編碼的原始媒體內容,也可以是指向內容的 URI。
**注意:** `media` 欄位目前僅適用於使用者輸入訊息,例如 `UserMessage`。
例如,我們將以下圖片(multimodal.test.png)作為輸入,並要求 LLM 解釋它在圖片中看到的內容。
對於大多數多模態 LLM,Spring AI 程式碼大致如下所示
byte[] imageData = new ClassPathResource("/multimodal.test.png").getContentAsByteArray();
var userMessage = new UserMessage(
"Explain what do you see in this picture?", // text content
List.of(new Media(MimeTypeUtils.IMAGE_PNG, imageData))); // image content
ChatResponse response = chatModel.call(new Prompt(List.of(userMessage)));
或者使用新的流式 ChatClient API
String response = ChatClient.create(chatModel).prompt()
.user(u -> u.text("Explain what do you see on this picture?")
.media(MimeTypeUtils.IMAGE_PNG, new ClassPathResource("/multimodal.test.png")))
.call()
.content();
併產生如下響應
這是一張設計簡潔的水果碗圖片。碗由金屬製成,帶有彎曲的金屬絲邊緣,形成開放結構,使水果可以從各個角度看到。碗內有兩個黃色的香蕉,放在一個看起來像紅蘋果的水果上。香蕉有點過熟,表皮有棕色斑點。碗頂部有一個金屬環,可能是用於提攜的把手。碗放在一個平面上,背景顏色中性,提供了碗內水果的清晰檢視。
最新版本(1.0.0-SNAPSHOT 和 1.0.0-M1)的 Spring AI 為以下聊天客戶端提供了多模態支援
接下來,Spring AI 將重構 Document API,以新增類似於 Message API 的多模態支援。
目前,AWS Bedrock Titan EmbeddingClient 支援影像嵌入。需要整合額外的多模態 Embedding 服務,以允許在向量儲存中對多模態內容進行編碼、儲存和搜尋。
傳統上,機器學習專注於針對單一模態的專用模型。然而,隨著 OpenAI 的 GPT-4 Vision 和谷歌的 Vertex AI Gemini 等創新,一個新時代已經到來。
隨著我們擁抱多模態 AI 時代,誇美紐斯所設想的互聯學習願景正在成為現實。
Spring AI 的 Message API 促進了多模態 LLM 的整合,使開發人員能夠建立創新解決方案。透過利用這些模型,應用程式能夠理解和響應各種形式的資料,為 AI 驅動的體驗開啟新的可能性。