--- language: ja tags: - japanese - vision-language - multimodal license: apache-2.0 datasets: - custom model-index: - name: LLaVA-JP-1.3B results: [] --- # Hibernates-JP-1.3b-Max This is a Japanese vision-language model based on LLaVA architecture with 1.3B parameters. ## Model Details - Model Type: Vision-Language Model - Base Model: HibernatesGpt2 (1.3B parameters) - Vision Encoder: ConvNeXt Large - Training Data: Custom Japanese vision-language dataset - Context Length: 1024 tokens - Vision Resolution: 1280x1280 - License: Apache 2.0 ## Usage [Add usage instructions here] ## Training Details - Vision Encoder: ConvNeXt Large - Hidden Size: 2048 - Number of Attention Heads: 16 - Number of Layers: 24 - Vision Feature Selection: patch - Vision Select Layer: -2 - Multimodal Projector Type: mlp2x_gelu ## Limitations [Add model limitations here] ## Citation [Add citation information if applicable] # Hibernates-JP-1.3b-Max Model Card Hibernates-JP-1.3b-Max は高解像度(1280x1280)に対応した日本語マルチモーダル言語モデルです。画像理解と自然な対話を組み合わせ、視覚的なコンテキストについて日本語で会話することができます。 ## Updates in Latest Version - 高解像度(1280x1280)での画像処理に対応 - 日本語での視覚言語理解を強化 - メモリ効率の改善とbfloat16による最適化 - 3段階の学習による精度向上 - 対話型の画像理解が可能 ## 🌟 Key Features - **高解像度対応**: 1280x1280の高解像度画像処理をサポート - **日本語最適化**: 日本語での自然な対話と画像理解 - **効率的な処理**: bfloat16とGradient Checkpointingによる最適化 - **3段階学習**: 段階的な学習による高精度な視覚-言語理解 - **軽量モデル**: 約1.7Bパラメータでの効率的な処理 ## Model Architecture The model consists of: - Vision Encoder: ConvNeXt Large (LAION-2B学習済み) - Cross-Modal Projector: 2層MLPによる特徴量変換 - Language Model: LLM-JP 1.3B (日本語特化モデル) - 総パラメータ数: 約1.7B ### 主な用途 - 🖼️ 画像説明生成 - 💬 画像に関する質問応答 - 🔍 視覚的詳細の分析 - 🗣️ マルチターン対話 - 📝 画像内容の要約 ## 💻 Quick Start ### 基本的な使い方 ```python import requests import torch import transformers from PIL import Image from transformers.generation.streamers import TextStreamer from llava.constants import DEFAULT_IMAGE_TOKEN, IMAGE_TOKEN_INDEX from llava.conversation import conv_templates, SeparatorStyle from llava.model.llava_gpt2 import LlavaGpt2ForCausalLM from llava.train.dataset import tokenizer_image_token if __name__ == "__main__": model_path = 'Hibernates/Hibernates-JP-1.3b-Max' device = "cuda" if torch.cuda.is_available() else "cpu" torch_dtype = torch.bfloat16 if device=="cuda" else torch.float32 model = LlavaGpt2ForCausalLM.from_pretrained( model_path, low_cpu_mem_usage=True, use_safetensors=True, torch_dtype=torch_dtype, device_map=device, ) tokenizer = transformers.AutoTokenizer.from_pretrained( model_path, model_max_length=1532, padding_side="right", use_fast=False, ) model.eval() conv_mode = "v1" conv = conv_templates[conv_mode].copy() # image pre-process image_url = "https://huggingface.co/rinna/bilingual-gpt-neox-4b-minigpt4/resolve/main/sample.jpg" image = Image.open(requests.get(image_url, stream=True).raw).convert('RGB') if device == "cuda": image_tensor = model.get_model().vision_tower.image_processor(image).unsqueeze(0).half().cuda().to(torch_dtype) else: image_tensor = model.get_model().vision_tower.image_processor(image).unsqueeze(0).to(torch_dtype) # create prompt # ユーザー: \n{prompt} prompt = "猫の隣には何がありますか?" inp = DEFAULT_IMAGE_TOKEN + '\n' + prompt conv.append_message(conv.roles[0], inp) conv.append_message(conv.roles[1], None) prompt = conv.get_prompt() input_ids = tokenizer_image_token( prompt, tokenizer, IMAGE_TOKEN_INDEX, return_tensors='pt' ).unsqueeze(0) if device == "cuda": input_ids = input_ids.to(device) input_ids = input_ids[:, :-1] # がinputの最後に入るので削除する stop_str = conv.sep if conv.sep_style != SeparatorStyle.TWO else conv.sep2 keywords = [stop_str] streamer = TextStreamer(tokenizer, skip_prompt=True, timeout=20.0) # predict with torch.inference_mode(): output_id = model.generate( inputs=input_ids, images=image_tensor, do_sample=False, temperature=1.0, top_p=1.0, max_new_tokens=256, streamer=streamer, use_cache=True, ) """猫の隣にはノートパソコンがあります。""" ### 🔧 Advanced Usage
パラメータのカスタマイズ ```python # 生成パラメータの調整 model.generate( temperature=0.8, # 創造性の制御 top_p=0.95, # サンプリングの多様性 max_new_tokens=1024 # 生成テキストの長さ ) ```
## Training dataset ### データセット構成 **Stage1 and Stage2 Pretrain** - [LLaVA-Pretrain-JA](https://huggingface.co/datasets/turing-motors/LLaVA-Pretrain-JA) **Stage3 Fine-tuning** - [LLaVA-v1.5-Instruct-620K-JA](https://huggingface.co/datasets/turing-motors/LLaVA-v1.5-Instruct-620K-JA) ## 📊 System Requirements - **GPU**: NVIDIA GPU with 12GB+ VRAM - **RAM**: 16GB+ - **Storage**: 10GB for model weights - **Python**: 3.8+ ## Acknowledgement 本モデルは以下のプロジェクトの成果を活用しています: - [ConvLLaVA](https://arxiv.org/abs/2405.15738) - [LLM-jp](https://llm-jp.nii.ac.jp/) - [Open CLIP](https://github.com/mlfoundations/open_clip) ## License このプロジェクトは [Creative Commons Attribution-NonCommercial 4.0 International License](https://creativecommons.org/licenses/by-nc/4.0/) の下でライセンスされています。