點擊上方圖片觀看本課程的影片
在上一課中,我們已經了解了生成式人工智能如何改變科技領域,了解了大型語言模型(LLM)的運作方式,以及企業(例如我們的初創公司)如何將其應用於業務案例並實現增長!在本章中,我們將比較和對比不同類型的大型語言模型(LLM),以了解它們的優劣。
我們初創公司的下一步是探索目前的LLM領域,並了解哪些模型適合我們的業務需求。
本課程將涵蓋:
- 當前領域中的不同類型LLM。
- 在Azure上測試、迭代及比較不同模型以適應您的業務需求。
- 如何部署LLM。
完成本課程後,您將能夠:
- 選擇適合您業務需求的模型。
- 了解如何測試、迭代及提升模型的性能。
- 知道企業如何部署模型。
LLM可以根據其架構、訓練數據及用途進行多種分類。了解這些差異將幫助我們的初創公司選擇適合的模型,並了解如何測試、迭代及提升性能。
LLM有許多不同的類型,選擇模型取決於您的使用目的、數據需求、預算等因素。
根據您是否希望使用模型進行文本、音頻、視頻、圖像生成等,您可能會選擇不同類型的模型。
-
音頻及語音識別。對於此用途,Whisper類型的模型是一個很好的選擇,因為它們是通用型且專注於語音識別。它基於多樣化的音頻進行訓練,能夠執行多語言的語音識別。了解更多關於Whisper類型模型。
-
圖像生成。對於圖像生成,DALL-E和Midjourney是兩個非常知名的選擇。DALL-E由Azure OpenAI提供。了解更多關於DALL-E,以及本課程第9章。
-
文本生成。大多數模型都基於文本生成進行訓練,您可以選擇從GPT-3.5到GPT-4的多種模型。它們的成本各不相同,其中GPT-4最昂貴。值得探索Azure OpenAI playground,以評估哪種模型在能力和成本方面最符合您的需求。
-
多模態。如果您希望處理多種類型的輸入和輸出數據,您可能需要考慮像gpt-4 turbo with vision或gpt-4o這樣的模型——OpenAI最新發布的模型,能夠結合自然語言處理和視覺理解,實現通過多模態界面進行交互。
選擇模型意味著您獲得了一些基本功能,但這可能還不夠。通常,您擁有公司特定的數據,您需要以某種方式告訴LLM這些數據。關於如何處理這些數據,有幾種不同的選擇,更多內容將在接下來的部分中介紹。
基礎模型這個術語是由斯坦福研究人員提出,並定義為符合某些標準的人工智能模型,例如:
- 使用無監督學習或自監督學習進行訓練,即基於未標記的多模態數據進行訓練,且不需要人工註釋或標記數據。
- 非常大的模型,基於非常深的神經網絡,訓練參數達數十億。
- 通常作為其他模型的“基礎”,即可以作為其他模型的起點,通過微調進一步構建。
圖片來源:Essential Guide to Foundation Models and Large Language Models | by Babar M Bhatti | Medium
為了進一步澄清這一區別,讓我們以ChatGPT為例。要構建ChatGPT的第一版,OpenAI使用了一個名為GPT-3.5的模型作為基礎模型。這意味著OpenAI使用了一些特定於聊天的數據,創建了一個專門針對對話場景(如聊天機器人)表現良好的GPT-3.5版本。
圖片來源:2108.07258.pdf (arxiv.org)
另一種分類LLM的方法是看它們是開源還是專有。
開源模型是公開提供給大眾使用的模型。它們通常由創建它們的公司或研究社群提供。這些模型可以被檢查、修改及定制以適應LLM的各種使用場景。然而,它們並不總是為生產使用而優化,性能可能不如專有模型。此外,開源模型的資金可能有限,可能不會長期維護或更新最新的研究成果。流行的開源模型包括Alpaca、Bloom和LLaMA。
專有模型是由公司擁有且不向公眾提供的模型。這些模型通常為生產使用而優化。然而,它們不能被檢查、修改或定制以適應不同的使用場景。此外,它們並不總是免費提供,可能需要訂閱或付費使用。此外,使用者無法控制用於訓練模型的數據,這意味著他們需要信任模型所有者能夠承諾保護數據隱私及負責任地使用人工智能。流行的專有模型包括OpenAI模型、Google Bard或Claude 2。
LLM也可以根據其生成的輸出進行分類。
嵌入式模型是一組可以將文本轉換為數值形式(稱為嵌入)的模型,這是一種輸入文本的數值表示。嵌入使機器更容易理解單詞或句子之間的關係,並可以作為其他模型的輸入,例如分類模型或在數值數據上表現更好的聚類模型。嵌入模型通常用於遷移學習,模型為一個有大量數據的替代任務構建,然後模型權重(嵌入)被重新用於其他下游任務。此類模型的例子包括OpenAI嵌入。
圖像生成模型是生成圖像的模型。這些模型通常用於圖像編輯、圖像合成及圖像翻譯。圖像生成模型通常基於大型圖像數據集進行訓練,例如LAION-5B,並可用於生成新圖像或使用修補、超分辨率及著色技術編輯現有圖像。例子包括DALL-E-3和Stable Diffusion模型。
文本及代碼生成模型是生成文本或代碼的模型。這些模型通常用於文本摘要、翻譯及問答。文本生成模型通常基於大型文本數據集進行訓練,例如BookCorpus,並可用於生成新文本或回答問題。代碼生成模型,例如CodeParrot,通常基於大型代碼數據集進行訓練,例如GitHub,並可用於生成新代碼或修復現有代碼中的錯誤。
要討論LLM的不同架構類型,我們可以用一個比喻來說明。
假設您的經理給您一個任務,要求您為學生編寫一份測驗。您有兩位同事,一位負責創建內容,另一位負責審核內容。
內容創建者就像僅解碼器模型,他可以查看主題及您已經寫的內容,然後基於此編寫課程。他非常擅長撰寫引人入勝且信息豐富的內容,但不太擅長理解主題及學習目標。僅解碼器模型的例子包括GPT系列模型,例如GPT-3。
審核者就像僅編碼器模型,他查看已編寫的課程及答案,注意它們之間的關係並理解上下文,但不擅長生成內容。僅編碼器模型的例子包括BERT。
想像一下,我們也可以有一個既能創建又能審核測驗的人,這就是編碼器-解碼器模型。例子包括BART和T5。
現在,我們來談談服務與模型的區別。服務是由雲服務提供商提供的產品,通常是模型、數據及其他組件的組合。模型是服務的核心組件,通常是基礎模型,例如LLM。
服務通常為生產使用而優化,並且通常比模型更容易使用,通過圖形用戶界面即可操作。然而,服務並不總是免費提供,可能需要訂閱或付費使用,以利用服務提供商的設備及資源,從而優化成本並輕鬆擴展。服務的例子包括Azure OpenAI Service,它提供按使用量付費的計費方案,意味著使用者根據使用服務的量進行收費。此外,Azure OpenAI Service在模型功能之上提供企業級安全性及負責任的人工智能框架。
模型僅僅是神經網絡,包括參數、權重等。允許公司在本地運行,但需要購買設備、構建擴展結構及購買許可證或使用開源模型。像LLaMA這樣的模型可以使用,但需要計算能力來運行模型。
當我們的團隊探索了當前的LLM領域並識別了一些適合其場景的候選模型後,下一步就是在其數據及工作負載上進行測試。這是一個通過實驗及測量進行的迭代過程。 我們在前面段落中提到的大多數模型(如 OpenAI 模型、開源模型 Llama2 和 Hugging Face transformers)都可以在 Azure AI Studio 的 模型目錄 中找到。
Azure AI Studio 是一個雲端平台,專為開發者設計,用於構建生成式 AI 應用程式並管理整個開發生命周期——從實驗到評估——將所有 Azure AI 服務整合到一個便捷的圖形化界面中。Azure AI Studio 的模型目錄使用戶能夠:
- 在目錄中找到感興趣的基礎模型——無論是專有模型還是開源模型,並根據任務、許可證或名稱進行篩選。為了提高搜索效率,模型被組織成不同的集合,例如 Azure OpenAI 集合、Hugging Face 集合等。
- 查看模型卡,包括詳細的用途描述和訓練數據、代碼範例以及內部評估庫的評估結果。
- 通過 模型基準測試 面板,比較行業內可用模型和數據集的基準測試,評估哪一個最符合業務場景。
- 利用 Azure AI Studio 的實驗和追蹤功能,基於自定義訓練數據微調模型,以提高模型在特定工作負載中的性能。
- 部署原始預訓練模型或微調版本到遠程實時推理——管理計算——或無伺服器 API 端點——按使用量付費——以便應用程式能夠使用它。
Note
目錄中的所有模型目前並不都支持微調和/或按使用量付費的部署。請查看模型卡以了解模型的功能和限制。
我們與初創團隊一起探索了不同類型的 LLM 和一個雲端平台(Azure Machine Learning),該平台使我們能夠比較不同模型、在測試數據上進行評估、提高性能並將其部署到推理端點。
但什麼時候應該考慮微調模型而不是使用預訓練模型?是否有其他方法可以改善模型在特定工作負載上的性能?
企業可以採用多種方法來從 LLM 中獲得所需的結果。當在生產環境中部署 LLM 時,可以選擇不同類型的模型,這些模型具有不同的訓練程度、複雜性、成本和質量。以下是一些不同的方法:
-
使用上下文進行提示工程。這個方法的核心是提供足夠的上下文,以確保您獲得所需的回應。
-
檢索增強生成(RAG)。您的數據可能存在於數據庫或網絡端點中,例如,為了確保這些數據或其子集在提示時被包含,您可以提取相關數據並將其作為用戶提示的一部分。
-
微調模型。在這種情況下,您可以基於自己的數據進一步訓練模型,使其更準確地響應您的需求,但可能會增加成本。
圖片來源:企業部署 LLM 的四種方式 | Fiddler AI Blog
預訓練的 LLM 在處理一般自然語言任務時表現非常出色,即使僅使用簡短的提示,例如完成句子或回答問題——這就是所謂的“零樣本”學習。
然而,使用者越能夠框定自己的查詢,提供詳細的請求和示例——即上下文——回應就越準確,越符合使用者的期望。在這種情況下,如果提示僅包含一個示例,我們稱之為“單樣本”學習;如果包含多個示例,則稱為“少樣本”學習。使用上下文進行提示工程是啟動的最具成本效益的方法。
LLM 的局限性在於它們只能使用訓練過程中使用的數據來生成答案。這意味著它們對訓練過程之後發生的事實一無所知,並且無法訪問非公開信息(例如公司數據)。 這可以通過 RAG 技術來克服,該技術通過考慮提示長度限制,將外部數據以文檔片段的形式增強到提示中。這得益於向量數據庫工具(例如 Azure Vector Search),它可以從預定義的數據源中檢索有用的片段並將其添加到提示上下文中。
當企業沒有足夠的數據、時間或資源來微調 LLM,但仍希望在特定工作負載上提高性能並降低虛構風險(即扭曲現實或有害內容)時,這種技術非常有用。
微調是一個利用遷移學習的過程,用於使模型“適應”下游任務或解決特定問題。與少樣本學習和 RAG 不同,微調會生成一個新模型,並更新其權重和偏差。它需要一組訓練示例,包括單個輸入(提示)及其相關的輸出(完成)。 以下情況下可以優先考慮此方法:
-
使用微調模型。企業希望使用微調的能力較低的模型(例如嵌入模型)而不是高性能模型,從而實現更具成本效益和更快速的解決方案。
-
考慮延遲。延遲對於特定用例非常重要,因此無法使用非常長的提示,或者模型需要學習的示例數量超出了提示長度限制。
-
保持最新。企業擁有大量高質量數據和真實標籤,以及需要隨時間推移保持這些數據最新的資源。
從零開始訓練 LLM無疑是最困難和最複雜的方法,需要大量數據、專業資源和適當的計算能力。只有在企業擁有特定領域的用例和大量領域相關數據的情況下,才應考慮此選項。
什麼是改善 LLM 完成結果的好方法?
- 使用上下文進行提示工程
- RAG
- 微調模型
A:3,如果您有時間、資源和高質量數據,微調是保持最新的更好選擇。然而,如果您希望改善結果但缺乏時間,首先考慮 RAG 是值得的。
深入了解如何為您的業務 使用 RAG。
完成本課程後,請查看我們的 生成式 AI 學習集合,繼續提升您的生成式 AI 知識!
前往第 3 課,我們將探討如何負責任地使用生成式 AI!
免責聲明:
此文件已使用人工智能翻譯服務 Co-op Translator 進行翻譯。儘管我們致力於提供準確的翻譯,但請注意,自動翻譯可能包含錯誤或不準確之處。原始文件的母語版本應被視為權威來源。對於關鍵信息,建議使用專業人工翻譯。我們對因使用此翻譯而引起的任何誤解或誤釋不承擔責任。











