首页 > 其他分享 >Llama 3.2 900亿参数视觉多模态大模型本地部署及案例展示

Llama 3.2 900亿参数视觉多模态大模型本地部署及案例展示

时间:2024-12-23 19:31:09浏览次数:8  
标签:900 -- image question 3.2 result Llama root 模型

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% 的开销,以解决推理期间使用的额外内存问题。这不仅仅是一个安全缓冲区;它对于覆盖模型执行期间激活和其他中间结果所需的内存至关重要。

gpu-compute-components

这里想要估算为具有 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

相关文章

  • 全民AI时代:手把手教你用Ollama & AnythingLLM搭建AI知识库,无需编程,跟着做就行!
    前言在本地电脑上跑大语言模型(LLM),已经不是什么高科技操作了。随着技术的迭代,现在利用Ollam和AnythingLLM就可以轻松构建自己的本地知识库,人人皆可上手,有手就行。过往要达成这一目标,可是需要有编程经验的。首先得了解一下背后的原理。大概就是三步走:一是LLM,大语言模型,懂得......
  • llama.cpp:Android端测试 MobileVLM -- Android端手机部署图生文大模型
    llama.cpp:Android端测试MobileVLM1.环境需要2.构建项目3.Android测试1.环境需要以下是经实验验证可行的环境参考,也可尝试其他版本。(1)PC:Ubuntu22.04.4(2)硬件设备:Android手机(3)软件环境:如下表所示工具版本安装Anaconda2021.05参考:Anaconda3安装及使用cmake3.26.......
  • 自己搭建专属AI:Llama大模型私有化部署
    前言AI新时代,提高了生产力且能帮助用户快速解答问题,现在用的比较多的是Openai、Claude,为了保证个人隐私数据,所以尝试本地(MacM3)搭建Llama模型进行沟通。Gpt4all安装比较简单,根据 https://github.com/nomic-ai/gpt4all 下载客户端软件即可,打开是这样的:然后选择并下载模型文......
  • 5.3.2 Xenomai3:使用xeno-config获取编译和链接参数
    点击查看系列文章=》 InterruptPipeline系列文章大纲-CSDN博客原创不易,需要大家多多鼓励!您的关注、点赞、收藏就是我的创作动力!5.3.2Xenomai3:使用xeno-config获取编译和链接参数xeno-config是一个辅助脚本,用于为使用Xenomai库的应用程序提供正确的编译和链接标志。通过......
  • 本地大模型构建系列(一):5、python调用ollama本地大模型(Windows 10)
    第一步,安装Python依赖包:WIN+R,打开CMD,输入:pipinstallollama也可以使用镜像pipinstallollama-ihttps://pypi.tuna.tsinghua.edu.cn/simple第二步,启动ollama后,开始调用Ollama接口,以调用“qwen2.5:3b”为例启动大模型“qwen2.5:3b”:Win+R调出运行框,输入cmd,在cmd中输......
  • 【LLaMa-Factory】训练报错 a Tensor with 8 elements cannot be converted to Scalar
    Q:训练时,报错aTensorwith8elementscannotbeconvertedtoScalarA1:大概率时transformers版本不适配参考https://github.com/hiyouga/LLaMA-Factory/issues/5885A2降低transformers版本我这本来是4.46,后降为4.44版本就能用了pipinstalltransfor......
  • LLaMA (以LLaMA2为例,文末附加对比1 2 3 三个版本的变化)
    一、背景LLaMA2和LLaMA2-Chat参数规模:70亿、130亿和700亿数据和训练规模:上下文长度训练资源性能表现:二、预训练pretraining1.预训练数据·训练语料来自公开课用的数据源,不包括Meta的产品或服务数据·在2万亿个数据tokens上进行了训练·对真实的数据源进行上采......
  • 使用Llama-3.2-1B遇到的bug
    背景在使用Llama-3.2-1B时遇到一个关于pad_tokens经验不足的bug。没有指定pad_token的时候分词器会报错,这个使用有以下两种解决策略:配一个新的token。tokenizer.add_special_tokens({'pad_token':'[PAD]'})model.resize_token_embeddings(len(tokenizer))#如果添加了新......
  • USB3.2 ECN是什么
    USB3.2ECN(EngineeringChangeNotice)是一个针对USB3.2标准的技术更新和修订文件。让我详细解释一下:USB3.2标准背景USB3.2是通用串行总线(UniversalSerialBus)的一个版本,用于连接计算机和电子设备,提供数据传输和供电功能。ECN的作用ECN是一种在技术标准中用于引入小规......
  • flutter零基础教程: Dart 3.5语法 flutter3.24 2024年8月27日更新
    flutter零基础教程:Dart3.5语法flutter3.242024年8月27日更新https://www.bilibili.com/video/BV1RZ421p7BL7 142024-8edu.51cto.com/course/36476.htmlP1课程大纲介绍P2002课程使用方法介绍和笔记使用P3003_mac系统查看笔记软件的安装方法和…..P4004黑苹果系统的......