Fine-Tune TinyLlama with Ertas

    緊湊的 11 億參數模型,使用 3 兆個 token 進行訓練——遠超其規格的典型資料量——為邊緣部署、行動應用和資源受限環境提供出人意料的強勁效能。

    1.1BTinyLlama Team

    Overview

    TinyLlama 是由 TinyLlama 開源專案開發的 11 億參數語言模型,由新加坡科技設計大學的 Peiyuan Zhang 領導。TinyLlama 的獨特之處不在於架構而在於訓練方法:模型使用約 3 兆個 token 進行訓練,與用於訓練 Llama 2 7B 的資料量大致相同,儘管模型小了近 7 倍。這種相對於模型規格的大量訓練遵循了 Chinchilla 最佳縮放理念,推動了微型模型能力的極限。

    TinyLlama 使用與 Llama 2 相同的架構但進行了縮小:22 個 Transformer 層、2048 隱藏維度、32 個注意力頭和具有 4 個鍵值頭的分組查詢注意力。模型支援 2K token 的上下文視窗並使用具有 32K 詞彙量的 Llama 分詞器。儘管規格小,TinyLlama 在微調後展現了連貫的文本生成、基本推理和有用的指令跟隨能力。

    該專案被設計為實用且易於取得。訓練在 16 張 A100-40GB GPU 上約 90 天完成,團隊在整個訓練過程中發布了中間檢查點,以便研究人員可以研究訓練動態。模型的小巧規格意味著它幾乎可以在任何運算裝置上執行,從智慧型手機到微控制器。

    TinyLlama 以 Apache 2.0 授權發布。在多個對話資料集混合上微調的 TinyLlama Chat 變體提供了一個在最小硬體上執行的緊湊聊天機器人。該專案啟發了一波關於用大資料預算訓練微型模型的研究。

    Key Features

    TinyLlama 最值得注意的特色是其資料與參數比。以 3 兆個 token 訓練 1.1B 參數,模型在訓練期間每個參數看到了約 2,700 個 token——遠超大多數模型中典型的每參數 20-100 個 token。這種大量訓練迫使模型從其有限的參數量中提取最大效用,產生了一個在許多任務上表現遠超其級別的模型。

    模型的極度緊湊性使得更大模型無法實現的部署場景成為可能。在完整 FP16 精度下,TinyLlama 僅需 2.2GB RAM。使用 INT4 量化,這降低到約 700MB。這意味著 TinyLlama 可以在 Raspberry Pi 裝置、配備 2GB 以上 RAM 的智慧型手機、瀏覽器中的 WebAssembly 環境,甚至某些帶有外部 RAM 的微控制器平台上執行。

    TinyLlama 作為研究縮放法則的重要研究產出物。大量訓練和公開發布的中間檢查點允許研究人員以學術實驗室運算上可負擔的規模研究模型能力如何在訓練過程中湧現和演化。該專案證明了最佳訓練需要的資料遠超大多數小型模型所接收的量。

    Fine-Tuning with Ertas

    TinyLlama 是 Ertas Studio 中最易取得的微調模型。使用 QLoRA,微調僅需 2-4GB VRAM——這幾乎可在任何 GPU 上執行,包括 GTX 1060 6GB 或具有足夠共享記憶體的整合式顯示卡等較舊型號。完整 LoRA(不量化)僅需 3-5GB VRAM,甚至完整微調在配備 8GB 以上 VRAM 的消費級 GPU 上也是可行的。

    模型的小巧規格使獨特的快速迭代成為可能。10,000 個範例的完整微調執行通常在單張消費級 GPU 上 15-30 分鐘內完成。這允許用不同的資料集、超參數和訓練策略進行快速實驗。您可以在一天內執行數十個實驗,測試不同的方法然後確定最佳配置。

    微調後,Ertas Studio 匯出為 GGUF 格式。Q4_K_M 量化的 TinyLlama 僅約 670MB——小到可以作為桌面應用程式的一部分分發、嵌入行動應用或包含在 Docker 容器中而不會造成顯著的大小開銷。透過 Ollama 部署進行 API 存取或透過 llama.cpp 直接整合到您的應用程式中。

    Use Cases

    TinyLlama 的主要用途是在模型大小為主要限制的裝置端部署。需要離線 AI 能力的行動應用、物聯網裝置中的嵌入式系統、透過 WebAssembly 的瀏覽器 AI 功能和邊緣運算場景都受益於 TinyLlama 的最小資源需求。模型可以與其他應用同時執行而不爭奪資源。

    模型作為更大系統中的快速預處理或分類層表現出色。用於意圖偵測、簡單實體提取、文本分類、情感分析和查詢路由。雖然它缺乏進行複雜推理的精密度,但它以最小成本高效地執行這些專注任務。許多生產系統使用 TinyLlama 作為輕量級的第一遍過濾器。

    TinyLlama 對教育目的也非常有價值。學習語言模型的學生可以在個人筆記型電腦上微調、實驗和部署 TinyLlama,無需任何特殊硬體。從資料準備到微調再到部署的完整訓練管線可以在數小時而非數天內體驗,使其成為理想的教學工具。

    Hardware Requirements

    TinyLlama 在 Q4_K_M 量化下需要約 670MB RAM。這小到可以在 Raspberry Pi 4(4GB)、大多數智慧型手機甚至透過 WebAssembly 的瀏覽器環境上執行。在 Q8_0 下約 1.2GB。完整 FP16 約需 2.2GB。這些是任何連貫語言模型中最低的需求之一。

    推論速度由於微小的模型規格而非常快。在 RTX 4090 上,使用 Q4_K_M 預計每秒 100 個以上 token。在搭載 8GB 的 Apple M1 上,預計每秒 30-50 個 token。即使在現代筆記型電腦上的 CPU 推論也能每秒 15-30 個 token,使 TinyLlama 即使沒有任何 GPU 也能對互動式應用做出回應。

    在 Ertas Studio 中進行微調,QLoRA 需要 2-4GB VRAM,完整微調需要 4-8GB VRAM。極低的需求意味著 TinyLlama 幾乎可在任何配備獨立 GPU 的機器上進行微調,甚至某些整合式 GPU 配置也可以。對於典型資料集大小,訓練在幾分鐘到幾十分鐘內完成。

    Supported Quantizations

    Q4_0Q4_K_MQ5_K_MQ6_KQ8_0F16

    Related Resources

    Ship AI that runs on your users' devices.

    Early bird pricing starts at $14.50/mo — locked in for life. Plans for builders and agencies.