当前位置: 首页 > news >正文

在矩池云使用 Llama-3.2-11B-Vision 详细指南

Llama 3.2-Vision是Meta开发的一系列多模态大型语言模型(LLMs),包含11B和90B两种规模的预训练和指令调整模型。
在这里插入图片描述

这些模型专门优化用于视觉识别、图像推理、字幕生成和回答有关图像的一般问题。Llama 3.2-Vision模型在常见行业基准测试中的表现优于许多现有的开源和封闭多模态模型。支持8种语言的文本任务,并且可以进行额外的语言微调。该模型使用独立的视觉适配器来支持图像识别任务,并通过监督式微调(SFT)和人类反馈的强化学习(RLHF)进行优化,以符合人类对有用性和安全性的偏好。
在这里插入图片描述

本文将带大家在矩池云快速使用 Llama-3.2-11B-Vision 进行推理。

上传模型和数据

如果租用的亚太区机器可以直接访问huggingface,在线下载模型和数据,无需操作以下步骤。

Llama-3.2-11B-Vision-Instruct 的模型放在Huggingface,租用国内服务器直接运行下载可能很慢,所以我们需要提前本地下载好,然后上传到矩池云网盘再租用机器使用。

注意 Llama-3.2 模型需要在 Huggingface 登录后申请才能下载,请先访问以下链接前往申请通过后再租用机器操作。

https://huggingface.co/meta-llama/Llama-3.2-11B-Vision-Instruct

本地下载好后,把相关文件上传到矩池云网盘即可,之后再根据项目需求进行调用。

租用机器

本次复现先使用的是亚太1区 NVIDIA RTX 4090 配置环境,镜像使用的是 Pytorch 2.4.0,选择好机器和镜像后,点击租用即可。

使用亚太1区的可以无感连 Github 和 HuggingFace,克隆 Github 代码或者下载Huggingface 模型很快。

在这里插入图片描述
租用成功后我们可以在租用页面看到机器的 SSH、Jupyterlab 等链接,矩池云官网有详细的教程介绍了如何使用这些链接连接服务器。
在这里插入图片描述

运行代码

接着上一步,我们直接打开 jupyterlab,新建一个 Notebook 。
在这里插入图片描述

安装环境

如果直接运行官方给的代码会出现一个包缺失错误,不要慌。
在这里插入图片描述在notebook cell中运行以下指令安装需要的python包。

# 这句rm指令是清除镜像里默认配置的国内pip镜像源,
# 如果你租用的不是亚太1区的机器,不用运行这句
!rm /root/.config/pip/pip.conf /root/.pip/pip.conf
!/root/miniconda3/envs/myconda/bin/pip install requests transformers huggingface_hub accelerate==0.34.2

在这里插入图片描述

登录 Huggingface

如果你已经本地下载上传好了 Llama-3.2 模型,则无需执行以下步骤。如果和我一样租用亚太1区机器,想直接在机器里下载模型,则需要执行以下步骤。

Huggingface access_token 获取方法:访问以下页面,登录Huggingface 后点击 Create new token即可。

https://huggingface.co/settings/tokens

在这里插入图片描述

再运行以下代码登录 Huggingface 。

from huggingface_hub import login# 设置你的 Hugging Face access token
access_token = "hf_UxxxxxxxxxxxxxxxxAX"# 登录
login(token=access_token)

在这里插入图片描述
登录后,再运行官方提供的推理代码即可开始下载模型,推理啦。如果租用亚太1区机器,模型总共21G,下载大概12分钟。

如果你是本地上传的模型,请将"meta-llama/Llama-3.2-11B-Vision-Instruct"改成你模型文件所在路径。

import requests
import torch
from PIL import Image
from transformers import MllamaForConditionalGeneration, AutoProcessormodel_id = "meta-llama/Llama-3.2-11B-Vision-Instruct"model = MllamaForConditionalGeneration.from_pretrained(model_id,torch_dtype=torch.bfloat16,device_map="auto",
)
processor = AutoProcessor.from_pretrained(model_id)url = "https://huggingface.co/datasets/huggingface/documentation-images/resolve/0052a70beed5bf71b92610a43a52df6d286cd5f3/diffusers/rabbit.jpg"
image = Image.open(requests.get(url, stream=True).raw)messages = [{"role": "user", "content": [{"type": "image"},{"type": "text", "text": "If I had to write a haiku for this one, it would be: "}]}
]
input_text = processor.apply_chat_template(messages, add_generation_prompt=True)
inputs = processor(image, input_text, return_tensors="pt").to(model.device)output = model.generate(**inputs, max_new_tokens=30)
print(processor.decode(output[0]))

