ubuntu MiniCPM 3.0 vLLM 安装
安装python环境
ubuntu 安装python3在 Ubuntu 上安装 Python 3 非常简单,通常 Python 3 是预装的。如果需要安装或更新它,可以按照以下步骤操作: 1. 更新包管理器 首先,确保你的系统软件包是最新的: sudo apt update
sudo apt upgrade 2. 安装 Python 3 使用以下命令安装 Python 3: sudo apt install python3 3. 安装 pip3(Python 3 的包管理工具) 为了安装 Python 包,可以安装 pip3: sudo apt install python3-pip 4. 验证安装DDai’s Docs胸口碎大石
狗东西,文档都没有,各种版本不兼容错误。
等有心情了再回头来写吧
模型介绍
MiniCPM 3.0 效果比肩甚至超越众多 7B-9B 模型MiniCPM 3.0 是一个 4B 参数量的语言模型,相比 MiniCPM1.0/2.0,功能更加全面,综合能力大幅提升,多数评测集上的效果比肩甚至超越众多 7B-9B 模型。 * 支持工具调用🛠️(Function Calling)和代码解释器💻(Code Interpreter):Berkeley Function Calling Leaderboard (BFCL) 上取得 9B 规模以下 SOTA,超越 GLM-4-9B-Chat、Qwen2-7B-Instruct。 * 超强的推理能力🧮:数学能力方面,MathBench 上的效果超越 GPT-3.5-Turbo 以及多个 7B-9B 模型。在非常具有挑战性的 LiveCodeBench 上,效果超越 Llama3.1-8B-Instruct。 * 出色的中英文指令遵循能力�DDai’s Docs胸口碎大石
vLLM和transformers的详细对比
vLLM 和 Hugging Face 的 Transformers 库是用于自然语言处理(NLP)的大型语言模型(Large Language Models, LLM)框架,它们各自有不同的设计目标和特点。以下是两者的详细对比:
1. 目标和用途
* vLLM:vLLM 是为优化 LLM 的推理性能而设计的框架,特别是处理大规模模型的高效推理。它专注于通过增强内存管理、优化并发执行、减少延迟等来提升性能,适合需要处理高吞吐量任务的应用场景,例如 API 服务或需要快速响应的系统。
* Transformers:Hugging Face 的 Transformers 是一个通用的 NLP 框架,广泛支持多种预训练模型和任务。它不仅支持推理,还包括训练、微调和推理的完整支持,适用于研究、生产环境和快速开发。
2. 架构设计
* vLLM:
* 专注于推理(Inference)优化。
* 提供高效的 分片内存管理 (PagedAttention) 技术,通过优化 GPU 和 CPU 之间的内存传输,减少内存消耗,使得可以在更少的资源下推理大型模型。
* 更好的异步并发执行模型,支持批量推理和更高的推理吞吐量。
* Transformers:
* 通用 NLP 框架,支持训练、微调和推理。
* 提供了丰富的模型支持(BERT, GPT, T5, RoBERTa 等)和任务(文本分类、机器翻译、文本生成等)。
* 灵活的接口设计,支持多种深度学习框架(如 TensorFlow、PyTorch、Flax)。
* Hugging Face Hub 提供大量预训练模型,易于使用和集成。
3. 性能和优化
* vLLM:
* PagedAttention 技术允许更高效地在有限内存中处理大模型(如 GPT-3 级别模型)。
* 针对推理的性能优化,使得 vLLM 特别适合需要处理高并发请求的场景。
* 提供更高的推理吞吐量和更低的延迟,尤其在批量请求中表现优异。
* Transformers:
* 提供了广泛的微调和训练优化工具,但在推理优化方面相对没有 vLLM 针对性强。
* 可通过集成其他工具(如 ONNX、TensorRT)优化推理性能,但这需要额外的设置和配置。
* 支持分布式训练和推理,适合大规模训练和模型扩展,但推理性能可能不如 vLLM 专门优化的那样出色。
4. 模型支持
* vLLM:
* 专注于 GPT 类别的大模型,特别是处理高效的语言生成任务。
* 主要支持的模型是基于自回归生成模型,适用于像 GPT-3 这样的大型语言模型。
* Transformers:
* 支持数百种模型架构,包括 BERT、GPT、T5、BART 等流行的预训练模型。
* 适合更多任务类型,包括文本生成、文本分类、序列标注、机器翻译等。
5. 易用性和生态系统
* vLLM:
* 专为推理任务设计,提供简洁的 API,方便集成到高性能推理系统中。
* 针对服务场景的性能优化,使其在处理多用户并发请求时有极大优势。
* 生态系统相对较新,主要是围绕高效推理进行开发,社区和工具链相对较小。
* Transformers:
* 拥有庞大的社区支持和丰富的生态系统,特别是 Hugging Face Hub 提供了开箱即用的预训练模型。
* 与 Hugging Face 的 Datasets、Tokenizers 等工具深度集成,支持端到端的 NLP 项目开发。
* 适用于广泛的研究和应用场景,社区和文档支持非常全面。
6. 使用场景
* vLLM:
* 适合需要高吞吐量、低延迟的推理任务,比如 AI 服务、聊天机器人 API、生产级推理服务等。
* 在资源有限的情况下推理超大模型(如 GPT-3 级别模型)。
* Transformers:
* 适合从研究到生产的完整 NLP 任务,包括模型训练、微调、推理等。
* 适合需要快速迭代开发、实验和部署的团队。
7. 扩展性和分布式支持
* vLLM:
* 主要优化单机多 GPU 环境的推理性能,但也有一定的分布式扩展能力。
* Transformers:
* 支持分布式训练和推理,通过像 DeepSpeed 和 PyTorch 的分布式库来扩展模型训练和推理。
* 可以运行在多 GPU、TPU 以及云环境中,支持跨设备并行计算。
总结
特性
vLLM
Transformers
主要用途
高效推理、大模型推理
通用 NLP 任务,训练、微调和推理
性能优化
内存和并发优化,低延迟、高吞吐量
依赖外部工具进行推理优化
模型支持
主要支持 GPT 类生成模型
支持多种模型架构和任务类型
易用性
针对推理简化 API,适合生产环境
丰富的社区支持,广泛的文档和教程
扩展性
单机多 GPU 优化,有限的分布式支持
强大的分布式支持,适合大规模训练和推理
两者的选择取决于具体的应用需求。如果你主要关注高效推理和部署 vLLM 是更好的选择,而如果你需要支持各种 NLP 任务并且进行研究或快速原型开发,Transformers 可能是更合适的选择。
性能差距大概多少?
vLLM 和 Hugging Face Transformers 框架之间的性能差距主要体现在推理性能,尤其是在处理大型语言模型(LLM)的高吞吐量和低延迟需求上。以下是两者在推理性能方面的具体差异:
1. 推理延迟
* vLLM:vLLM 针对推理延迟进行了专门优化,使用了 PagedAttention 技术,这种机制能够显著减少内存占用,并提升在大型模型推理时的效率。对于高并发的请求,vLLM 可以保持较低的延迟,尤其是当需要处理大量批量请求时。
* 延迟差异:在某些测试中,vLLM 能将推理延迟降低 30% 到 50%,尤其是在高并发负载下。
* Transformers:Transformers 的推理时间相对较高,特别是在处理非常大的模型时。虽然 Hugging Face 可以通过集成工具(如 ONNX、TensorRT)来提升推理速度,但这些优化需要额外的配置和调整。
* 典型表现:在未进行深度优化的情况下,Transformers 的推理延迟可能会比 vLLM 高出 50% 或更多,尤其是在处理大规模并发请求时。
2. 吞吐量
* vLLM:vLLM 的架构设计使得它可以处理大量并发请求,并且吞吐量随模型大小的增长表现出较好的线性扩展。由于更高效的 GPU 内存管理和并发执行,它能够在单机或多 GPU 环境中处理比 Transformers 框架更多的推理任务。
* 吞吐量差异:vLLM 在高负载下的吞吐量通常比 Transformers 高出 2 倍到 5 倍,特别是在需要处理批量请求的场景中。
* Transformers:尽管 Transformers 框架提供了广泛的模型支持,但在推理过程中,由于缺乏特定的并发优化,处理大规模模型或并发请求的吞吐量表现可能不如 vLLM。
* 典型表现:在推理任务上,Transformers 的吞吐量往往较低,尤其是在大规模模型(如 GPT-3 级别)上,吞吐量可能是 vLLM 的一半甚至更少。
3. 内存效率
* vLLM:vLLM 的 PagedAttention 可以动态分配内存,优化 GPU 和 CPU 之间的内存交换,使得在有限的硬件资源上可以运行更大的模型,并保持稳定的推理性能。这种内存优化机制极大地减少了内存压力。
* 内存差异:vLLM 的内存占用率比 Transformers 较低,特别是在推理大型模型时,vLLM 可以减少 30% 到 50% 的内存使用。
* Transformers:Transformers 主要依赖基础的内存管理机制,虽然在小模型或单一推理任务上表现尚可,但在处理大模型时,内存占用通常较高,需要更多的硬件资源才能达到相同的推理效果。
4. 硬件要求
* vLLM:通过优化 GPU 内存和并发性能,vLLM 可以在较少的 GPU 资源下高效运行,并且在同样的硬件配置下,可以推理更大的模型。适合在硬件资源有限的场景中部署。
* Transformers:Transformers 在推理时对 GPU 内存的需求较大,特别是在处理大型模型时,通常需要更多的 GPU 或者更高规格的硬件支持。
5. 典型场景的性能测试
* GPT-3 类模型:
* 在 vLLM 中推理 GPT-3 大约可以比 Transformers 快 1.5 到 2 倍,内存占用减少约 30%,尤其在批量请求下吞吐量更是大幅提升。
* BERT 类模型:
* 对于 BERT 类的小型模型,差距相对较小,因为 Transformer 在小型模型上的性能优化已经足够良好。但 vLLM 依然在并发推理和批量推理任务中表现更优。
总结:性能差距概述
1. 推理延迟:vLLM 比 Transformers 框架低 30% 到 50%。
2. 吞吐量:在批量推理任务中,vLLM 的吞吐量比 Transformers 高 2 倍到 5 倍。
3. 内存使用:vLLM 的内存优化使得它在处理大模型时能节省 30% 到 50% 的内存。
4. 硬件要求:vLLM 在相同的硬件配置下能够更高效运行大模型。
因此,vLLM 在专门优化推理任务,特别是对于大规模并发和批量任务的场景中,性能大幅优于 Transformers。如果你正在寻找高性能推理的解决方案,特别是服务端部署场景,vLLM 是更好的选择。
vllm.git@minicpm3 和 vllm 有什么区别?
vllm.git@minicpm3 和 vllm 之间的区别通常指向软件包来源和版本控制的不同:
1. vllm:
* 这是指直接从 Python 包管理器(如 PyPI)安装的 vllm 包。
* 该版本通常是最新的稳定版本或公开发布的版本,已经通过测试并准备好供大多数用户使用。
2. vllm.git@minicpm3:
* 这个指的是一个特定的 Git 分支、标签或提交 ID(minicpm3)的版本。
* 当你看到这种格式时,意味着你是在 Git 仓库中获取代码,而不是通过 PyPI。这种方法常用于获取最新的开发版本,或用于解决某个特定问题的修复分支。
* @minicpm3 表示你正在指定分支、标签或提交(在这个例子中是 minicpm3)。
你可以通过以下命令从 GitHub 克隆并安装特定分支:
pip install git+https://github.com/your-repo/vllm.git@minicpm3
安装命令通常是这样的:
pip install vllm
总结:
* vllm 是发布的稳定版本,从 PyPI 安装。
* vllm.git@minicpm3 是从源码仓库特定分支或提交安装,通常用于获取未正式发布的代码或开发中的版本。
MiniCPM 3.0 效果比肩甚至超越众多 7B-9B 模型
MiniCPM 3.0 是一个 4B 参数量的语言模型,相比 MiniCPM1.0/2.0,功能更加全面,综合能力大幅提升,多数评测集上的效果比肩甚至超越众多 7B-9B 模型。
* 支持工具调用🛠️(Function Calling)和代码解释器💻(Code Interpreter):Berkeley Function Calling Leaderboard (BFCL) 上取得 9B 规模以下 SOTA,超越 GLM-4-9B-Chat、Qwen2-7B-Instruct。
* 超强的推理能力🧮:数学能力方面,MathBench 上的效果超越 GPT-3.5-Turbo 以及多个 7B-9B 模型。在非常具有挑战性的 LiveCodeBench 上,效果超越 Llama3.1-8B-Instruct。
* 出色的中英文指令遵循能力🤖:英文指令遵循 IFEval、中文指令遵循 FollowBench-zh 效果超越 GLM-4-9B-Chat、Qwen2-7B-Instruct。
* 长文本能力:原生支持 32k 上下文长度,32k 长度内大海捞针全绿。提出 LLM x MapReduce ,理论可处理的上下文长度达到 +∞。
* RAG能力:我们发布了 MiniCPM RAG 套件。基于 MiniCPM 系列模型的 MiniCPM-Embedding、MiniCPM-Reranker 在中文、中英跨语言检索测试中取得 SOTA 表现;针对 RAG 场景的 MiniCPM3-RAG-LoRA 在开放域问答等多项任务上超越 Llama3-8B、Baichuan2-13B 等模型。
GitHub - OpenBMB/MiniCPM: MiniCPM3-4B: An edge-side LLM that surpasses GPT-3.5-Turbo.MiniCPM3-4B: An edge-side LLM that surpasses GPT-3.5-Turbo. - OpenBMB/MiniCPMGitHubOpenBMB
ERROR: Failed building wheel for vllm Failed to build vllm
这个错误表明在安装 vllm 包时,构建过程中的某个子进程失败了,具体是在编译过程中运行的 cmake 命令返回了非零的退出状态(即错误)。
以下是一些常见的解决方案,可能有助于解决问题:
1. 安装必备依赖
确保你有安装 cmake 和其他构建工具。这些工具可能是 vllm 安装所需要的:
sudo apt install build-essential cmake
2. 安装 Python 的开发库
某些 Python 包需要 Python 的头文件。你可以通过以下命令安装:
sudo apt install python3-dev
3. 检查 vllm 的依赖项
可能还有其他包依赖未安装。运行以下命令来安装编译所需的依赖:
sudo apt install libssl-dev libffi-dev
4. 尝试使用 --no-cache-dir
在某些情况下,pip 缓存可能会导致问题。你可以通过禁用缓存来避免:
pip install vllm --no-cache-dir
5. 降低并行编译线程数
构建过程尝试使用 -j=28 来同时编译多个目标,这可能会导致某些系统出现问题。可以尝试手动设置较少的线程数:
pip install vllm --no-binary :all:
如果这些方法未能解决问题,可以查看完整的错误日志,或直接查看 vllm 的 GitHub 仓库以确认是否存在已知问题。
ubuntu 安装python3
在 Ubuntu 上安装 Python 3 非常简单,通常 Python 3 是预装的。如果需要安装或更新它,可以按照以下步骤操作:
1. 更新包管理器
首先,确保你的系统软件包是最新的:
sudo apt update
sudo apt upgrade
2. 安装 Python 3
使用以下命令安装 Python 3:
sudo apt install python3
3. 安装 pip3(Python 3 的包管理工具)
为了安装 Python 包,可以安装 pip3:
sudo apt install python3-pip
4. 验证安装
检查 Python 和 pip 是否正确安装:
python3 --version
pip3 --version
5. 安装 Virtual Environment(可选)
要创建隔离的 Python 环境,安装 venv 模块:
sudo apt install python3-venv
这会允许你使用 venv 来创建虚拟环境。
安装完成后,Python 3 和 pip 就可以正常使用了。
要停用或退出当前的 Python 虚拟环境 (venv),你可以在终端中输入以下命令:
deactivate
这会将你的终端会话从虚拟环境中退出,恢复到系统默认的 Python 环境。
VLLM是什么
VLLM 是一个开源的、高效的、可扩展的大语言模型推理系统。它旨在为研究人员和开发人员提供一个易于使用且灵活的平台,用于部署和使用大型语言模型。VLLM 的主要特点包括:
* **高效的推理:**VLLM 通过高效的内存管理和计算优化,可以实现快速的模型推理。
* **可扩展性:**VLLM 支持在多个 GPU 上进行分布式推理,以处理更大的模型和更大的数据量。
* **易于使用:**VLLM 提供了一个简单的 API,可以轻松地集成到各种应用程序中。
* **开源:**VLLM 是一个开源项目,这意味着任何人都可以自由地使用、修改和分发它。
VLLM 可以用于各种自然语言处理任务,例如文本生成、机器翻译、问答和代码生成。
Qwen/Qwen-7B-Chat 需要多大的显存?
Qwen/Qwen-7B-Chat 模型需要至少 16GB 的显存才能运行。如果使用较小的显存,模型可能无法正常加载或运行。建议使用至少 24GB 的显存,以获得更好的性能。
以下是不同显存大小对 Qwen/Qwen-7B-Chat 模型运行的影响:
显存大小
运行效果
< 16GB
无法加载模型
16GB - 24GB
可以运行,但性能可能较差
> 24GB
性能最佳
深度学习与人工智能的最新突破
近年来,深度学习在人工智能领域取得了显著的突破,推动了各个领域的快速发展。以下是一些值得关注的最新突破:
* 自然语言处理 (NLP) 的进展: 大语言模型(LLM)如 ChatGPT 和 Bard 的出现,展现了在文本生成、翻译、问答等任务上的惊人能力。
* 计算机视觉的进步: 深度学习在图像识别、目标检测、图像生成等方面取得了重大进展,例如 DALL-E 2 和 Stable Diffusion 等模型能够根据文本描述生成逼真的图像。
* 强化学习的新突破: 深度强化学习在游戏、机器人控制等领域取得了突破性进展,例如 AlphaGo 在围棋比赛中战胜人类顶尖棋手。
* 自动驾驶技术的成熟: 深度学习在自动驾驶感知、路径规划、决策等方面发挥着关键作用,推动了自动驾驶技术的快速发展。
* 医疗领域的应用: 深度学习在医疗影像诊断、疾病预测、药物研发等方面展现了巨大潜力,例如在癌症诊断和治疗方面取得了显著成果。
深度学习与人工智能技术的不断突破,为各行各业带来了巨大的机遇和挑战。未来,随着技术的进一步发展,我们期待人工智能能够在更多领域发挥更重要的作用,为人类社会带来更大的福祉。