大型語言模型的優點和限制

發布日期:2024 年 1 月 13 日

這是大型語言模型和聊天機器人的三部曲系列的第一篇文章。第 2 部分說明如何使用 WebLLM 建構聊天機器人,第 3 部分則說明如何使用 Prompt API,這兩部分已上線。

大型語言模型 (LLM) 已成為軟體開發的重要構件:LLM 非常適合用於產生及處理自然語言文字,可用於資料擷取、摘要或協助與使用者資料對話等用途。

在本系列文章中,我將討論裝置端 LLM 的優點和缺點,並引導您使用兩種可在本地和離線環境中使用的做法,為現有應用程式新增聊天機器人功能:以網頁為基礎的 LLM 執行階段 WebLLM,以及 Chrome 實驗性 Prompt API

可能的應用方式

新增聊天機器人之前的應用程式。
我們的待辦事項清單應用程式。

我們將在傳統待辦事項應用程式上方建構聊天機器人。您可以在 GitHub 上找到各個步驟的原始碼。使用者可以新增待辦事項、標示為已完成,以及刪除待辦事項。

您可以新增功能,讓使用者進一步瞭解待辦事項資料或執行其他功能。聊天機器人功能可讓使用者:

  • 詢問未完成的工作數量。
  • 找出重複或相似的待辦事項。
  • 將待辦事項分類。
  • 根據已完成的工作,接收新工作建議。
  • 將工作翻譯成不同語言。
  • 以 XML 格式匯出待辦事項清單。

以上只是舉幾個例子,說明 LLM 可處理的工作。

什麼是大型語言模型?

大型語言模型是一種人工神經網路,可處理及產生自然語言文字。目前大多數 LLM 都是以 Google 開發的 Transformer 架構為基礎。例如 Google 的 Gemini 和 Gemma 模型、OpenAI 的 GPT 模型系列,以及 Meta AI 的 LLaMa 和 Mistral AI 的 Mistral 等開放原始碼模型。

由於 LLM 是透過大量資料訓練而成,因此擁有多項令人驚豔的功能。他們能理解多種語言、具備瑣事知識、可在不同語言之間進行翻譯,或產生程式碼。這些功能的範圍可能會因模型大小而有顯著差異,詳情請參閱「瞭解 LLM 大小」一文。

大型語言模型可讓軟體架構轉型,因為自然語言現在已成為軟體工程的核心功能。您不必使用明確定義的介面呼叫 API,只要在所謂的提示中以自然語言表達意圖即可。

LLM 的限制

LLM 也有一些限制:

  • 非決定性行為:LLM 對相同提示可能會產生不同的回覆,甚至有時會產生矛盾的回覆,因為其輸出內容取決於機率模型,而非固定規則。
  • 幻覺:這些模型有時可能會依據學習到的模式,而非事實準確度,產生錯誤或無意義的資訊。
  • 提示注入:LLM 可能會受到提示注入攻擊,使用者會設計輸入提示,操控模型偏離其預期功能或產生不必要的結果。

因此,使用者必須先確認 LLM 產生的結果,才能採取任何後續行動。

處理裝置端 LLM 時,請務必考量其大小。這些檔案的大小可達數 GB,且必須在首次使用前下載到使用者的裝置上。較小的模型通常會產生品質較低的回應,特別是與雲端支援的模型相比。

選擇當地解決方案

您可能會想使用雲端服務供應商,將 LLM 整合至網頁應用程式。許多供應商都提供高品質的 LLM,其中有些是特定供應商的專屬內容。雲端式 LLM 可提供快速的推論速度,且費用通常以每個處理的符記計算,價格合理。

相較之下,本機解決方案則具備許多優勢。本機代管的 LLM 會直接在使用者的裝置上運作,因此可提供更可靠的回應時間,即使使用者離線也能使用,且開發人員不必支付訂閱費用或其他持續性費用。值得一提的是,這些功能可以大幅提升使用者安全性。將所有活動保留在裝置上,即可避免將個人識別資訊 (PII) 傳送至外部供應商或區域。

示範

您可以先查看完成的聊天機器人功能示範,再學習如何自行建構。

接下來,您將使用 WebLLM 在待辦事項應用程式中新增聊天機器人