モデル概要
モデル特徴
モデル能力
使用事例
---
library_name: transformers
license: mit
datasets:
- 5CD-AI/LLaVA-CoT-o1-Instruct
language:
- vi
- en
- zh
pipeline_tag: image-text-to-text
---

## これは強化学習による強化前の基本的な推論モデルです。
マルチモーダルLLM×推論モデル 👀 🧠 🔍
[5CD-AI/LLaVA-CoT-o1-Instruct](https://huggingface.co/datasets/5CD-AI/LLaVA-CoT-o1-Instruct)データセット(2024年のHugging Faceで最も人気のあるデータセットの1つ 🎉)を作成してから6か月以上経った今、私たちはVintern推論モデルの「ベース」バージョンを完成させました!
- このモデルは、画像に基づいて長く複雑な推論を行うことができ、各推論ステップを複数のサブステップに分解しながら、幻覚をコントロールすることができます。
- 推論と同時に複数のタスクのバランスを取るのは難しいにもかかわらず、Vintern-3B-R-betaはさまざまなベンチマークでこれまでのすべてのバージョンを上回っています!
いつ[Vintern-1B-v3_5](https://huggingface.co/5CD-AI/Vintern-1B-v3_5)とVintern-3B-R-betaを選べばいいでしょうか? 🤔
- **Vintern-1B-v3_5**: 高速 ⚡ で、シンプルなテキスト形式のベトナム語OCRに適しています。 📝 非常に信頼性が高いです。 ✅
- **Vintern-3B-R-beta**: 複雑な質問や複雑な構造のドキュメント画像に適しています。 🔍📚 推論に重点を置いたトレーニングのため、ぼやけたり不明瞭なテキストのOCR性能はわずかに影響を受ける可能性があります。 🔍🤖
🚀 次のステップは? 強化学習による推論能力のトレーニングと強化です!
## ベンチマーク 📈

## 例1:
<FIND_CANDIDATES_REASONING>最も高い価格の料理を見つけるためには、以下の手順を実行する必要があります。
- 料理のリストを特定する: メニューには、サワーチリ炒えガエル、マーマレード揚げガエル、チリ焼きニワトリ、マーマレード揚げニワトリ、サワーチリ炒えウミガイ、サワーチリ炒えカナガイ、バターニンニク炒えカナガイ、サワーチリ炒えヒメウミガイ、バターニンニク炒えヒメウミガイ、モントウエビミートパテ、ナギ炒えバサカツオバンズ、チリ焼きバアサギ、サワーチリ炒えダダオニク、セロリ炒えダダオニク、サワーチリ炒えヤギニク、セロリ炒えヤギニク、キャベツ巻き焼きバサトラウ(2匹)、ハーブチリ焼きバサトラウ(2匹)、チャンギャンニワトリスープ、チャンギャンガエルスープ、イカスープ、牛肉スープなど、すべての料理のリストが記載されています。
- 各料理の価格を特定する: 各料理の横には、価格が明確に記載されています。 たとえば、サワーチリ炒えガエルは55k、マーマレード揚げガエルは55k、チリ焼きニワトリは50kなどです。
- 料理の価格を比較する: 最も高い価格の料理を見つけるために、各料理の価格を比較する必要があります。 このプロセスでは、どの料理も見逃さないように注意する必要があります。</FIND_CANDIDATES_REASONING>
<TOP3_CANDIDATES>
- キャベツ巻き焼きバサトラウ(2匹) 65k
- ハーブチリ焼きバサトラウ(2匹) 65k
- 牛肉スープ 69k </TOP3_CANDIDATES>
料理 | 価格 (VNĐ) |
---|---|
サワーチリ炒えガエル | 55k |
マーマレード揚げガエル | 55k |
チリ焼きニワトリ | 50k |
マーマレード揚げニワトリ | 50k |
サワーチリ炒えウミガイ | 45k |
サワーチリ炒えカナガイ | 49k |
バターニンニク炒えカナガイ | 49k |
サワーチリ炒えヒメウミガイ | 59k |
バターニンニク炒えヒメウミガイ | 59k |
モントウエビミートパテ | 55k |
ナギ炒えバサカツオバンズ | 55k |
チリ焼きバアサギ | 50k |
サワーチリ炒えダダオニク | 55k |
セロリ炒えダダオニク | 55k |
サワーチリ炒えヤギニク | 55k |
セロリ炒えヤギニク | 55k |
キャベツ巻き焼きバサトラウ(2匹) | 65k |
ハーブチリ焼きバサトラウ(2匹) | 65k |
チャンギャンニワトリスープ | 59k |
チャンギャンガエルスープ | 65k |
イカスープ | 65k |
牛肉スープ | 69k |
比較した結果、最も高い価格の料理は、69kの牛肉スープです。 |
<COUNTER_ARGUMENTS>反対意見を持つ人は、以下のような議論をするかもしれません。
- 一部の料理の価格が低い: サワーチリ炒えガエル、マーマレード揚げガエル、チリ焼きニワトリ、マーマレード揚げニワトリ、サワーチリ炒えウミガイ、サワーチリ炒えカナガイ、バターニンニク炒えカナガイ、サワーチリ炒えヒメウミガイ、バターニンニク炒えヒメウミガイ、モントウエビミートパテ、ナギ炒えバサカツオバンズ、チリ焼きバアサギ、サワーチリ炒えダダオニク、セロリ炒えダダオニク、サワーチリ炒えヤギニク、セロリ炒えヤギニク、キャベツ巻き焼きバサトラウ(2匹)、ハーブチリ焼きバサトラウ(2匹)、チャンギャンニワトリスープ、チャンギャンガエルスープ、イカスープなど、一部の料理の価格は低いです。
- 価格は変動する可能性がある: 料理の価格は、時間や場所によって変動する可能性があります。 画像内の情報に基づいて価格を比較することは、実際の価格を正確に反映していない可能性があります。</COUNTER_ARGUMENTS>
<div align="center">
<img src="https://cdn-uploads.huggingface.co/production/uploads/6336b5c831efcb5647f00170/p-pG8lJu3_RUHrOIUsZeH.png" width="300"/>
</div>
## 例2:
<div align="center">
<img src="https://cdn-uploads.huggingface.co/production/uploads/6336b5c831efcb5647f00170/msklqHxFL0JTRw_Yf7LhQ.jpeg" width="300"/>
</div>
ユーザー: <画像> すべてのテキストをリストアップしてください。 応答: CHÍNH PHỦ Số: 626/QĐ-TTg CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập - Tự do - Hạnh phúc Hà Nội, ngày 29 tháng 7 năm 2002 QUYẾT ĐỊNH CỦA THỦ TƯỚNG CHÍNH PHỦ Phê duyệt Báo cáo nghiên cứu khả thi dự án đầu tư Nhà máy sản xuất phân bón diamôn phốt phát (DAP) tại khu Kinh tế Đình Vũ, thành phố Hải Phòng THỦ TƯỚNG (CHÍNH PHỦ) Căn cứ Luật Tổ chức Chính phủ ngày 25 tháng 12 năm 2001; Căn cứ Nghị định số 52/1999/NĐ-CP ngày 8 tháng 7 năm 1999 của Chính phủ ban hành (Quy chế quản lý đầu tư và xây dựng và Ngành dịch số 12/2000/ND-CP ngày 05 tháng 5 năm 2000) của Chính phủ quy định sửa đổi, bổ sung một số điều của Quy chế quản lý đầu tư và xây dựng. Xét đề nghị của Tổng công ty Hoá chất Việt Nam (công văn số 916/ CV-HĐQT ngày 01 tháng 11 năm 2001), ý kiến thẩm định của Bộ Kế hoạch và Đầu tư tại công văn số 1944 BKH/VPTD ngày 01 tháng 4 năm 2002, về việc phê duyệt Báo cáo nghiên cứu khả thi dự án đầu tư Nhà máy sản xuất phân bón diamôn phốt phát tại khu kinh tế Đình Vũ, thành phố Hải Phòng và ý kiến của các Bộ, ngành tại cuộc họp ngày 19 tháng 6 năm 2002, QUYẾT ĐỊNH: Điều 1. Phê duyệt Báo cáo nghiên cứu khả thi dự án đầu tư Nhà máy sản xuất phân bón DAP tại khu kinh tế Đình Vũ, thành phố Hải Phòng với các nội dung chính sau :
- Tên dự án : Nhà máy sản xuất phân bón DAP tại khu kinh tế Đình Vũ, thành phố Hải Phòng.
- Mục tiêu đầu tư: góp phần đảm bảo ổn định và chủ động trong việc cung cấp phân bón DAP cho phát triển nông nghiệp, hạn chế nhập khẩu, sử dụng có hiệu quả hơn nguồn tài nguyên quặng apatit trong nước.
- Chủ đầu tư : Tổng công ty Hoá chất Việt Nam.
## クイックスタート
ここでは、トークナイザーとモデルをロードし、コンテンツを生成する方法を示すコードスニペットを提供します。
モデルを使用して推論を実行するには、Colabの推論ノートブックに記載されている手順に従ってください。
[](https://colab.research.google.com/drive/1ZD1oB56PF0lF66RCuTVJYLTEV0tM3CFf?usp=sharing)
```python
import numpy as np
import torch
import torchvision.transforms as T
# from decord import VideoReader, cpu
from PIL import Image
from torchvision.transforms.functional import InterpolationMode
from transformers import AutoModel, AutoTokenizer
IMAGENET_MEAN = (0.485, 0.456, 0.406)
IMAGENET_STD = (0.229, 0.224, 0.225)
def build_transform(input_size):
MEAN, STD = IMAGENET_MEAN, IMAGENET_STD
transform = T.Compose([
T.Lambda(lambda img: img.convert('RGB') if img.mode != 'RGB' else img),
T.Resize((input_size, input_size), interpolation=InterpolationMode.BICUBIC),
T.ToTensor(),
T.Normalize(mean=MEAN, std=STD)
])
return transform
def find_closest_aspect_ratio(aspect_ratio, target_ratios, width, height, image_size):
best_ratio_diff = float('inf')
best_ratio = (1, 1)
area = width * height
for ratio in target_ratios:
target_aspect_ratio = ratio[0] / ratio[1]
ratio_diff = abs(aspect_ratio - target_aspect_ratio)
if ratio_diff < best_ratio_diff:
best_ratio_diff = ratio_diff
best_ratio = ratio
elif ratio_diff == best_ratio_diff:
if area > 0.5 * image_size * image_size * ratio[0] * ratio[1]:
best_ratio = ratio
return best_ratio
def dynamic_preprocess(image, min_num=1, max_num=12, image_size=448, use_thumbnail=False):
orig_width, orig_height = image.size
aspect_ratio = orig_width / orig_height
# calculate the existing image aspect ratio
target_ratios = set(
(i, j) for n in range(min_num, max_num + 1) for i in range(1, n + 1) for j in range(1, n + 1) if
i * j <= max_num and i * j >= min_num)
target_ratios = sorted(target_ratios, key=lambda x: x[0] * x[1])
# find the closest aspect ratio to the target
target_aspect_ratio = find_closest_aspect_ratio(
aspect_ratio, target_ratios, orig_width, orig_height, image_size)
# calculate the target width and height
target_width = image_size * target_aspect_ratio[0]
target_height = image_size * target_aspect_ratio[1]
blocks = target_aspect_ratio[0] * target_aspect_ratio[1]
# resize the image
resized_img = image.resize((target_width, target_height))
processed_images = []
for i in range(blocks):
box = (
(i % (target_width // image_size)) * image_size,
(i // (target_width // image_size)) * image_size,
((i % (target_width // image_size)) + 1) * image_size,
((i // (target_width // image_size)) + 1) * image_size
)
# split the image
split_img = resized_img.crop(box)
processed_images.append(split_img)
assert len(processed_images) == blocks
if use_thumbnail and len(processed_images) != 1:
thumbnail_img = image.resize((image_size, image_size))
processed_images.append(thumbnail_img)
return processed_images
def load_image(image_file, input_size=448, max_num=12):
image = Image.open(image_file).convert('RGB')
transform = build_transform(input_size=input_size)
images = dynamic_preprocess(image, image_size=input_size, use_thumbnail=True, max_num=max_num)
pixel_values = [transform(image) for image in images]
pixel_values = torch.stack(pixel_values)
return pixel_values
model = AutoModel.from_pretrained(
"5CD-AI/Vintern-3B-R-beta",
torch_dtype=torch.bfloat16,
low_cpu_mem_usage=True,
trust_remote_code=True,
use_flash_attn=False,
).eval().cuda()
tokenizer = AutoTokenizer.from_pretrained("5CD-AI/Vintern-3B-R-beta", trust_remote_code=True, use_fast=False)
test_image = 'test-image.jpg'
think_prompt_format = """<画像>\nあなたは非常に慎重で疑い深い人です。 以下の質問にベトナム語で回答してください。 推論するときは、通常、証拠を列挙して、可能な答え、推論、および選択または削除する理由を説明してから、最終的な答えを提示します。
質問:
{question_input}
以下の形式で非常に長く回答してください。
<SUMMARY>...</SUMMARY>
<CAPTION>...</CAPTION>
<INFORMATION_EXTRACT>...</INFORMATION_EXTRACT>
<EXTERNAL_KNOWLEDGE_EXPANSION>...</EXTERNAL_KNOWLEDGE_EXPANSION>
<FIND_CANDIDATES_REASONING>...</FIND_CANDIDATES_REASONING>
<TOP3_CANDIDATES>...</TOP3_CANDIDATES>
<REASONING_PLAN>...</REASONING_PLAN>
<REASONING>...</REASONING>
<COUNTER_ARGUMENTS>...</COUNTER_ARGUMENTS>
<VALIDATION_REASONING>...</VALIDATION_REASONING>
<CONCLUSION>...</CONCLUSION>
"""
pixel_values = load_image(test_image, max_num=6).to(torch.bfloat16).cuda()
generation_config = dict(max_new_tokens= 1024, do_sample=False, num_beams = 3, repetition_penalty=2.5)
question = '<画像>\n画像内の主要な情報を抽出し、Markdown形式で返してください。'
response, history = model.chat(tokenizer, pixel_values, question, generation_config, history=None, return_history=True)
print(f'ユーザー: {question}\n応答: {response}')
#question = "別の質問 ......"
#response, history = model.chat(tokenizer, pixel_values, question, generation_config, history=history, return_history=True)
#print(f'ユーザー: {question}\n応答: {response}')
引用
@misc{doan2024vintern1befficientmultimodallarge,
title={Vintern-1B: An Efficient Multimodal Large Language Model for Vietnamese},
author={Khang T. Doan and Bao G. Huynh and Dung T. Hoang and Thuc D. Pham and Nhat H. Pham and Quan T. M. Nguyen and Bang Q. Vo and Suong N. Hoang},
year={2024},
eprint={2408.12480},
archivePrefix={arXiv},
primaryClass={cs.LG},
url={https://arxiv.org/abs/2408.12480},
}
参考文献
[1] Z. Chen et al., ‘Expanding performance boundaries of open-source multimodal models with model, data, and test-time scaling’, arXiv preprint arXiv:2412. 05271, 2024.








