开源文本生成 & 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 在 GitHub 上的许可代码上进行训练,采用 Fill‑in‑the‑Middle 目标,并可作为编程助手使用;它可以通过 VSCode 扩展和游乐场空间获得。
Licensing
许多大型因果语言模型现在采用完全宽松的许可证,允许商业使用,包括 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 服务工具
Text Generation Inference
Hugging Face 的 text‑generation‑inference(TGI)库提供了一个基于 Rust、Python 和 gRPC 构建的开源服务解决方案,能够降低延迟并提高大型模型的吞吐量。TGI 为 HuggingChat(LLM 的开源聊天界面)提供动力,并集成到 Inference Endpoints 和 Inference API 中,使用户能够通过几次点击部署优化的端点。在 Spaces 上的 HuggingChat Docker 模板使得基于 Llama 2 等模型的自定义聊天界面能够快速部署。
Finding Models
Hugging Face LLM 排行榜根据文本生成基准对社区提交的模型进行排名,而 LLM Performance 排行榜则评估延迟和吞吐量。用户还可以通过 pipeline tag 搜索模型,并按下载量排序以找到合适的候选模型。
Parameter Efficient Fine Tuning (PEFT)
PEFT 库通过仅训练少量额外参数,使得在消费级硬件上对大型模型进行微调成为可能。支持的技术包括低秩适应(LoRA)、前缀调优、提示调优和 p‑调优,这些技术在计算成本大幅降低的情况下能够达到与全量微调相当的性能。这使得在不需要完整模型规模的情况下,能够将 LLMs 适配到自定义指令数据集并部署得到的模型。