--- language: - ja tags: - heron - vision - image-captioning - VQA pipeline_tag: image-to-text license: - apache-2.0 inference: false --- # Heron BLIP Japanese StableLM Base 7B ![heron](./heron_image.png) ## Model Details Heron BLIP Japanese StableLM Base 7B is a vision-language model that can converse about input images.
This model was trained using [the heron library](https://github.com/turingmotors/heron). Please refer to the code for details. ## Usage Follow [the installation guide](https://github.com/turingmotors/heron/tree/dev-0.0.1#1-clone-this-repository). ```python import torch from heron.models.video_blip import VideoBlipForConditionalGeneration, VideoBlipProcessor from transformers import LlamaTokenizer device_id = 0 device = f"cuda:{device_id}" max_length = 512 MODEL_NAME = "turing-motors/heron-chat-blip-ja-stablelm-base-7b-v0" model = VideoBlipForConditionalGeneration.from_pretrained( MODEL_NAME, torch_dtype=torch.float16, ignore_mismatched_sizes=True ) model = model.half() model.eval() model.to(device) # prepare a processor processor = VideoBlipProcessor.from_pretrained("Salesforce/blip2-opt-2.7b") tokenizer = LlamaTokenizer.from_pretrained("novelai/nerdstash-tokenizer-v1", additional_special_tokens=['▁▁']) processor.tokenizer = tokenizer import requests from PIL import Image # prepare inputs url = "https://www.barnorama.com/wp-content/uploads/2016/12/03-Confusing-Pictures.jpg" image = Image.open(requests.get(url, stream=True).raw) text = f"##human: この画像の面白い点は何ですか?\n##human: " # do preprocessing inputs = processor( text=text, images=image, return_tensors="pt", truncation=True, ) inputs = {k: v.to(device) for k, v in inputs.items()} inputs["pixel_values"] = inputs["pixel_values"].to(device, torch.float16) # set eos token eos_token_id_list = [ processor.tokenizer.pad_token_id, processor.tokenizer.eos_token_id, int(tokenizer.convert_tokens_to_ids("##")) ] # do inference with torch.no_grad(): out = model.generate(**inputs, max_length=256, do_sample=False, temperature=0., eos_token_id=eos_token_id_list, no_repeat_ngram_size=2) # print result print(processor.tokenizer.batch_decode(out)) ``` ## Model Details * **Developed by**: [Turing Inc.](https://www.turing-motors.com/) * **Adaptor type**: [BLIP2](https://arxiv.org/abs/2301.12597) * **Lamguage Model**: [Japanese StableLM Base Alpha](https://huggingface.co/stabilityai/japanese-stablelm-base-alpha-7b) * **Language(s)**: Japanese * **License**: This model is licensed under [Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0). ### Training This model was initially trained with the Adaptor using STAIR Captions. In the second phase, it was fine-tuned with [LLaVA-Instruct-150K-JA](https://huggingface.co/datasets/turing-motors/LLaVA-Instruct-150K-JA) and Japanese Visual Genome using LoRA. ### Training Dataset - [LLaVA-Instruct-150K-JA](https://huggingface.co/datasets/turing-motors/LLaVA-Instruct-150K-JA) - [Japanese STAIR Captions](http://captions.stair.center/) - [Japanese Visual Genome VQA dataset](https://github.com/yahoojapan/ja-vg-vqa) ## Use and Limitations ### Intended Use This model is intended for use in chat-like applications and for research purposes. ### Limitations The model may produce inaccurate or false information, and its accuracy is not guaranteed. It is still in the research and development stage. ## How to cite ```bibtex @misc{GitJapaneseStableLM, url = {[https://huggingface.co/turing-motors/heron-chat-blip-ja-stablelm-base-7b-v0](https://huggingface.co/turing-motors/heron-chat-blip-ja-stablelm-base-7b-v0)}, title = {Heron BLIP Japanese StableLM Base 7B}, author = {Kotaro Tanahashi, Yuichi Inoue, and Yu Yamaguchi} } ``` ## Citations ```bibtex @misc{JapaneseInstructBLIPAlpha, url = {[https://huggingface.co/stabilityai/japanese-instructblip-alpha](https://huggingface.co/stabilityai/japanese-instructblip-alpha)}, title = {Japanese InstructBLIP Alpha}, author = {Shing, Makoto and Akiba, Takuya} } ``` --- license: apache-2.0 ---