Llama 3.2 900亿参数视觉多模态大模型本地部署及案例展示
本文将介绍如何在本地部署Llama 3.2 90B(900亿参数)视觉多模态大模型,并开发一些Use Case,展示其强大的视觉理解能力。
Llama 3.2 介绍
今年9月,Meta公司发布了 Llama 3.2版本,包括11B 和 90B的中小型视觉大语言模型,适用于边缘计算和移动设备的1B 和 3B轻量级文本模型,,均预训练基础版和指令微调版,除此之外,还发布了一个安全模型Llama Guard 3。
Llama 3.2 Vision 是 Meta 发布的最强大的开源多模态模型。它具有出色的视觉理解和推理能力,可以用于完成各种任务,包括视觉推理与定位、文档问答和图像 - 文本检索,思维链 (Chain of Thought, CoT) 答案通常非常好,这使得视觉推理特别强大。
Llama 2于2023年7月发布,包含7B、13B和70B参数的模型。之后Meta在2024年4月推出了Llama 3,并在2024年7月迅速发布了Llama 3.1版本,更新了8B和70B的模型,最重要的是推出了一个拥有405B参数的基础级模型。这些模型支持8种语言,具备工具调用功能,并且拥有128K的上下文窗口。
2024年9月份刚刚发布了Llama 3.2模型,增强了Llama 3.1的8B和70B模型,构建出11B和90B多模态模型,使其具备了视觉能力。
Llama 3.2 系列中最大的两个模型 11B 和 90B 支持图像推理使用案例,例如文档级理解(包括图表和图形)、图像字幕和视觉接地任务(例如根据自然语言描述定向精确定位图像中的对象)。例如,可以问他们公司在上一年的哪个月销售额最好,然后 Llama 3.2 可以根据可用图表进行推理并快速提供答案。还可以使用地图进行推理并帮助回答诸如徒步旅行何时会遇到陡峭的地形,或在地图上标记路线的距离等问题。11B 和 90B 型号还可以通过从图像中提取细节、理解场景,然后生成一两个可用作图像标题的句子来帮助讲述故事,从而弥合视觉和语言之间的差距。
此外,Meta还发布了两个轻量级的模型:1B和3B模型,这些将帮助支持设备端的AI应用。
在本地运行这些模型有两个主要优势。首先,提示和响应可能会让人感觉是即时的,因为处理是在本地完成的。其次,在本地运行模型不会将消息和日历信息等数据发送到云中,从而保护隐私,从而使整个应用程序更加私密。由于处理是在本地处理的,因此应用程序可以清楚地控制哪些查询保留在设备上,哪些查询可能需要由云中的更大模型处理。
Llama Guard 3也是3.2版本的一部分,这是一种视觉安全模型,可以标记和过滤用户输入的有问题的图像和文本提示词。
GPU显卡内存估算
如何计算大模型到底需要多少显存,是常常被问起的问题,了解如何估算所需的 GPU 内存、正确调整硬件大小以服务这些模型至关重要。这是衡量你对这些大模型在生产中的部署和可扩展性的理解程度的关键指标。
要估算服务大型语言模型所需的 GPU 内存,可以使用以下公式:
$M=\frac{(P * 4 B)}{(32 / Q)} * 1.2$
- M是所需的 GPU 显卡内存(单位:GB千兆字节)。
- P是模型中的参数数量,表示模型的大小。例如,这里使用的 Llama 90B模型有 900 亿个参数,则该值将为 90。
- 4B表示每个参数使用 4 个字节。每个参数通常需要 4 个字节的内存。这是因为浮点精度通常占用 4 个字节(32 位)。但是,如果使用半精度(16 位),则计算将相应调整。
- Q是加载模型的位数(例如,16 位或 32 位)。根据以 16 位还是 32 位精度加载模型,此值将会发生变化。16 位精度在许多大模型部署中很常见,因为它可以减少内存使用量,同时保持足够的准确性。
- 1.2 乘数增加了 20% 的开销,以解决推理期间使用的额外内存问题。这不仅仅是一个安全缓冲区;它对于覆盖模型执行期间激活和其他中间结果所需的内存至关重要。
这里想要估算为具有 90B(900 亿)个参数、以 16 位精度加载的 Llama 3.2 90B 视觉大模型提供服务所需的内存:
$M=\frac{(90 * 4)}{(32 / 16)} * 1.2 = 216 GB$
这个计算告诉我们,需要大约216 GB 的 GPU 内存来为 16 位模式下具有 900 亿个参数的 Llama 3.2 90B 大模型提供服务。
因此,单个具有 80 GB 内存的 NVIDIA A100 GPU 或者 H00 GPU 不足以满足此模型的需求,需要至少3张具有 80 GB 内存的 A100 GPU 才能有效处理内存负载。
此外,仅加载 CUDA 内核就会消耗 1-2GB 的内存。实际上,无法仅使用参数填满整个 GPU 内存作为估算依据。
如果是训练大模型情况(下一篇文章会介绍),则需要更多的 GPU 内存,因为优化器状态、梯度和前向激活每个参数都需要额外的内存。
但博主囊中羞涩,为了完成这篇文章,选择 unsloth/Llama-3.2-90B-Vision-Instruct-bnb-4bit 的Llama 3.2 90B 视觉大模型的4bit量化模型,根据上面的估算公式,仅使用1张具有 80 GB 内存的 GPU 就可以运行完成本文案例所需的模型推理任务。
环境搭建
云服务器
找一台带一张H800 GPU 显卡的服务器(博主租用了一台服务器,花费大概50元左右就能跑完本文案例use case,当然还需要一些降低费用的小技巧,比如提前租用配置的服务器把模型文件下载到服务器,这样就可以节省很多费用
标签:900,--,image,question,3.2,result,Llama,root,模型 From: https://www.cnblogs.com/ibrahim/p/18624860/llama-3-2-90b-deploy-usecase