利用免费 GPU 部署体验大型语言模型推理框架 vLLM

在这里插入图片描述

vLLM简介

vLLM 是一个快速且易于使用的 LLM(大型语言模型)推理和服务库。

vLLM 之所以快速,是因为:

  • 最先进的服务吞吐量

  • 通过 PagedAttention 高效管理注意力键和值内存

  • 连续批处理传入请求

  • 使用 CUDA/HIP 图快速模型执行

  • 量化:GPTQ[1]、AWQ[2]、SqueezeLLM[3]、FP8 KV 缓存

  • 优化的 CUDA 内核

vLLM 灵活且易于使用,因为它:

  • 与流行的 HuggingFace 模型无缝集成

  • 通过各种解码算法提供高吞吐量服务,包括并行采样、波束搜索等

  • 支持分布式推理的张量并行性

  • 支持流式输出

  • OpenAI 兼容的 API 服务器

  • 支持 NVIDIA GPU 和 AMD GPU

  • (实验性) 前缀缓存支持

  • (实验性) 多洛拉支持

技术交流群

前沿技术资讯、算法交流、求职内推、算法竞赛、面试交流(校招、社招、实习)等、与 10000+来自港科大、北大、清华、中科院、CMU、腾讯、百度等名校名企开发者互动交流~

我们建了大模型算法岗技术与面试交流群, 想要进交流群、需要源码&资料、提升技术的同学,可以直接加微信号:mlc2060。加的时候备注一下:研究方向 +学校/公司+CSDN,即可。然后就可以拉你进群了。

方式①、微信搜索公众号:机器学习社区,后台回复:加群
方式②、添加微信号:mlc2060,备注:技术交流

实践案例合集:《大模型实战宝典》(2024版)正式发布!

用通俗易懂方式讲解系列

  • 用通俗易懂的方式讲解:自然语言处理初学者指南(附1000页的PPT讲解)
  • 用通俗易懂的方式讲解:1.6万字全面掌握 BERT
  • 用通俗易懂的方式讲解:NLP 这样学习才是正确路线
  • 用通俗易懂的方式讲解:28张图全解深度学习知识!
  • 用通俗易懂的方式讲解:不用再找了,这就是 NLP 方向最全面试题库
  • 用通俗易懂的方式讲解:实体关系抽取入门教程
  • 用通俗易懂的方式讲解:灵魂 20 问帮你彻底搞定Transformer
  • 用通俗易懂的方式讲解:图解 Transformer 架构
  • 用通俗易懂的方式讲解:大模型算法面经指南(附答案)
  • 用通俗易懂的方式讲解:十分钟部署清华 ChatGLM-6B,实测效果超预期
  • 用通俗易懂的方式讲解:内容讲解+代码案例,轻松掌握大模型应用框架 LangChain
  • 用通俗易懂的方式讲解:如何用大语言模型构建一个知识问答系统
  • 用通俗易懂的方式讲解:最全的大模型 RAG 技术概览
  • 用通俗易懂的方式讲解:利用 LangChain 和 Neo4j 向量索引,构建一个RAG应用程序
  • 用通俗易懂的方式讲解:使用 Neo4j 和 LangChain 集成非结构化知识图增强 QA
  • 用通俗易懂的方式讲解:面了 5 家知名企业的NLP算法岗(大模型方向),被考倒了。。。。。
  • 用通俗易懂的方式讲解:NLP 算法实习岗,对我后续找工作太重要了!。
  • 用通俗易懂的方式讲解:理想汽车大模型算法工程师面试,被问的瑟瑟发抖。。。。
  • 用通俗易懂的方式讲解:基于 Langchain-Chatchat,我搭建了一个本地知识库问答系统
  • 用通俗易懂的方式讲解:面试字节大模型算法岗(实习)
  • 用通俗易懂的方式讲解:大模型算法岗(含实习)最走心的总结
  • 用通俗易懂的方式讲解:大模型微调方法汇总

免费的Google Colab T4 GPU

Google Colab 的 T4 GPU 是一种高性能的计算资源,由 Google 提供,用于加速机器学习和深度学习任务。T4 GPU 是由 NVIDIA 生产的 Tensor Core GPU,专为提供高效的深度学习推理和训练性能而设计。

