SmolVLM:Hugging Face推出的轻量级视觉语言模型

本文涉及的产品
图像搜索,7款服务类型 1个月
简介: SmolVLM是Hugging Face推出的轻量级视觉语言模型,专为设备端推理设计。以20亿参数量,实现了高效内存占用和快速处理速度。SmolVLM提供了三个版本以满足不同需求,并完全开源,所有模型检查点、VLM数据集、训练配方和工具均在Apache 2.0许可证下发布。

❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发非常感兴趣,我会每日跟你分享最新的 AI 资讯和开源应用,也会不定期分享自己的想法和开源实例,欢迎关注我哦!

🥦 微信公众号|搜一搜:蚝油菜花 🥦


🚀 快速阅读

模型简介:SmolVLM是Hugging Face推出的轻量级视觉语言模型,专为设备端推理设计,具有高效内存占用和快速处理速度。
主要功能:提供设备端推理、微调能力、优化的架构设计、处理长文本和多张图像、低内存占用和高吞吐量。
应用场景:视频分析、视觉语言处理、本地部署和AI普及化。

正文(附运行示例)

SmolVLM 是什么

公众号: 蚝油菜花 - SmolVLM

SmolVLM是Hugging Face推出的轻量级视觉语言模型,专为设备端推理设计。以20亿参数量,实现了高效内存占用和快速处理速度。SmolVLM提供了三个版本以满足不同需求:SmolVLM-Base:适用于下游任务的微调。SmolVLM-Synthetic:基于合成数据进行微调。SmolVLM-Instruct:指令微调版本,可直接应用于交互式应用中。

模型借鉴Idefics3理念,采用SmolLM2 1.7B作为语言主干,通过像素混洗技术提升视觉信息压缩效率。在Cauldron和Docmatix数据集上训练,优化了图像编码和文本处理能力。

SmolVLM 的主要功能

  • 设备端推理:SmolVLM专为设备端推理设计,能在笔记本电脑、消费级GPU或移动设备等资源有限的环境下有效运行。
  • 微调能力:模型提供三个版本以满足不同需求:SmolVLM-Base用于下游任务的微调;SmolVLM-Synthetic基于合成数据进行微调;SmolVLM-Instruct指令微调版本,可直接应用于交互式应用中。
  • 优化的架构设计:借鉴Idefics3的理念,使用SmolLM2 1.7B作为语言主干,通过像素混洗策略提高视觉信息的压缩率,实现更高效的视觉信息处理。
  • 处理长文本和多张图像:训练数据集包括Cauldron和Docmatix,对SmolLM2进行上下文扩展,能处理更长的文本序列和多张图像。
  • 内存占用低:SmolVLM将384×384像素的图像块编码为81个tokens,相比之下,Qwen2-VL需要1.6万个tokens,显著降低了内存占用。
  • 高吞吐量:在多个基准测试中,SmolVLM的预填充吞吐量比Qwen2-VL快3.3到4.5倍,生成吞吐量快7.5到16倍。

SmolVLM 的技术原理

  • 架构设计:借鉴Idefics3的架构,使用SmolLM2 1.7B作为语言主干,通过像素混洗策略提高视觉信息的压缩率。
  • 图像编码:将384×384像素的图像块编码为81个tokens,显著降低内存占用。
  • 上下文扩展:通过扩展上下文窗口至16k tokens,支持处理更长的文本序列和多张图像。

如何运行 SmolVLM

以下是一个简单的代码示例,展示如何使用SmolVLM进行图像和文本的交互式处理。

from transformers import AutoProcessor, AutoModelForVision2Seq
import torch

DEVICE = "cuda" if torch.cuda.is_available() else "cpu"

processor = AutoProcessor.from_pretrained("HuggingFaceTB/SmolVLM-Instruct")
model = AutoModelForVision2Seq.from_pretrained("HuggingFaceTB/SmolVLM-Instruct",
                                                torch_dtype=torch.bfloat16,
                                                _attn_implementation="flash_attention_2" if DEVICE == "cuda" else "eager").to(DEVICE)

from PIL import Image
from transformers.image_utils import load_image

# Load images
image1 = load_image("https://huggingface.co/spaces/HuggingFaceTB/SmolVLM/resolve/main/example_images/rococo.jpg")
image2 = load_image("https://huggingface.co/spaces/HuggingFaceTB/SmolVLM/blob/main/example_images/rococo_1.jpg")

# Create input messages
messages = [
    {
   
        "role": "user",
        "content": [
            {
   "type": "image"},
            {
   "type": "image"},
            {
   "type": "text", "text": "Can you describe the two images?"}
        ]
    },
]

# Prepare inputs
prompt = processor.apply_chat_template(messages, add_generation_prompt=True)
inputs = processor(text=prompt, images=[image1, image2], return_tensors="pt")
inputs = inputs.to(DEVICE)

# Generate outputs
generated_ids = model.generate(**inputs, max_new_tokens=500)
generated_texts = processor.batch_decode(
    generated_ids,
    skip_special_tokens=True,
)

print(generated_texts[0])

资源


❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发非常感兴趣,我会每日跟你分享最新的 AI 资讯和开源应用,也会不定期分享自己的想法和开源实例,欢迎关注我哦!

