|
ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 1.2em;font-weight: bold;display: table;margin: 4em auto 2em;padding-right: 0.2em;padding-left: 0.2em;background: rgb(15, 76, 129);color: rgb(255, 255, 255);">vLLM简介ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;margin: 1.5em 8px;letter-spacing: 0.1em;color: rgb(63, 63, 63);">vLLM 是一个快速且易于使用的 LLM(大型语言模型)推理和服务库。ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;margin: 1.5em 8px;letter-spacing: 0.1em;color: rgb(63, 63, 63);">vLLM 之所以快速,是因为:ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;padding-left: 1em;list-style: circle;color: rgb(63, 63, 63);" class="list-paddingleft-1"> •最先进的服务吞吐量 •通过PagedAttention高效管理注意力键和值内存 •连续批处理传入请求 •使用 CUDA/HIP 图快速模型执行 •量化:GPTQ[1]、AWQ[2]、SqueezeLLM[3]、FP8 KV 缓存 •优化的 CUDA 内核 ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;margin: 1.5em 8px;letter-spacing: 0.1em;color: rgb(63, 63, 63);">vLLM 灵活且易于使用,因为它:ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;padding-left: 1em;list-style: circle;color: rgb(63, 63, 63);" class="list-paddingleft-1">•与流行的 HuggingFace 模型无缝集成 •通过各种解码算法提供高吞吐量服务,包括并行采样、波束搜索等 •支持分布式推理的张量并行性 •支持流式输出 •OpenAI 兼容的 API 服务器 •支持 NVIDIA GPU 和 AMD GPU •(实验性) 前缀缓存支持 •(实验性) 多洛拉支持 ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 1.2em;font-weight: bold;display: table;margin: 4em auto 2em;padding-right: 0.2em;padding-left: 0.2em;background: rgb(15, 76, 129);color: rgb(255, 255, 255);">免费的Google Colab T4 GPUingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;margin: 1.5em 8px;letter-spacing: 0.1em;color: rgb(63, 63, 63);">Google Colab 的 T4 GPU 是一种高性能的计算资源,由 Google 提供,用于加速机器学习和深度学习任务。T4 GPU 是由 NVIDIA 生产的 Tensor Core GPU,专为提供高效的深度学习推理和训练性能而设计。ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;margin: 1.5em 8px;letter-spacing: 0.1em;color: rgb(63, 63, 63);">以下是关于 Google Colab 的 T4 GPU 的一些关键特性: ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;padding-left: 1em;color: rgb(63, 63, 63);" class="list-paddingleft-1">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
查看GPU信息!nvidia-smi 
nvidia-smi是 NVIDIA 提供的一个命令行工具,用于监控和管理 NVIDIA GPU 设备。当你运行nvidia-smi命令时,它会返回一系列关于系统中所有 NVIDIA GPU 的详细信息,
1.
• 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 是处于默认模式还是特定计算模式。
1.GPU 状态概览: 2.进程信息: 3.系统信息:
#memoryfootprintsupportlibraries/code !ln-sf/opt/bin/nvidia-smi/usr/bin/nvidia-smi !pipinstall-qgputil
importpsutil importhumanize importos importGPUtilasGPU
GPUs=GPU.getGPUs() #XXX nlyoneGPUonColabandisn’tguaranteed gpu=GPUs[0] defprintm(): process=psutil.Process(os.getpid()) virtual_memory=humanize.naturalsize(psutil.virtual_memory().available) memory_info=humanize.naturalsize(process.memory_info().rss) memoryFree=gpu.memoryFree memoryUsed=gpu.memoryUsed memoryUtil=gpu.memoryUtil*100 memoryTotal=gpu.memoryTotal
print(f"GenRAMFree:{virtual_memory}|Procsize:{memory_info}")
print("GPURAMFree:{0:.0f}MB|Used:{1:.0f}MB|Util{2:3.0f}%|Total{3:.0f}MB".\ format(memoryFree,memoryUsed,memoryUtil*100,memoryTotal)) printm()
返回 Preparingmetadata(setup.py)...done Buildingwheelforgputil(setup.py)...done GenRAMFree:12.4GB|Procsize:98.9MB GPURAMFree:15101MB|Used:0MB|Util0%|Total15360MB
!nvcc-V 返回 nvcc:NVIDIA(R)Cudacompilerdriver Copyright(c)2005-2023NVIDIACorporation BuiltonTue_Aug_15_22:02:13_PDT_2023 Cudacompilationtools,release12.2,V12.2.140 Buildcuda_12.2.r12.2/compiler.33191640_0
根据版本信息,需要从源码安装 安装vLLM%%bash gitclonehttps://github.com/vllm-project/vllmsrc cd/content/src pipinstall-e.#Thismaytake5-10minutes.
检查torch版本importtorch print(torch.version.cuda)
使用MODELSCOPE 镜像%%bash exportVLLM_USE_MODELSCOPE=True
测试fromvllmimportLLM,SamplingParams prompts=[ "Hello,mynameis", "ThepresidentoftheUnitedStatesis", "ThecapitalofFranceis", "ThefutureofAIis", ] sampling_params=SamplingParams(temperature=0.8,top_p=0.95) llm=LLM(model="Qwen/Qwen1.5-1.8B-Chat",dtype='half')

outputs=llm.generate(prompts,sampling_params)
#Printtheoutputs. foroutputinoutputs: prompt=output.prompt generated_text=output.outputs[0].text print(f"Prompt:{prompt!r},Generatedtext:{generated_text!r}")

|