以下是关于 Google Colab 的 T4 GPU 的一些关键特性:

  1. GPU 架构:T4 基于 NVIDIA 的 Ampere 架构,这是继 Turing 架构之后的新一代 GPU 架构,专为 AI 和机器学习工作负载优化。

  2. Tensor Cores:T4 包含 Tensor Cores,这些是专门为深度学习矩阵运算设计的处理单元,能够提供更高的计算效率和性能。

  3. 内存:T4 GPU 拥有 16 GB 的 GDDR6 显存,这对于处理大型模型和数据集来说是非常充足的。

  4. 计算能力:T4 GPU 提供高达 318 GFLOPS 的单精度浮点运算能力,以及 60 GFLOPS 的半精度(FP16)运算能力,这使得它能够快速执行复杂的数学运算。

  5. 多精度计算:除了 FP32 和 FP16,T4 还支持 INT8 和 INT4 精度计算,这有助于在保持性能的同时减少模型的内存占用和提高推理速度。

  6. 软件兼容性:T4 GPU 支持广泛的深度学习框架和库,如 TensorFlow、PyTorch、Keras 等,这意味着用户可以在他们选择的工具上无缝地使用 T4 GPU。

  7. 易于访问:在 Google Colab 中,用户可以通过简单的配置更改来访问 T4 GPU,无需复杂的设置或额外的硬件投资。

  8. 成本效益:虽然 T4 GPU 是一种高端计算资源,但 Google Colab 提供的免费和付费版本都允许用户以合理的成本使用这些 GPU,这对于学生、研究人员和开发者来说是一个很大的优势。

选择免费的T4 GPU

在这里插入图片描述

免费的T4 GPU

查看GPU信息

  • NVIDIA GPU 的详细信息
!nvidia-smi

在这里插入图片描述

GPU详细信息

nvidia-smi 是 NVIDIA 提供的一个命令行工具,用于监控和管理 NVIDIA GPU 设备。当你运行 nvidia-smi 命令时,它会返回一系列关于系统中所有 NVIDIA GPU 的详细信息

  • CUDA 版本:系统中安装的 CUDA 版本。

  • 驱动版本:GPU 驱动的版本。

  • 总显存:系统中所有 GPU 的总显存。

  • 其他系统级别的信息,如 CPU 使用率、内存使用情况等。

  • 显示每个进程对 GPU 显存的使用情况,包括进程 ID、已使用的显存量等。

  • GPU 编号:标识每个 GPU 的序号。

  • Name:显示 GPU 的型号。

  • Persistence-M:持续模式状态,显示是否开启,开启时 GPU 会保持唤醒状态以快速响应新任务。

  • Fan:风扇转速,显示为百分比,范围从 0 到 100%。

  • Temp:GPU 温度,单位是摄氏度。

  • Perf:性能状态,从 P0 到 P12,P0 表示最大性能,P12 表示最小性能。

  • Pwr:功耗,显示当前功耗和最大功耗。

  • Memory Usage:显存使用情况,包括总显存、已使用显存和剩余显存。

  • Bus-Id:GPU 总线的标识,格式为 domain🚌device.function。

  • Disp.A:显示 GPU 的显示输出是否激活。

  • Volatile GPU-Util:GPU 利用率,表示 GPU 正在执行的任务的负载百分比。

  • Uncorr. ECC:错误检查与纠正状态,与 GPU 的 ECC 内存相关。

  • Compute M:计算模式,显示 GPU 是处于默认模式还是特定计算模式。

# memory footprint support libraries/code
!ln -sf /opt/bin/nvidia-smi /usr/bin/nvidia-smi
!pip install -q gputilimport psutil
import humanize
import os
import GPUtil as GPUGPUs = GPU.getGPUs()
# XXX: only one GPU on Colab and isn’t guaranteed
gpu = GPUs[0]
def printm():process = psutil.Process(os.getpid())virtual_memory = humanize.naturalsize( psutil.virtual_memory().available )memory_info = humanize.naturalsize( process.memory_info().rss)memoryFree =gpu.memoryFreememoryUsed = gpu.memoryUsedmemoryUtil = gpu.memoryUtil*100memoryTotal = gpu.memoryTotalprint(f"Gen RAM Free: {virtual_memory} | Proc size: {memory_info}" )print("GPU RAM Free: {0:.0f}MB | Used: {1:.0f}MB | Util {2:3.0f}% | Total {3:.0f}MB".\format(memoryFree, memoryUsed, memoryUtil*100, memoryTotal))
printm() 

返回

 Preparing metadata (setup.py) ... doneBuilding wheel for gputil (setup.py) ... done
Gen RAM Free: 12.4 GB  | Proc size: 98.9 MB
GPU RAM Free: 15101MB | Used: 0MB | Util   0% | Total 15360MB
  • 查看cuda版本信息