官方案例运行结果:
在这里插入图片描述
换一张本地图片测试看看,我从矩池云官网截了一张图,然后问问 Llama 3.2 里面有什么信息。
随机截图结果:还不错,识别到了图中的4090等关键信息。
在这里插入图片描述
尝试将max_new_tokens从30变成300后,识别回复的内容更全面、更准确了,相应推理时间也变长了。
在这里插入图片描述

推理运行速度很快,显存占用22GB左右,可以在 3090、4090、A40、A6000等显卡运行推理。
在这里插入图片描述

保存环境

租用页面点击更多->保存到个人环境即可,输入环境名称,再点击保存环境按钮

注意:保存环境存放在你的矩池云网盘,默认有5g免费空间,像我现在保存环境20g,就得先去扩容,再保存,不然会保存失败。
在这里插入图片描述
保存成功后下次即可快速从保存环境启动啦,无需花时间等环境配置及模型下载了。

如果你复现有什么问题,或者有什么AI项目复现需求,欢迎评论交流,知无不言。

相关文章:

  • 开放式耳机究竟是不是智商税?百元蓝牙耳机2024推荐指南
  • 常见的计算机网络协议
  • Next.js 14 使用 react-md-editor 编辑器 并更改背景颜色
  • VUE a-table 动态拖动修改列宽+固定列
  • Unity XR 环境检测
  • Trimble隧道测量软件为您解锁新深度
  • 车视界系统小程序的设计
  • 【DCGAN 生成漫画头像】
  • 检查一个CentOS服务器的配置的常用命令
  • Android常用C++特性之std::none_of
  • springboot实战学习(10)(ThreadLoacl优化获取用户详细信息接口)(重写拦截器afterCompletion()方法)
  • 【云原生安全篇】Cosign助力Harbor验证镜像实践
  • Qt | Linux+QFileSystemWatcher文件夹和文件监视(例如监视U盘挂载目录)
  • react项目中引入最新版本eslint
  • 使用iTextPDF库时,设置文字为中文格式
  • IE9 : DOM Exception: INVALID_CHARACTER_ERR (5)
  • [笔记] php常见简单功能及函数
  • CNN 在图像分割中的简史:从 R-CNN 到 Mask R-CNN
  • Mysql优化
  • ng6--错误信息小结(持续更新)
  • Odoo domain写法及运用
  • Three.js 再探 - 写一个跳一跳极简版游戏
  • 从 Android Sample ApiDemos 中学习 android.animation API 的用法
  • 飞驰在Mesos的涡轮引擎上
  • 分布式任务队列Celery
  • 观察者模式实现非直接耦合
  • 基于阿里云移动推送的移动应用推送模式最佳实践
  • 前言-如何学习区块链
  • 如何用Ubuntu和Xen来设置Kubernetes?
  • 实现菜单下拉伸展折叠效果demo
  • 世界编程语言排行榜2008年06月(ActionScript 挺进20强)
  • 原生Ajax
  • linux 淘宝开源监控工具tsar
  • ​【经验分享】微机原理、指令判断、判断指令是否正确判断指令是否正确​
  • ​业务双活的数据切换思路设计(下)
  • #NOIP 2014# day.1 T3 飞扬的小鸟 bird
  • ()、[]、{}、(())、[[]]等各种括号的使用
  • (1)(1.11) SiK Radio v2(一)
  • (1)虚拟机的安装与使用,linux系统安装
  • (152)时序收敛--->(02)时序收敛二
  • (17)Hive ——MR任务的map与reduce个数由什么决定?
  • (2)关于RabbitMq 的 Topic Exchange 主题交换机
  • (C++17) std算法之执行策略 execution
  • (ZT)北大教授朱青生给学生的一封信:大学,更是一个科学的保证
  • (二)测试工具
  • (二十六)Java 数据结构
  • (力扣)1314.矩阵区域和
  • (六)软件测试分工
  • (每日一问)计算机网络:浏览器输入一个地址到跳出网页这个过程中发生了哪些事情?(废话少说版)
  • (转)EXC_BREAKPOINT僵尸错误
  • (转)真正的中国天气api接口xml,json(求加精) ...
  • .bat批处理(二):%0 %1——给批处理脚本传递参数
  • .bat批处理(一):@echo off
  • .net core 依赖注入的基本用发
  • .NET Framework 的 bug?try-catch-when 中如果 when 语句抛出异常,程序将彻底崩溃