開源文字生成與 LLM 生態系統於 Hugging Face

TL;DR

Hugging Face 的 2023 年 7 月部落格文章概覽了開源文字生成與 LLM 生態系統,描述了模型家族、授權條件、服務工具以及參數高效微調方法。這很重要,因為它整合了開源 LLM 的現狀,並展示了從業者如何在不依賴封閉 API 的情況下存取、服務和適應這些模型。

文字生成的簡要背景

開源因果語言模型,如 Llama、MPT‑30B、XGen、Falcon‑40B、Pythia‑12B 和 RedPajama‑INCITE‑7B,可在 Hugging Face Hub 上取得,並可用於文字生成。經過指令調整的變體以及文字到文字的模型,如 FLAN‑T5,擴展了任務範圍。Hugging Face 的自有貢獻包括 BLOOM,一種多語言因果模型,其參數規模超過 GPT‑3;以及 StarCoder,一種專注於程式碼的模型,在獲得寬鬆授權的 GitHub 代碼上進行訓練。這些模型使得私有資料處理、領域適應以及相比付費 API 降低推論成本成為可能。

由 Hugging Face 與 BigScience、BigCode 共同創造的模型

BLOOM 是一種在 46 種語言和 13 種程式語言上訓練的因果語言模型,也是首個參數規模超過 GPT‑3 的開源模型。StarCoder 以在獲得寬鬆授權的程式碼上訓練、採用 Fill‑in‑the‑Middle 目標的方式開發而成,可作為程式碼輔助助手;它可透過 VSCode 擴充功能和遊樂場空間使用。

授權

許多大型因果語言模型現在採用完全寬鬆的授權,允許商業使用,包括 Falcon 40B、XGen 7B、MPT‑30B、Pythia‑12B、RedPajama‑INCITE‑7B 以及 OpenAssistant Falcon 變體,全部採用 Apache‑2.0。程式碼生成模型如 StarCoder(BigCode OpenRAIL‑M)和 Salesforce CodeGen(Apache‑2.0)也允許商業使用。經過指令調整的模型則各有不同:MPT‑30B‑Chat 使用 CC‑BY‑NC‑SA 4.0(非商業),而 MPT‑30B‑Instruct 使用 CC‑BY‑SA 3.0(商業)。Falcon‑40B‑Instruct 與 Falcon‑7B‑Instruct 採用 Apache‑2.0。StarChat β 攜帶 BigCode OpenRAIL‑M,允許商業使用。Llama 2 發布於一種自訂的 Meta 授權下,該授權允許商業使用。用於指令微調的資料集範圍從眾包收集如 oasst1 和 Dolly 到模型生成的集合如 Alpaca,這會影響下游的授權考量。

Hugging Face 生態系統中的 LLM 服務工具

文字生成推理

Hugging Face 的 text‑generation‑inference (TGI) 庫提供了一個開源的服務解決方案,建構於 Rust、Python 和 gRPC 之上,能降低延遲並提升大型模型的吞吐量。TGI 為 HuggingChat 提供動力,HuggingChat 是一個開源的 LLM 聊天使用者介面,並且已整合到 Inference Endpoints 與 Inference API 中,使用者只需幾下點擊即可部署優化的端點。一個用於在 Spaces 上部署 HuggingChat 的 Docker 模板,能基於 Llama 2 等模型快速部署自訂的聊天介面。

尋找模型

Hugging Face LLM 排行榜根據文字生成基準對社區提交的模型進行排名,而 LLM 效能排行榜則評估延遲和吞吐量。使用者也可以透過 pipeline 標籤搜尋模型,並依下載數量排序以尋找合適的候選模型。

參數高效微調 (PEFT)

PEFT 庫使得在消費者級硬體上僅訓練少量額外參數即可對大型模型進行微調。支援的技術包括低秩適應(LoRA)、前綴調整、提示調整以及 p‑調整,這些技術在遠低於完整微調的計算成本下,能達到與完整微調相近的效能。這使得將 LLM 適應於自訂指令資料集變得可行,並且可以在不需要完整模型規模的情況下部署得到的模型。

Sources