!nvcc -V

返回

nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2023 NVIDIA Corporation
Built on Tue_Aug_15_22:02:13_PDT_2023
Cuda compilation tools, release 12.2, V12.2.140
Build cuda_12.2.r12.2/compiler.33191640_0

根据版本信息,需要从源码安装

安装vLLM

%%bash
git clone https://github.com/vllm-project/vllm src
cd /content/src
pip install -e .  # This may take 5-10 minutes.

检查torch版本

import torch
print(torch.version.cuda)

使用MODELSCOPE 镜像

%%bash
export VLLM_USE_MODELSCOPE=True

测试

from vllm import LLM, SamplingParams
prompts = ["Hello, my name is","The president of the United States is","The capital of France is","The future of AI is",
]
sampling_params = SamplingParams(temperature=0.8, top_p=0.95)
llm = LLM(model="Qwen/Qwen1.5-1.8B-Chat",dtype='half')

在这里插入图片描述

加载千问1.5-1.8B-Chat

outputs = llm.generate(prompts, sampling_params)# Print the outputs.
for output in outputs:prompt = output.promptgenerated_text = output.outputs[0].textprint(f"Prompt: {prompt!r}, Generated text: {generated_text!r}")

在这里插入图片描述

引用链接

[1] GPTQ: https://arxiv.org/abs/2210.17323
[2] AWQ: https://arxiv.org/abs/2306.00978
[3] SqueezeLLM: https://arxiv.org/abs/2306.07629

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/284087.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C#,图论与图算法,用于检查给定图是否为欧拉图(Eulerian Graph)的算法与源程序

1 欧拉图 欧拉图是指通过图(无向图或有向图)中所有边且每边仅通过一次通路, 相应的回路称为欧拉回路。具有欧拉回路的图称为欧拉图(Euler Graph), 具有欧拉通路而无欧拉回路的图称为半欧拉图。 对欧拉图的一个现代扩展是蜘蛛图,它向欧拉图增加了可以连接的存在点。 这给…

vue3对openlayers使用(加高德,天地图图层)

OpenLayers认识 WebGIS四大框架: Leaflet、OpenLayers、Mapbox、Cesium OpenLayers 是一个强大的开源 JavaScript 地图库,专注于提供可嵌入网页的交互式地图体验。作为一款地理信息系统(GIS)的前端开发工具,OpenLaye…

docker 和K8S知识分享

docker知识: 比如写了个项目,并且在本地调试没有任务问题,这时候你想在另外一台电脑或者服务器运行,那么你需要在另外一台电脑或者服务器配置相同的软件,比如数据库,web服务器,必要的插件和库等…

使用 chezmoi vscode, 管理你的 dotfiles

什么是 dotfiles In Unix-like operating systems, any file or folder that starts with a dot character (for example, /home/user/.config), commonly called a dot file or dotfile. 任何以 . 开头去命名的文件或者目录都可以称为 dotfile, 在 Unix-like 系统一般用的比较…

Mysql数据库深入理解

目录 一、什么是数据库 二、Mysql基本架构图 1.Mysql客户端/服务器架构 2.客户端与服务器的连接过程 3.服务器处理客户端请求 4.一条查询SQL执行顺序 4.1连接器 4.2查询缓存 4.3解析器 4.4执行器 4.4.1预处理阶段 4.4.2优化阶段 4.4.3执行阶段 5.一条记录如何存…

使用 Flink + Faker Connector 生成测试数据压测 MySQL

博主历时三年精心创作的《大数据平台架构与原型实现:数据中台建设实战》一书现已由知名IT图书品牌电子工业出版社博文视点出版发行,点击《重磅推荐:建大数据平台太难了!给我发个工程原型吧!》了解图书详情,…

VMware Workstation Pro 17虚拟机超级详细搭建(含redis,nacos,docker)(一)

今天从零搭建一下虚拟机的环境,把nacos,redis等微服务组件还有数据库搭建到里面,首先看到的是我们最开始下载VMware Workstation Pro 17 之后的样子,总共一起应该有三部分因为篇幅太长了 下载地址 : VMware - Delivering a Digit…

Mora: Enabling Generalist Video Generation via A Multi-Agent Framework

目录 论文地址:Mora: Enabling Generalist Video Generation viaA Multi-Agent Framework github地址:https://github.com/lichao-sun/Mora 一、摘要 (1)Mora 的主要特点: (2)Mora的应用场景…

