語言模型

Visual Studio Code 運用大型語言模型 (LLM) 來驅動其 AI 功能。您可以透過 GitHub Copilot 方案選擇多種模型,或使用自己的模型。本文將解釋語言模型的運作方式、其特性,以及如何考量模型的選擇。

語言模型運作方式

語言模型處理文字輸入(即「提示」)並產生文字輸出。在 VS Code 中,提示是從多個來源組合而成:您的訊息、對話歷史、檔案內容、工具輸出和自訂指示。模型會產生回應,其中可能包含解釋、程式碼編輯,或呼叫工具的請求。

語言模型不會直接執行程式碼或存取檔案。相反地,它們產生文字,而代理程式迴圈將這些文字解讀為動作。當模型請求呼叫工具時,VS Code 會執行該工具,並將結果回傳給模型以進行下一次迭代。

主要特性

  • 非確定性:相同的提示每次都可能產生不同的結果。這是刻意設計的,反映了模型如何從機率分佈中進行抽樣。
  • 依賴上下文:回應的品質取決於提示中提供之上下文的品質和相關性。
  • 知識邊界:模型是根據截至特定日期的資料進行訓練的,因此對於超出其訓練資料範圍的主題,可能會產生過時或不正確的資訊。VS Code 透過工具和工作區索引來緩解此問題。

上下文視窗

上下文視窗是模型在單一請求中可以處理的資訊總量。它包含所有內容:系統提示、自訂指示、對話歷史、檔案內容、工具輸出和您目前的訊息。不同的模型具有不同的上下文視窗大小。

當上下文視窗滿時,VS Code 會自動摘要對話中較舊的部分以騰出空間。這表示冗長對話早期的一些重要細節可能會被壓縮或遺失。您也可以隨時在聊天輸入中輸入 /compact 來手動觸發壓縮。您也可以選擇在指令後新增自訂指示來引導摘要,例如 /compact focus on the API design decisions

深入瞭解 VS Code 如何組裝上下文上下文壓縮

思考與推論

某些語言模型在產生回應之前,可以執行擴展的推論,也稱為「思考」。推理模型不會立即產生答案,而是先在內部處理問題,考慮多種方法,評估權衡,並建立一步一步的思緒鏈。這種內部推論發生在專用的思考權杖中,這些權杖與最終輸出是分開的。

推理模型對於複雜任務特別有效,例如多步驟偵錯、架構規劃、程式碼重構以及數學或科學分析。對於生成樣板或回答基本問題等較簡單的任務,額外的推論會增加延遲,而沒有顯著好處。

思考投入程度

思考投入程度控制模型對每個請求應用的推論量。較高的投入程度會產生更徹底的內部推論,從而提高複雜問題的品質。較低的投入程度則透過限制或跳過思考步驟來減少延遲和權杖使用量。

可用的投入程度及其預設值因模型和供應商而異。某些模型也支援自適應思考,其中模型會根據每個請求的複雜程度動態決定是否以及推論多少,而不是總是使用固定的思考預算。

VS Code 根據評估和線上效能資料設定預設的投入程度,並在支援的情況下啟用自適應推論。對於大多數使用情境,預設值無需變更即可良好運作。

思考權杖

思考權杖計入模型的上下文視窗,即使它們在回應中不可見。實際的思考輸出通常以摘要形式返回,或者為了降低延遲可以完全省略。請記住,較高的思考投入程度會產生更多的思考權杖,這可能會增加延遲。

瞭解如何在 VS Code 中設定思考投入程度

選擇合適的模型

每個模型都有不同的優勢。有些模型針對速度進行了最佳化,非常適合簡單的補齊。其他模型則具有更大的上下文視窗或更好的推理能力,使其成為複雜任務的理想選擇。您可以根據特定任務的需求,隨時切換模型。

VS Code 也支援自動模型選擇,它會自動選擇模型以確保最佳效能並減少速率限制。自動選擇會從可用模型中挑選,並為付費使用者提供請求折扣。

深入瞭解選擇和設定語言模型

© . This site is unofficial and not affiliated with Microsoft.