運行大型語言模型(LLMs)面臨著重大的挑戰,因為它們對硬體的需求很高,但有許多選擇可以讓這些強大的工具變得更容易使用。現在的環境提供了幾種方法——從通過像是 OpenAI 和 Anthropic 等主要公司提供的 API 使用模型,到通過 Hugging Face 和 Ollama 等平台部署開源替代方案。無論你是遠端使用模型還是本地運行,了解關鍵技術如提示工程和輸出結構化可以顯著提高你特定應用的性能。這篇文章探討了實施 LLMs 的實際方面,為開發者提供了在硬體限制下導航、選擇適當的部署方法和通過經驗技術優化模型輸出的知識。
1. 使用 LLM API:快速介紹
LLM API 提供了一種簡單的方法來訪問強大的語言模型,而無需管理基礎設施。這些服務處理複雜的計算需求,讓開發者可以專注於實施。在這個教程中,我們將通過範例來理解這些 LLM 的實施,使其高層次的潛力以更直接和產品導向的方式呈現。為了讓這個教程簡潔,我們僅限於閉源模型的實施部分,最後我們會添加開源模型的高層次概述。
2. 實施閉源 LLM:基於 API 的解決方案
閉源 LLM 通過簡單的 API 介面提供強大的功能,所需的基礎設施最少,同時提供最先進的性能。這些模型由像 OpenAI、Anthropic 和 Google 等公司維護,為開發者提供了可通過簡單 API 調用訪問的生產就緒智能。
2.1 讓我們探索如何使用最容易訪問的閉源 API 之一,Anthropic 的 API。
!pip install anthropic
import anthropic
import os
client = anthropic.Anthropic(
api_key=os.environ.get(“YOUR_API_KEY”), # 將你的 API 金鑰存儲為環境變數
)
2.1.1 應用:用於用戶指南的上下文問題回答機器人
import os
from typing import Dict, List, Optional
class ClaudeDocumentQA:
“””
一個使用 Claude 根據提供文檔的內容回答問題的代理。
“””
def __init__(self, api_key: Optional[str] = None):
“””用 API 金鑰初始化 Claude 客戶端。”””
self.client = anthropic.Anthropic(
api_key=”YOUR_API_KEY”,
)
# 更新為正確的模型字符串格式
self.model = “claude-3-7-sonnet-20250219”
def process_question(self, document: str, question: str) -> str:
“””
根據文檔上下文處理用戶問題。
參數:
document: 用作上下文的文本文檔
question: 用戶對文檔的問題
返回:
Claude 根據文檔回答問題的回應
“””
# 創建一個系統提示,指示 Claude 僅使用提供的文檔
system_prompt = “””
你是一個有幫助的助手,只根據下面文檔提供的信息回答問題。如果在文檔中找不到答案,
請說「我在提供的文檔中找不到相關信息。」
不要使用文檔外的任何先前知識。
“””
# 構建用戶消息,包含文檔和問題
user_message = f”””
文檔:
{document}
問題:
{question}
僅使用上面文檔中的信息回答問題。如果信息不在文檔中,請明確說明。
“””
try:
# 發送請求給 Claude
response = self.client.messages.create(
model=self.model,
max_tokens=1000,
temperature=0.0, # 低溫度以獲得事實性回應
system=system_prompt,
messages=[
{“role”: “user”, “content”: user_message}
]
)
return response.content[0].text
except Exception as e:
# 更好的錯誤處理,帶有詳細信息
return f”處理請求時出錯:{str(e)}”
def batch_process(self, document: str, questions: List[str]) -> Dict[str, str]:
“””
處理關於同一文檔的多個問題。
參數:
document: 用作上下文的文本文檔
questions: 要回答的問題列表
返回:
將問題映射到答案的字典
“””
results = {}
for question in questions:
results = self.process_question(document, question)
return results
if __name__ == “__main__”:
# 範例文檔(說明手冊摘錄)
sample_document = “””
快速入門指南:X3000 咖啡機
設置說明:
1. 拆開咖啡機並移除所有包裝材料。
2. 沖洗水箱,並加滿新鮮的冷水至 MAX 線。
3. 將金色濾網放入濾網籃中。
4. 添加咖啡粉(每杯建議 1 湯匙)。
5. 關閉蓋子,確保咖啡壺正確放置在加熱板上。
6. 插入咖啡機並按下電源按鈕。
7. 按下沖泡按鈕開始沖泡。
特點:
– 可編程計時器:可提前設置最多 24 小時
– 強度控制:選擇普通、強烈和濃郁
– 自動關閉:機器在 2 小時後自動關閉
– 暫停和服務:在沖泡過程中最多可移除咖啡壺 30 秒
清潔:
– 每日:用溫水沖洗可拆卸部件
– 每週:用溫和的清潔劑清潔咖啡壺和濾網籃
– 每月:使用白醋溶液(1:2 醋與水)進行除垢循環
故障排除:
– 咖啡未沖泡:檢查水箱和電源連接
– 咖啡味道淡:使用強烈設定或添加更多咖啡粉
– 溢出:確保濾網正確安裝並使用正確的咖啡量
– 錯誤 E01:聯繫客服更換加熱元件
“””
# 範例問題
sample_questions = [
“每杯應該使用多少咖啡?”,
“我該如何清潔咖啡機?”,
“錯誤代碼 E02 是什麼意思?”,
“自動關閉時間是多久?”,
“在沖泡過程中我可以移除咖啡壺多久?”
]
# 創建並使用代理
agent = ClaudeDocumentQA()
# 處理單個問題
print(“=== 單一問題 ===”)
answer = agent.process_question(sample_document, sample_questions[0])
print(f”Q: {sample_questions[0]}”)
print(f”A: {answer}\n”)
# 處理多個問題
print(“=== 批量處理 ===”)
results = agent.batch_process(sample_document, sample_questions)
for question, answer in results.items():
print(f”Q: {question}”)
print(f”A: {answer}\n”)
模型的輸出
Claude 文檔問答:一個專門的 LLM 應用
這個 Claude 文檔問答代理展示了 LLM API 在上下文感知問題回答中的實際應用。這個應用使用 Anthropic 的 Claude API 創建一個系統,嚴格根據提供的文檔內容來回答問題——這對於許多企業用例來說是必不可少的能力。
該代理的工作方式是將 Claude 強大的語言能力包裝在一個專門的框架中,該框架:
- 將參考文檔和用戶問題作為輸入
- 結構化提示以區分文檔上下文和查詢
- 使用系統指令限制 Claude 僅使用文檔中存在的信息
- 明確處理文檔中未找到的信息
- 支持單個和批量問題處理
這種方法對於需要高保真度回應的場景特別有價值,例如客戶支持自動化、法律文檔分析、技術文檔檢索或教育應用。該實施展示了如何通過精心的提示工程和系統設計,將通用 LLM 轉變為特定領域應用的專門工具。
通過將簡單的 API 集成與對模型行為的深思熟慮的約束相結合,這個例子展示了開發者如何在不需要昂貴的微調或複雜基礎設施的情況下,構建可靠的上下文感知 AI 應用。
注意:這只是文檔問題回答的基本實施,我們尚未深入探討特定領域的真正複雜性。
3. 實施開源 LLM:本地部署和適應性
開源 LLM 提供了靈活和可定制的替代方案,讓開發者可以在自己的基礎設施上部署模型,完全控制實施細節。這些模型來自像 Meta (LLaMA)、Mistral AI 和各種研究機構,為多樣的部署場景提供了性能和可訪問性之間的平衡。
開源 LLM 的實施特點包括:
- 本地部署:模型可以在個人硬體或自我管理的雲基礎設施上運行
- 自定義選項:能夠微調、量化或修改模型以滿足特定需求
- 資源擴展:根據可用的計算資源調整性能
- 隱私保護:數據保持在受控環境中,無需外部 API 調用
- 成本結構:一次性計算成本,而不是按令牌定價
主要的開源模型系列包括:
- LLaMA/Llama-2:Meta 的強大基礎模型,具有商業友好的許可
- Mistral:高效模型,儘管參數數量較少,但性能強勁
- Falcon:訓練高效的模型,來自 TII,性能競爭力強
- Pythia:研究導向的模型,具有廣泛的訓練方法文檔
這些模型可以通過 Hugging Face Transformers、llama.cpp 或 Ollama 等框架進行部署,這些框架提供了簡化實施的抽象,同時保留本地控制的好處。雖然通常需要比基於 API 的替代方案更多的技術設置,但開源 LLM 在高容量應用的成本管理、數據隱私和特定領域需求的定制潛力方面提供了優勢。
這裡是 Colab 筆記本。此外,別忘了在 Twitter 上關注我們,加入我們的 Telegram 頻道和 LinkedIn 群組。別忘了加入我們的 80k+ ML SubReddit。
🚨 推薦閱讀 – LG AI 研究發布 NEXUS:一個先進的系統,整合代理 AI 系統和數據合規標準,以解決 AI 數據集中的法律問題
本文由 AI 台灣 運用 AI 技術編撰,內容僅供參考,請自行核實相關資訊。
歡迎加入我們的 AI TAIWAN 台灣人工智慧中心 FB 社團,
隨時掌握最新 AI 動態與實用資訊!