Qt/C++通用跨平台Onvif工具/支持海康大华宇视华为天地伟业等/云台控制/预置位管理/工程调试利器

一、前言 在安防视频监控行业,Onvif作为国际标准,几乎主要的厂商都支持,不仅包含了国内的厂商,也包括主要的国际厂商,由于有了这个标准的存在,使得不同设备不同安防平台之间,能够接入各个厂家的…

【Linux】Linux开发工具-vim / 编译器-gcc/g++ / 调试器-gdb / git操作 / 项目自动化构建工具-make/Makefile

主页:醋溜马桶圈-CSDN博客 专栏:Linux_醋溜马桶圈的博客-CSDN博客 gitee:mnxcc (mnxcc) - Gitee.com 目录 1.在Linux写自己的第一个程序 1.1 nano指令 1.2 nano指令的使用 1.2.1 介绍 1.2.2 演示 1.2.2.1 创建.c文件 1.2.2.2 nano cod…

【黄啊码】如何用GPT和向量数据库做问答型AI

知识库服务依赖该数据库,Embedding 形式个性化训练 ChatGPT,必不可少的就是向量数据库 因为 qdrant 向量数据库只支持 Docker 部署,所以需要先安装好 Docker 服务。 命令行安装 拉取镜像 docker pull qdrant/qdrant 运行服务 docker run -…

【Godot 3.5控件】用TextureProgress制作血条

说明 本文写自2022年11月13日-14日,内容基于Godot3.5。后续可能会进行向4.2版本的转化。 概述 之前基于ProgressBar创建过血条组件。它主要是基于修改StyleBoxFlat,好处是它几乎可以算是矢量的,体积小,所有东西都是样式信息&am…

神级工具之git (一): git 基操

一切都从:Git User Manual开始,或者中文版的Git中文手册 核心概念 工作区 工作区我们可见的,可以进行修改的目录树。我们可以在目录树中进行文件的查看,修改。通常我们会使用一个神级编辑器Vim。我给她取了个名字,就…

Flutter开发进阶之瞧瞧BuildOwner

Flutter开发进阶之瞧瞧BuildOwner 上回说到关于Element Tree的构建还缺最后一块拼图,build的重要过程中会调用_element!.markNeedsBuild();,而markNeedsBuild会调用owner!.scheduleBuildFor(this);。 在Flutter框架中,BuildOwner负责管理构建…

Redis如何删除大key

参考阿里云Redis规范 查找大key: redis-cli --bigkeys 1、String类型: Redis 4.0及以后版本提供了UNLINK命令,该命令与DEL命令类似,但它会在后台异步删除key,不会阻塞当前客户端,也不会阻塞Redis服务器的…

光速论文能用吗 #媒体#知识分享#学习方法

光速论文是一个非常有效的论文写作、查重降重工具,它的使用非常简单方便,而且功能强大,是每个写作者必备的利器。 首先,光速论文具有强大的查重降重功能,能够快速检测论文中的抄袭部分,帮助作者避免不必要的…

Uibot6.0 (RPA财务机器人师资培训第3天 )财务招聘信息抓取机器人案例实战

训练网站:泓江科技 (lessonplan.cn)https://laiye.lessonplan.cn/list/ec0f5080-e1de-11ee-a1d8-3f479df4d981https://laiye.lessonplan.cn/list/ec0f5080-e1de-11ee-a1d8-3f479df4d981https://laiye.lessonplan.cn/list/ec0f5080-e1de-11ee-a1d8-3f479df4d981(本博…

目标检测预测框可视化python代码实现--OpenCV

import numpy as np import cv2 import colorsys from PIL import Image, ImageDraw, ImageFontdef puttext_cn(img, text, pt, color(255,0,0), size16):if (isinstance(img, np.ndarray)): # 判断是否OpenCV图片类型img Image.fromarray(cv2.cvtColor(img, cv2.COLOR_BGR2…

linux centos 安装jenkins,并构建spring boot项目

首先安装jenkins,使用war包安装,比较简单,注意看下载的版本需要的JDK版本,官网下载https://www.jenkins.io/download/ 把下载好的war包放到服务器上,然后运行,注意8080端口的放行 # 前台运行并指定端口 ja…

关于Rust的项目结构的笔记

层级 PackageCrateModulePath Package cargo的特性, 构建、测试、共享Crate 组成: 一个 Cargo.toml 文件, 描述了如何构建这些 Crates至少包含一个 crate最多只能包含一个 library crate可以包含任意个 binary crate cargo new demo-pro 会产生一个名为 demo-pro 的 Packa…