🥦 微信公众号|搜一搜:蚝油菜花 🥦

相关文章
|
7月前
|
机器学习/深度学习 人工智能 开发工具
如何快速部署本地训练的 Bert-VITS2 语音模型到 Hugging Face
Hugging Face是一个机器学习(ML)和数据科学平台和社区,帮助用户构建、部署和训练机器学习模型。它提供基础设施,用于在实时应用中演示、运行和部署人工智能(AI)。用户还可以浏览其他用户上传的模型和数据集。Hugging Face通常被称为机器学习界的GitHub,因为它让开发人员公开分享和测试他们所训练的模型。 本次分享如何快速部署本地训练的 Bert-VITS2 语音模型到 Hugging Face。
如何快速部署本地训练的 Bert-VITS2 语音模型到 Hugging Face
|
5天前
|
机器学习/深度学习 人工智能 监控
AutoTrain:Hugging Face 开源的无代码模型训练平台
AutoTrain 是 Hugging Face 推出的开源无代码模型训练平台,旨在简化最先进模型的训练过程。用户无需编写代码,只需上传数据即可创建、微调和部署自己的 AI 模型。AutoTrain 支持多种机器学习任务,并提供自动化最佳实践,包括超参数调整、模型验证和分布式训练。
42 4
AutoTrain:Hugging Face 开源的无代码模型训练平台
|
5天前
|
机器学习/深度学习 人工智能 自然语言处理
LTX Video:Lightricks推出的开源AI视频生成模型
LTX Video是由Lightricks推出的开源AI视频生成模型,能够在4秒内生成5秒的高质量视频。该模型基于2亿参数的DiT架构,确保帧间平滑运动和结构一致性,支持长视频制作,适用于多种场景,如游戏图形升级和电子商务广告变体制作。
49 1
LTX Video:Lightricks推出的开源AI视频生成模型
|
14天前
|
机器学习/深度学习 人工智能 PyTorch
使用Pytorch构建视觉语言模型(VLM)
视觉语言模型(Vision Language Model,VLM)正在改变计算机对视觉和文本信息的理解与交互方式。本文将介绍 VLM 的核心组件和实现细节,可以让你全面掌握这项前沿技术。我们的目标是理解并实现能够通过指令微调来执行有用任务的视觉语言模型。
30 2
|
3天前
|
数据采集 文字识别 测试技术
智谱开源端侧大语言和多模态模型GLM-Edge系列!
GLM-Edge系列模型是由智谱开源,专为端侧应用设计的大语言对话模型和多模态理解模型,包括GLM-Edge-1.5B-Chat、GLM-Edge-4B-Chat、GLM-Edge-V-2B和GLM-Edge-V-5B四种尺寸。这些模型针对手机、车机及PC等不同平台进行了优化,通过量化的技术手段,实现了高效运行。例如,在高通骁龙8 Elite平台上,1.5B对话模型和2B多模态模型能够达到每秒60 tokens以上的解码速度,而通过应用投机采样技术,这一数字可提升至100 tokens以上。
|
4月前
|
机器学习/深度学习 自然语言处理 PyTorch
PyTorch与Hugging Face Transformers:快速构建先进的NLP模型
【8月更文第27天】随着自然语言处理(NLP)技术的快速发展,深度学习模型已经成为了构建高质量NLP应用程序的关键。PyTorch 作为一种强大的深度学习框架,提供了灵活的 API 和高效的性能,非常适合于构建复杂的 NLP 模型。Hugging Face Transformers 库则是目前最流行的预训练模型库之一,它为 PyTorch 提供了大量的预训练模型和工具,极大地简化了模型训练和部署的过程。
202 2
|
7月前
|
机器学习/深度学习 人工智能 自然语言处理
【LLM】能够运行在移动端的轻量级大语言模型Gemma实践
【4月更文挑战第12天】可以运行在移动端的开源大语言模型Gemma模型介绍
320 0
|
4月前
|
机器学习/深度学习 人工智能 自然语言处理
【开源项目】自然语言处理领域的明星项目推荐:Hugging Face Transformers
在当今人工智能与大数据飞速发展的时代,自然语言处理(NLP)已成为推动科技进步的重要力量。而在NLP领域,Hugging Face Transformers无疑是一个备受瞩目的开源项目。本文将从项目介绍、代码解释以及技术特点等角度,为您深入剖析这一热门项目。
77 10
|
5月前
|
人工智能 JSON 自然语言处理
国内大模型LLM选择以及主流大模型快速使用教程[GLM4/Qwen/Baichuan/Coze/Kimi]
【7月更文挑战第7天】国内大模型LLM选择以及主流大模型快速使用教程[GLM4/Qwen/Baichuan/Coze/Kimi]
242 10
国内大模型LLM选择以及主流大模型快速使用教程[GLM4/Qwen/Baichuan/Coze/Kimi]
|
4月前
|
机器学习/深度学习 人工智能 自然语言处理
【AI大模型】Transformers大模型库(二):AutoModelForCausalLM
【AI大模型】Transformers大模型库(二):AutoModelForCausalLM
110 1

热门文章

最新文章