我们如何在本地安全地运行私有的LLMs呢?开源模型为此提供了可能的解决方案。本文将介绍七种方法。
-
Hugging Face的transformers
这是一个Python库,可以简化本地运行LLM的过程。
Transformers的优点:
- 自动模型下载
- 提供代码片段
- 非常适合实验和学习
Transformers的缺点:
- 需要对ML和NLP有深入了解
- 需要编码和配置技能
2.Llama.cpp:
特点:Llama.cpp是一个基于C++的推理引擎,专门为Apple Silicon优化,可以运行Meta的Llama2模型。它针对GPU和CPU都做了推理优化。
优点:性能高于基于Python的解决方案,支持在适度的硬件上运行大型模型,如Llama 7B,并提供绑定,可以用其他语言构建AI应用程序,同时通过Llama.cpp运行推理。
缺点:模型支持有限,需要构建工具。
使用场景:当你需要在自己的硬件上运行大型模型,或者需要用其他语言构建AI应用程序时,可以选择使用Llama.cpp。
3.Llamafile:
特点:Llamafile由Mozilla开发,基于C++开发,它使用了llama.cpp,这是一个C++库,提供了运行自托管大型语言模型(LLMs)所需的各种功能。通过llama.cpp,开发人员可以轻松地创建、加载和运行LLM模型,而无需担心底层环境的复杂性。此外,Llamafile还提供了一个简洁的API接口,使得开发人员可以更加方便地与LLM进行交互,从而实现各种复杂的应用场景.
优点:与Llama.cpp相同的速度优势,你可以构建一个嵌入模型的单个可执行文件。
缺点:项目仍处于早期阶段,不是所有模型都支持,只支持Llama.cpp支持的模型。
使用场景:当你需要创建一个嵌入模型的单个可执行文件,或者需要一个便携性强的工具时,可以选择使用Llamafile。
4.Ollama:
特点:Ollama是Llama.cpp和Llamafile的一个更加用户友好的替代品。你下载一个可执行文件,它会在你的机器上安装一个服务。安装完成后,你打开一个终端并运行。
优点:易于安装和使用,可以运行llama和vicuña模型,运行速度非常快。
缺点:提供有限的模型库,自己管理模型,你不能重用自己的模型,无法调整选项来运行LLM,暂时没有Windows版本。
使用场景:当你需要一个易于安装和使用的工具,或者需要运行llama和vicuña模型时,可以选择使用Ollama。
目前微软Phi-3以上四种本地运行模式都支持。
5:vLLM
vLLM是一个高吞吐量和内存高效的大型语言模型(LLMs)推理和服务引擎。它的目标是为每个人提供简便、快捷、经济的LLM服务。
优点
- 高效的服务吞吐量:vLLM可以快速处理大量的并发请求。
- 支持模型种类多。
- 内存高效:vLLM使用了一种名为PagedAttention的技术,可以高效地管理注意力键和值的内存。
缺点
- 你需要确保你的设备有GPU,CUDA或者RoCm.
vLLM会提供对Phi-3的支持,目前代码在集成中。
6.TGI(Text Generation Inference)
TGI(Text Generation Inference)是HuggingFace推出的大模型推理部署框架。它支持主流大模型和主流大模型量化方案,并且联用Rust和Python来达到服务效率和业务灵活性的平衡。TGI实现了许多特性,例如:
-
简单的启动LLM
-
使用Flash Attention和Paged Attention进行推理的优化的transformers代码
-
使用bitsandbytes GPT-Q EETQ AWQ Safetensors进行量化
Text Generation Inference(TGI)和Transformer模型的推理方式有一些区别,主要体现在以下几个方面:
- 并行计算:TGI和Transformer都支持并行计算,但TGI更进一步,它使用了Rust和Python联用的方式,实现了服务效率和业务灵活性的平衡。这使得TGI在处理大型语言模型时,能够更有效地利用计算资源,提高推理效率。
- 优化技巧:TGI引入了一些优化技巧,如continuous batching、Flash Attention和Paged Attention等,这些技巧可以进一步提高推理的效率和性能1。而传统的Transformer模型可能没有这些优化技巧。
- 模型支持:TGI支持部署GPTQ模型服务,这使得我们可以在单卡上部署拥有continuous batching功能的,更大的模型。而传统的Transformer模型可能没有这样的支持。
然而,虽然TGI在某些方面可能比传统的Transformer推理更优秀,但这并不意味着我们就不需要使用Transformer的推理了。因为在某些情况下,例如当我们需要处理的任务或数据与TGI的优化技巧不匹配时,使用传统的Transformer推理可能会更合适。目前测试效果TGI的推理速度不如vLLM。
TGI推理支持容器方式运行:
7.Deepspeed
DeepSpeed支持本地推理。DeepSpeed是微软推出的一个开源深度学习优化库,它通过系统优化和压缩的方法,深度优化硬件设备、操作系统、框架等方面,并采用模型压缩和数据压缩技术,以提升大规模模型推理和训练的效率。
DeepSpeed-Inference是DeepSpeed框架在推理方面的扩展,专门针对大语言模型设计。它通过模型并行、张量并行和流水线并行等技术,提高了推理性能并降低了延迟。
推理框架的选择(选择之前先确认要使用的模型是否支持这种推理框架):
DeepSpeed:如果你的任务需要高性能的推理,那么DeepSpeed可能是一个好选择。DeepSpeed提供了一系列优化技术,如ZeRO(零冗余优化器),3D并行(数据并行、模型并行和流水线并行的结合),1比特Adam等,这些技术可以显著提升大模型训练和推理的效率。
ollama:如果你需要一个易于使用的工具,那么ollama可能更适合你。ollama的主要优点在于其易用性,用户可以通过简单的命令行界面运行模型。
Llamafile:如果你需要创建一个嵌入模型的单个可执行文件,那么Llamafile可能是一个好选择。Llamafile以其便携性和创建单文件可执行文件的能力而闻名。
TGI (Text Generation Inference):如果你的任务需要在多种硬件环境下进行高效推理,那么TGI可能是一个好选择。TGI提供了一系列优化技术,如模型并行、张量并行和流水线并行等,这些技术可以显著提升大模型推理的效率。
Transformer:如果你的任务需要处理复杂的自然语言处理任务,如机器翻译、文本生成等,那么使用基于Transformer的模型可能是一个好选择。Transformer模型具有强大的表示能力,可以捕获文本中的长距离依赖关系。
vLLM:如果你的任务需要处理大规模的自然语言处理任务,如文本分类、情感分析等,那么使用vLLM可能是一个好选择。vLLM是一个大规模的预训练模型,可以在各种自然语言处理任务上实现优秀的性能。
如何学习大模型 AI ?
由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。
但是具体到个人,只能说是:
“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
第一阶段(10天):初阶应用
该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。
- 大模型 AI 能干什么?
- 大模型是怎样获得「智能」的?
- 用好 AI 的核心心法
- 大模型应用业务架构
- 大模型应用技术架构
- 代码示例:向 GPT-3.5 灌入新知识
- 提示工程的意义和核心思想
- Prompt 典型构成
- 指令调优方法论
- 思维链和思维树
- Prompt 攻击和防范
- …
第二阶段(30天):高阶应用
该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。
- 为什么要做 RAG
- 搭建一个简单的 ChatPDF
- 检索的基础概念
- 什么是向量表示(Embeddings)
- 向量数据库与向量检索
- 基于向量检索的 RAG
- 搭建 RAG 系统的扩展知识
- 混合检索与 RAG-Fusion 简介
- 向量模型本地部署
- …
第三阶段(30天):模型训练
恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。
到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?
- 为什么要做 RAG
- 什么是模型
- 什么是模型训练
- 求解器 & 损失函数简介
- 小实验2:手写一个简单的神经网络并训练它
- 什么是训练/预训练/微调/轻量化微调
- Transformer结构简介
- 轻量化微调
- 实验数据集的构建
- …
第四阶段(20天):商业闭环
对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。
- 硬件选型
- 带你了解全球大模型
- 使用国产大模型服务
- 搭建 OpenAI 代理
- 热身:基于阿里云 PAI 部署 Stable Diffusion
- 在本地计算机运行大模型
- 大模型的私有化部署
- 基于 vLLM 部署大模型
- 案例:如何优雅地在阿里云私有部署开源大模型
- 部署一套开源 LLM 项目
- 内容安全
- 互联网信息服务算法备案
- …
学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。
如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。