一、LangChain 是什麼
LangChain 是一套 用來建構以 LLM 為核心的應用(chatbot、RAG、Agent、自動化工作流) 的開放原始碼框架/編排層,提供模型介面、prompt 管理、chain/agent 模型、工具(tools)、記憶(memory)、向量資料庫(vectorstores)等標準化元件,讓你把 LLM 串成可重複、可測試、可部署的系統。(LangChain 文檔)
🧠 一、LangChain 的「核心能力」是什麼?
LangChain 本身 不是 AI 模型,而是幫你「用好模型」的框架。 它的主要價值是讓你能:
| 功能 | 說明 |
|---|---|
| 封裝 LLM | 對接各種大語言模型(OpenAI、Anthropic、HuggingFace、本地模型等) |
| 管理 Prompt | 用模板、變數、上下文生成一致的 prompt |
| 串接多步流程 (Chains) | 把「多個模型與步驟」組成完整任務 |
| 整合外部資料 (RAG) | 讓模型可以讀文件、查資料庫、問知識庫 |
| 使用工具 (Tools) | 讓模型能執行實際操作(API 呼叫、運算、控制系統) |
| 記憶 (Memory) | 讓模型記住對話上下文或長期資訊 |
| 決策與行動 (Agents) | 讓模型自己選擇何時用哪個工具完成任務 |
| 觀察與監控 (Tracing) | 追蹤模型每一步的輸入、輸出、成本 |
WhisperX 是一個基於 OpenAI 開源語音識別模型 Whisper 的增強工具,專注於解決標準 Whisper 在語音轉文字 (ASR) 應用中的一些局限性,特別是 精確時間戳 和 說話人分離 功能。
WhisperX 的功能與特點
1. 精確時間戳 (Word-level Alignment)
- 特點:
- Whisper 原生僅支持語句級別 (phrase-level) 的時間戳,這對於字幕生成等應用場景可能不夠精確。
- WhisperX 通過集成 音素對齊算法,提供逐字級別的時間戳,確保每個單詞的開始和結束時間更準確。
- 使用技術:
- 使用工具如
pyctcdecode和Aeneas,基於聲學特徵和語言模型進行對齊。
- 使用工具如
- 應用場景:
- 字幕生成(精確到每個單詞)。
- 時間敏感的語音轉文字應用(如語音檢索、索引構建)。
Transformers 是一種基於注意力機制的深度學習架構,由 Vaswani 等人在 2017 年提出,最初設計用於自然語言處理(NLP)任務。其核心創新是引入了 Self-Attention 機制,使得模型可以在處理文本時同時考慮上下文。
Transformers 的特性
- 並行化:相比於 RNN 的序列處理,Transformers 利用並行處理技術,大幅提高了訓練速度 (參考下圖)。
- 靈活性:能夠處理多種輸入數據格式(如文本、圖像、音頻)。
- 可擴展性:容易擴展到大規模模型,如 GPT、BERT 等。
Self-Attention 是什麼?
Self-Attention 是一種深度學習中的注意力機制,能夠讓模型聚焦於輸入序列的不同部分,並且依據序列間的相關性調整輸出表示。這一機制在自然語言處理(NLP)和計算機視覺(CV)中有廣泛應用,尤其是 Transformer 架構的核心組件。
Self-Attention 的核心原理
Query、Key 和 Value 的概念
在 Self-Attention 中,每個輸入元素 被投影到三個向量空間:
以下是一些開源或已公開模型的AI摘要生成模型:
-
BART (Bidirectional and Auto-Regressive Transformers):
- 開源狀況: BART 是開源的,Facebook AI 已將其模型權重和代碼公開在 Hugging Face 模型庫上,可以直接使用。
- 使用方法:
- Hugging Face鏈接: BART on Hugging Face
- Notice:
- model有限制input token(512/1024?),長文需額外處理。
- multilingual 語言翻譯有限制,並且似乎不支援文轉錄(?)
-
T5 (Text-To-Text Transfer Transformer):
- 開源狀況: T5 是開源的,Google 已將模型的權重和代碼公開在 Hugging Face 上。
- 使用方法:
- Hugging Face鏈接: T5 on Hugging Face
- Notice:
- mT5(multilingual) 似乎無法直接使用,不斷預測出
<extra_id_0>token。 - Hugging face issue- Generating from mT5
- Hugging face issue - loss is always 0.0
- mT5(multilingual) 似乎無法直接使用,不斷預測出
-
PEGASUS:
- 開源狀況: PEGASUS 是開源的,Google 將這個模型的權重和代碼發布在 GitHub 和 Hugging Face 上。
- 使用方法:
- Hugging Face鏈接: PEGASUS on Hugging Face
- Notice:
- model有限制input token(1024),長文需額外處理。
- PEGASUS 主要是為英語文本摘要任務設計的,目前沒有官方的多語言版本。
-
LED (Longformer Encoder-Decoder):
- 開源狀況: LED 是開源的,由 Allen Institute for AI 釋出,並且可以在 Hugging Face 上使用。
- 使用方法:
- Hugging Face鏈接: LED on Hugging Face
- Notice:
- LED 是基於 Longformer 模型的,這個模型透過使用稀疏注意力機制(sparse attention)來有效地處理長文本序列。標準的 Transformer 模型在處理長文本時會遇到記憶體和計算資源的瓶頸,而 LED 透過稀疏注意力機制緩解了這些問題。
- 處理超長文字輸入。
-
GPT-2:
- 開源狀況: GPT-2 是開源的,OpenAI 釋放了完整的模型權重和代碼。雖然 GPT-3 並未完全開源,但 GPT-2 已經是一個強大的生成模型,可以用來進行摘要生成。
- 使用方法:
- GPT-2
- Hugging Face鏈接: GPT-2 on Hugging Face
- Notice:
- GPT-2 does not have an official multilingual version.
使用 Universal Sentence Encoder 來進行句子相似度和句子分類任務。 Universal Sentence Encoder 可以輕鬆取得句子層級的嵌入向量,並計算句子之間的語意相似度。
主要内容
- 設定環境:介紹如何設置環境以訪問 TF Hub 上的 Universal Sentence Encoder,並提供適用於單字、句子和段落的範例。
- 載入模組:提供載入 Universal Sentence Encoder 模組的程式碼範例。
- 計算表示:展示如何為每一則訊息計算表示,並顯示支援的不同長度。
- 視覺化相似度:使用熱圖顯示訊息之間的相似度。
- 評估:介紹 STS(語義文本相似度)基準,並提供下載資料及評估句子嵌入向量的程式碼範例。
CLIP (Contrastive Language-Image Pre-Training) 是一種在各種(圖像,文本)對上訓練的神經網絡。它可以用自然語言指令來預測給定圖像最相關的文本片段,而不需要直接針對該任務進行優化,類似於GPT-2和GPT-3的零樣本能力。我們發現,CLIP在ImageNet上的“零樣本”表現與原始ResNet50相當,而未使用任何原始的128萬個標註示例,克服了計算機視覺中的多個主要挑戰。
特點
- 多模態模型:能夠處理圖像和文本兩種輸入。
- 零樣本學習:能夠分類未見過的圖像類別,僅需提供相應的文本描述。
- 高效的特徵提取:可以將圖像和文本轉換為特徵向量,並計算它們之間的相似度。
Zero-shot classification 是一種自然語言處理任務,模型在訓練時使用一組標記示例,但能夠分類來自之前未見類別的新示例。
內容概述
1. 什麼是Zero-Shot Classification?
Zero-Shot Classification是一種預測模型在訓練期間未見過的類別的方法。這種方法利用預訓練的語言模型,可以視為轉移學習的一種形式,特別適用於標記數據量較小的情況。
Zero-Shot Learning(ZSL)是一種在訓練過程中未見過某些類別的樣本,但能夠在測試階段對這些類別進行分類的技術。這種學習方式通常依賴輔助信息來進行推斷。