语言:
- 英文
许可证: 其他
许可证名称: HSUL
许可证链接: https://huggingface.co/OEvortex/vortex-3b/raw/main/LICENSE.md
库名称: transformers
基础模型: visheratin/MC-LLaVA-3b
示例输入:
- 文本: 这是什么动物?
图片: https://huggingface.co/datasets/mishig/sample_images/resolve/main/tiger.jpg
- 文本: 这是哪里?
图片: https://huggingface.co/datasets/mishig/sample_images/resolve/main/palace.jpg
任务类型: 图像文本生成文本
HelpingAI视觉模型
模型详情
HelpingAI-Vision的核心创新在于:不同于传统方法为整张图像生成N个视觉标记嵌入,本模型为图像的每个分区生成单个标记嵌入。该架构基于HelpingAI-Lite模型并整合LLaVA适配器,旨在通过捕捉更细致的视觉信息来增强场景理解能力。
对于图像的每个裁剪区域,完整的SigLIP编码器会生成一个维度为[1, 1152]的嵌入向量。随后所有N个嵌入向量通过LLaVA适配器处理,最终输出维度为[N, 2560]的标记嵌入。当前版本暂未包含这些标记在原始图像中的位置信息,该功能将在后续更新中实现。
本模型基于MC-LLaVA-3b进行微调训练。
采用ChatML对话格式设计,特别适合聊天机器人场景。如有具体问题或需要进一步了解,欢迎咨询:
<|im_start|>system
你是Vortex,一个乐于助人的AI助手。<|im_end|>
<|im_start|>user
{用户输入}<|im_end|>
<|im_start|>assistant
使用指南
安装依赖库
!pip install -q open_clip_torch timm einops
下载模型文件
from huggingface_hub import hf_hub_download
hf_hub_download(repo_id="OEvortex/HelpingAI-Vision", filename="configuration_llava.py", local_dir="./", force_download=True)
hf_hub_download(repo_id="OEvortex/HelpingAI-Vision", filename="configuration_phi.py", local_dir="./", force_download=True)
hf_hub_download(repo_id="OEvortex/HelpingAI-Vision", filename="modeling_llava.py", local_dir="./", force_download=True)
hf_hub_download(repo_id="OEvortex/HelpingAI-Vision", filename="modeling_phi.py", local_dir="./", force_download=True)
hf_hub_download(repo_id="OEvortex/HelpingAI-Vision", filename="processing_llava.py", local_dir="./", force_download=True)
初始化模型
from modeling_llava import LlavaForConditionalGeneration
import torch
model = LlavaForConditionalGeneration.from_pretrained("OEvortex/HelpingAI-Vision", torch_dtype=torch.float16)
model = model.to("cuda")
配置处理器
from transformers import AutoTokenizer
from processing_llava import LlavaProcessor, OpenCLIPImageProcessor
tokenizer = AutoTokenizer.from_pretrained("OEvortex/HelpingAI-Vision")
image_processor = OpenCLIPImageProcessor(model.config.preprocess_config)
processor = LlavaProcessor(image_processor, tokenizer)
准备输入数据
from PIL import Image
import requests
image_file = "https://images.unsplash.com/photo-1439246854758-f686a415d9da"
raw_image = Image.open(requests.get(image_file, stream=True).raw)
prompt = """<|im_start|>system
人类与AI助手的对话场景。
助手需提供专业、详尽且礼貌的回答。
助手必须严格基于事实,避免幻觉,注重细节。<|im_end|>
<|im_start|>user
<image>
描述这张图片。<|im_end|>
<|im_start|>assistant
"""
处理输入数据
with torch.inference_mode():
inputs = processor(prompt, raw_image, model, return_tensors='pt')
inputs['input_ids'] = inputs['input_ids'].to(model.device)
inputs['attention_mask'] = inputs['attention_mask'].to(model.device)
from transformers import TextStreamer
streamer = TextStreamer(tokenizer)
生成输出结果
%%time
with torch.inference_mode():
output = model.generate(**inputs, max_new_tokens=200, do_sample=True, top_p=0.9, temperature=1.2, eos_token_id=tokenizer.eos_token_id, streamer=streamer)
print(tokenizer.decode(output[0]).replace(prompt, "").replace("<|im_end|>", ""))