VARCO VISION 14B
VARCO-VISION-14B 是一款強大的英韓視覺語言模型(VLM),支持圖像和文本輸入,生成文本輸出,具備定位、引用和OCR能力。
下載量 1,022
發布時間 : 11/25/2024
模型概述
VARCO-VISION-14B 是一款多模態視覺語言模型,支持英語和韓語,能夠處理圖像和文本輸入,生成文本輸出。該模型具備定位、引用和OCR等特殊功能,適用於多種視覺語言任務。
模型特點
多模態支持
支持圖像和文本輸入,生成文本輸出,實現視覺語言理解與生成。
定位功能
能夠識別圖像中的特定位置,並生成包含邊界框信息的響應。
引用功能
通過邊界框處理位置特定的問題,專注於指定位置的對象。
OCR能力
支持光學字符識別,能夠識別圖像中的文本並提取相關信息。
多語言支持
支持英語和韓語,適用於跨語言視覺語言任務。
模型能力
圖像理解
文本生成
定位
引用
OCR
多語言處理
使用案例
視覺問答
圖像描述生成
輸入一張圖像,模型生成詳細的描述文本。
生成包含圖像中對象和場景的詳細描述。
位置特定問答
針對圖像中特定位置的對象進行問答。
準確回答關於指定位置對象的問題。
OCR應用
文本提取
從圖像中提取文本信息。
準確識別並提取圖像中的文本內容。
🚀 VARCO-VISION-14B
VARCO-VISION-14B 是一款強大的英韓雙語視覺語言模型(VLM)。該模型的訓練流程包含四個階段:特徵對齊預訓練、基礎監督微調、高級監督微調以及偏好優化。在多模態和純文本基準測試中,VARCO-VISION-14B 不僅在性能上超越了其他同規模模型,還取得了與專有模型相當的分數。該模型目前接受單張圖像和文本作為輸入,並生成文本輸出,支持定位、指稱以及 OCR(光學字符識別)。
🚀 快速開始
直接使用
要加載 VARCO-VISION-14B,首先需要克隆並安裝 LLaVA-NeXT:
git clone https://github.com/LLaVA-VL/LLaVA-NeXT
cd LLaVA-NeXT
pip install -e ".[train]"
安裝 LLaVA-NeXT 後,你可以使用以下代碼加載 VARCO-VISION-14B:
import torch
from transformers import AutoTokenizer
from llava.model.language_model.llava_qwen import LlavaQwenForCausalLM
from llava.mm_utils import tokenizer_image_token, process_images
model_name = "NCSOFT/VARCO-VISION-14B"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = LlavaQwenForCausalLM.from_pretrained(
model_name,
torch_dtype=torch.float16,
attn_implementation="flash_attention_2",
low_cpu_mem_usage=True,
device_map="auto"
)
vision_tower = model.get_vision_tower()
image_processor = vision_tower.image_processor
準備一張圖像和一個文本輸入,你需要對圖像進行預處理並對文本進行分詞,然後將處理後的輸入傳遞給模型以生成預測結果。
import requests
from PIL import Image
# Define a chat history and use `apply_chat_template` to get correctly formatted prompt
# Each value in "content" has to be a list of dicts with types ("text", "image")
conversation = [
{
"role": "user",
"content": [
{"type": "text", "text": "Describe this image."},
{"type": "image"},
],
},
]
prompt = tokenizer.apply_chat_template(conversation, add_generation_prompt=True, tokenize=False)
IMAGE_TOKEN_INDEX = -200
EOS_TOKEN = "<|im_end|>"
input_ids = tokenizer_image_token(prompt, tokenizer, IMAGE_TOKEN_INDEX, return_tensors="pt")
input_ids = input_ids.unsqueeze(0).to(model.device)
image_url = "http://images.cocodataset.org/val2017/000000039769.jpg"
raw_image = Image.open(requests.get(image_url, stream=True).raw)
image_tensors = process_images([raw_image], image_processor, model.config)
image_tensors = [image_tensor.half().to(model.device) for image_tensor in image_tensors]
image_sizes = [raw_image.size]
with torch.inference_mode():
output_ids = model.generate(
input_ids,
images=image_tensors,
image_sizes=image_sizes,
do_sample=False,
max_new_tokens=1024,
use_cache=True,
)
outputs = tokenizer.batch_decode(output_ids)[0]
if outputs.endswith(EOS_TOKEN):
outputs = outputs[: -len(EOS_TOKEN)]
outputs = outputs.strip()
print(outputs)
✨ 主要特性
專業特性
如果問題基於邊界框或需要邊界框作為輸出,請在輸入文本中包含特殊標記。 以下特殊標記用於為模型定義特定任務、輸入和輸出:
<gro>
:表示模型的響應應包含邊界框信息。<ocr>
:指定用於識別圖像中文本的 OCR 任務。<char>
和</char>
:用於標記文本短語。<obj>
和</obj>
:用於表示對象。<bbox>
和</bbox>
:用於表示邊界框。<delim>
:表示單個對象或文本的多個位置點。
定位
定位是指模型需要在圖像中識別特定位置以提供合適答案的任務。要執行定位任務,請在問題前加上特殊標記 <gro>
。
conversation = [
{
"role": "user",
"content": [
{"type": "text", "text": "<gro>\nDescribe the image in detail."},
{"type": "image"},
],
},
]
預期輸出示例:
The image shows <obj>two cats</obj><bbox>0.521, 0.049, 0.997, 0.783<delim>0.016, 0.108, 0.512, 0.99</bbox> lying on <obj>a pink blanket</obj><bbox>0.002, 0.231, 0.999, 0.999</bbox>. The cat on the left is lying on its side with its head resting on the blanket and its body stretched out. The cat on the right is lying on its back with its paws stretched out and its head turned to the side. Both cats appear relaxed and comfortable. There are also <obj>two remote controls</obj><bbox>0.039, 0.138, 0.283, 0.257<delim>0.508, 0.166, 0.581, 0.295</bbox> placed near the cats, one on each side of them.
指稱
VARCO-VISION-14B 可以使用邊界框處理特定位置的問題。要執行指稱任務,請在對話中使用 <obj>
和 </obj>
標記包含感興趣的對象,並使用 <bbox>
和 </bbox>
標記指定其位置,這可以讓模型理解上下文並專注於指定位置的對象。邊界框以 (x1, y1, x2, y2) 的形式表示,前兩個值表示邊界框的左上角位置,後兩個值表示右下角位置。
conversation = [
{
"role": "user",
"content": [
{
"type": "text",
"text": "<obj>이 물건</obj><bbox>0.039, 0.138, 0.283, 0.257</bbox>은 어떻게 쓰는거야?",
},
{"type": "image"},
],
},
]
預期輸出示例:
**이 물건**은 리모컨으로, 주로 텔레비전이나 다른 전자 기기를 원격으로 조작하는 데 사용됩니다. 버튼을 누르면 채널 변경, 볼륨 조절, 전원 켜기/끄기 등의 기능을 수행할 수 있습니다. 리모컨의 버튼에는 일반적으로 숫자, 메뉴, 설정, 재생/일시정지 등의 기능이 포함되어 있으며, 사용자는 이를 통해 손쉽게 기기를 제어할 수 있습니다.
OCR
要執行光學字符識別(OCR)任務,請使用 <ocr>
標記。
image_file = "./assets/ocr_1.png"
raw_image = Image.open(image_file)
conversation = [
{
"role": "user",
"content": [
{"type": "text", "text": "<ocr>"},
{"type": "image"},
],
},
]
預期輸出示例:
<char>백범로</char><bbox>0.172, 0.265, 0.328, 0.34</bbox>
<char>124번길</char><bbox>0.349, 0.265, 0.512, 0.34</bbox>
<char>Baekbeom-ro</char><bbox>0.171, 0.335, 0.432, 0.391</bbox>
<char>124</char><bbox>0.444, 0.34, 0.508, 0.391</bbox>
<char>만수주공아파트</char><bbox>0.109, 0.528, 0.335, 0.594</bbox>
<char>시흥</char><bbox>0.443, 0.516, 0.522, 0.578</bbox>
<char>시청</char><bbox>0.711, 0.521, 0.811, 0.594</bbox>
<char>Mansu</char><bbox>0.103, 0.601, 0.181, 0.647</bbox>
<char>Jugong</char><bbox>0.186, 0.601, 0.273, 0.658</bbox>
<char>Apt</char><bbox>0.281, 0.601, 0.327, 0.651</bbox>
<char>42</char><bbox>0.377, 0.601, 0.416, 0.647</bbox>
<char>Shieung</char><bbox>0.445, 0.578, 0.53, 0.623</bbox>
<char>인천대공원</char><bbox>0.431, 0.623, 0.609, 0.684</bbox>
<char>모래내시장역</char><bbox>0.651, 0.591, 0.873, 0.664</bbox>
<char>IncheonGrand</char><bbox>0.433, 0.684, 0.561, 0.723</bbox>
<char>Park</char><bbox>0.564, 0.684, 0.611, 0.723</bbox>
📚 詳細文檔
- 開發者:NC Research,多模態生成團隊
- 技術報告:VARCO-VISION: Expanding Frontiers in Korean Vision-Language Models
- 博客(韓語):VARCO-VISION 技術報告總結
- 演示頁面:演示頁面已不可用
- 支持語言:韓語、英語
- 許可證:CC BY-NC 4.0
- 架構:VARCO-VISION-14B 遵循 LLaVA-OneVision 的架構。
- 基礎模型:
- Huggingface 版本模型:NCSOFT/VARCO-VISION-14B-HF
- 韓語 VLM 基準測試:
- 你還可以在 VLMEval 工具包 中評估 VARCO-VISION-14B。
- 本模型僅用於研究目的,禁止商業使用。
📄 許可證
本模型使用的許可證為 CC BY-NC 4.0。
🔖 引用該模型
如果你在研究中使用了 VARCO-VISION-14B,請引用以下內容:
@misc{ju2024varcovisionexpandingfrontierskorean,
title={VARCO-VISION: Expanding Frontiers in Korean Vision-Language Models},
author={Jeongho Ju and Daeyoung Kim and SunYoung Park and Youngjune Kim},
year={2024},
eprint={2411.19103},
archivePrefix={arXiv},
primaryClass={cs.CV},
url={https://arxiv.org/abs/2411.19103},
}
Clip Vit Large Patch14
CLIP是由OpenAI開發的視覺-語言模型,通過對比學習將圖像和文本映射到共享的嵌入空間,支持零樣本圖像分類
圖像生成文本
C
openai
44.7M
1,710
Clip Vit Base Patch32
CLIP是由OpenAI開發的多模態模型,能夠理解圖像和文本之間的關係,支持零樣本圖像分類任務。
圖像生成文本
C
openai
14.0M
666
Siglip So400m Patch14 384
Apache-2.0
SigLIP是基於WebLi數據集預訓練的視覺語言模型,採用改進的sigmoid損失函數,優化了圖像-文本匹配任務。
圖像生成文本
Transformers

S
google
6.1M
526
Clip Vit Base Patch16
CLIP是由OpenAI開發的多模態模型,通過對比學習將圖像和文本映射到共享的嵌入空間,實現零樣本圖像分類能力。
圖像生成文本
C
openai
4.6M
119
Blip Image Captioning Base
Bsd-3-clause
BLIP是一個先進的視覺-語言預訓練模型,擅長圖像描述生成任務,支持條件式和非條件式文本生成。
圖像生成文本
Transformers

B
Salesforce
2.8M
688
Blip Image Captioning Large
Bsd-3-clause
BLIP是一個統一的視覺-語言預訓練框架,擅長圖像描述生成任務,支持條件式和無條件式圖像描述生成。
圖像生成文本
Transformers

B
Salesforce
2.5M
1,312
Openvla 7b
MIT
OpenVLA 7B是一個基於Open X-Embodiment數據集訓練的開源視覺-語言-動作模型,能夠根據語言指令和攝像頭圖像生成機器人動作。
圖像生成文本
Transformers 英語

O
openvla
1.7M
108
Llava V1.5 7b
LLaVA 是一款開源多模態聊天機器人,基於 LLaMA/Vicuna 微調,支持圖文交互。
圖像生成文本
Transformers

L
liuhaotian
1.4M
448
Vit Gpt2 Image Captioning
Apache-2.0
這是一個基於ViT和GPT2架構的圖像描述生成模型,能夠為輸入圖像生成自然語言描述。
圖像生成文本
Transformers

V
nlpconnect
939.88k
887
Blip2 Opt 2.7b
MIT
BLIP-2是一個視覺語言模型,結合了圖像編碼器和大型語言模型,用於圖像到文本的生成任務。
圖像生成文本
Transformers 英語

B
Salesforce
867.78k
359
精選推薦AI模型
Llama 3 Typhoon V1.5x 8b Instruct
專為泰語設計的80億參數指令模型,性能媲美GPT-3.5-turbo,優化了應用場景、檢索增強生成、受限生成和推理任務
大型語言模型
Transformers 支持多種語言

L
scb10x
3,269
16
Cadet Tiny
Openrail
Cadet-Tiny是一個基於SODA數據集訓練的超小型對話模型,專為邊緣設備推理設計,體積僅為Cosmo-3B模型的2%左右。
對話系統
Transformers 英語

C
ToddGoldfarb
2,691
6
Roberta Base Chinese Extractive Qa
基於RoBERTa架構的中文抽取式問答模型,適用於從給定文本中提取答案的任務。
問答系統 中文
R
uer
2,694
98