菜单

LLM 模型与框架

相关源文件

目的与范围

本文档全面概述了 funNLP 存储库中提供的大型语言模型 (LLM) 资源,包括支持开发人员构建具有 LLM 功能的应用程序的开源模型和框架。本页重点介绍模型本身以及用于处理它们的框架。有关训练和微调这些模型的信息,请参阅LLM 训练和微调。有关提示工程技术,请参阅提示工程。有关评估方法,请参阅LLM 评估和基准测试

LLM 生态系统概述

LLM 领域发展迅速,既有闭源商业模型(如 OpenAI 的 GPT 系列),也有日益壮大的开源替代品生态系统。funNLP 存储库跟踪了各种开源 LLM 实现,尤其关注中文能力。

来源:README.md177-205

开源 LLM 模型

开源 LLM 使强大的语言模型民主化,使研究人员和开发人员无需依赖专有 API 即可构建应用程序。下表总结了 funNLP 存储库中跟踪的关键开源 LLM 模型

模型参数语言描述
LLaMA7B、13B、33B、65B主要是英语Meta 的基础模型,许多衍生模型的基础
ChatGLM6B中文、英文清华大学 THUDM 开发的双语聊天模型
MOSS16B中文、英文支持插件的对话语言模型
Chinese-LLaMA7B、13B中文、英文为中文改编的 LLaMA
Alpaca7B、13B英语斯坦福大学对 LLaMA 的指令调优版本
Chinese-Alpaca7B、13B中文Alpaca 的中文改编版
Vicuna7B、13B英语微调的 LLaMA,指令遵循能力更强
Baize多种中文、英文在自我对话数据上训练的聊天模型
Bloom176B多语言大型多语言语言模型
Cerebras-GPT13B英语Apache 2.0 许可的语言模型
MPT7B英语MosaicML 的宽松许可模型
Panda多种中文对 LLaMA 进行中文领域持续预训练
WizardLM7B英语具有复杂指令调优的指令遵循模型

来源:README.md177-202 README.md142-152

LLaMA 模型系列

LLaMA 模型系列代表了开源 LLM 的最重要发展之一,为许多衍生模型奠定了基础。

来源:README.md227-231 README.md200-202

中文模型

funNLP 存储库中的几个模型专门为中文能力设计或改编

模型基础特性
ChatGLM-6BGLM具有 6B 参数的双语对话模型
MOSS原文支持中文、英文和多种插件的开源对话模型
Chinese-LLaMALLaMA对 LLaMA 进行中文改编,扩展了词汇量
Chinese-AlpacaLLaMA+Alpaca指令调优的中文模型
PandaLLaMA在中文领域进行持续预训练
Chinese-ChatLLaMALLaMA支持包括简体/繁体中文在内的多语言
LaWGPT多种中文法律知识的领域特定模型
MedicalGPT-zh多种中文医学知识的领域特定模型

来源:README.md181-191 README.md284-285

LLM 框架和工具

LLM 生态系统不仅包括模型,还包括便于处理这些模型的框架和工具。

来源:README.md203-206 README.md257-266

核心框架

几个关键框架构成了使用 LLM 的基础

  1. Transformers - Hugging Face 的库,提供对最先进的预训练模型的访问
  2. DeepSpeed Chat - Microsoft 的用于高效 RLHF 训练聊天模型的框架
  3. LLMTune - 用于在消费级 GPU 上微调 65B+ 大型模型的框架
  4. PEFT (Parameter-Efficient Fine-Tuning) - 用于高效调整大型模型的各种方法

集成框架

更高级别的框架,简化了使用 LLM 构建应用程序的过程

框架描述主要功能
LangChain用于创建 LLM 应用程序的框架上下文感知链、工具集成、代理
LlamaIndexLLM 应用程序的数据框架文档索引、知识检索
引导现代语言模型的控制系统交错生成、提示和控制
FastChat聊天模型的训练和服务系统多模型服务、评估工具

来源:README.md202-204

模型选择注意事项

在为特定应用程序选择 LLM 模型时,应考虑几个因素

  1. 语言支持 - 模型是否支持目标语言(尤其是中文)
  2. 模型大小 - 可用的计算资源与模型质量
  3. 许可 - 商业使用权限因模型而异
  4. 领域适应 - 一些模型针对特定领域(医疗、法律等)进行了微调
  5. 指令遵循 - 一些模型在遵循特定指令方面表现更好

参数大小比较

来源:README.md212-217

高效推理技术

为了在有限的硬件上部署大型语言模型,已经开发了几种技术

  1. 量化 - 降低模型权重的精度(例如,INT8、INT4)
  2. LoRA (Low-Rank Adaptation) - 通过添加低秩矩阵进行高效微调
  3. QLoRA - 量化 LoRA,允许在消费级 GPU 上微调 65B 参数模型
  4. 高效服务 - 如 vLLM 或 FlexGen 等优化推理的技术

这些技术使得在消费级硬件上以合理的性能运行相对较大的模型成为可能。

来源:README.md210-225

通用部署架构

LLM 的部署通常遵循一定的架构模式,具体取决于用例。

来源:README.md256-267

中文 LLM 的专用框架

存储库中的几个框架专门针对处理中文语言模型进行了定制

  1. Chinese-LLaMA-Alpaca - 用于部署中文 LLaMA 和 Alpaca 模型的框架
  2. ChatGLM-Efficient-Tuning - 用于高效微调 ChatGLM 模型的工具
  3. Chinese-Vicuna - 使用 LoRA 对 LLaMA 进行低资源中文改编
  4. InstructGLM - 用于 ChatGLM 模型指令微调的框架
  5. LangChain-ChatGLM-Webui - ChatGLM 与知识库集成的 Web 界面

来源:README.md227-231 README.md284-285

资源和生态系统支持

funNLP 存储库提供了额外的资源来支持使用 LLM

  1. 模型评估和基准测试 - 模型性能比较(Chatbot Arena、C-Eval)
  2. 论文集 - 与 LLM 及其功能相关的研究论文
  3. 技术报告 - 关于模型架构和性能的详细技术信息
  4. 训练数据集 - 用于进一步微调模型的 डेटा 资源
  5. 社区工具 - 用于模型部署和应用程序开发的实用程序

来源:README.md132-139 README.md327-336

结论

LLM 模型和框架的格局多样且发展迅速。funNLP 存储库跟踪了许多商业模型的开源替代品,特别关注具有中文能力的模型。通过利用这些模型和框架,开发人员可以在各种领域构建复杂的自然语言应用程序。