turing-motors/Heron-NVILA-Lite-15B

Model

> [!NOTE]

14

20 commits

2 repos using this model

5 linked in READMEs

updated Oct 20, 2025

See the code

README

[!NOTE] We have released Heron-NVILA-Lite-15B-hf, an implementation compatible with transformers.AutoModelForImageTextToText.

Heron-NVILA-Lite-15B

Heron-NVILA-Lite-15B is a vision language model trained for Japanese, based on the NVILA-Lite architecture.

Model Overview

Setup

# I have confirmed that 4.46.0 and 4.49.0 also work. Other versions of Transformer may also work, but I have not tested them.
pip install transformers==4.45.0 accelerate opencv-python torchvision einops pillow
pip install git+https://github.com/bfshi/scaling_on_scales.git

Usage

from transformers import AutoConfig, AutoModel

model_path = "turing-motors/Heron-NVILA-Lite-15B"

# you can use config
config = AutoConfig.from_pretrained(model_path, trust_remote_code=True)
model = AutoModel.from_config(config, trust_remote_code=True, device_map="auto")

# or directly from_pretrained
model = AutoModel.from_pretrained(model_path, trust_remote_code=True, device_map="auto")

# show chat_template
print(model.tokenizer.chat_template)

# examples generate with raw text
response = model.generate_content(["ใ“ใ‚“ใซใกใฏ"])
print(response)
print("---" * 40)

# examples generate with text + image
from PIL import Image
import requests
url = "http://images.cocodataset.org/val2017/000000039769.jpg"
image = Image.open(requests.get(url, stream=True).raw).convert("RGB")
response = model.generate_content([image, "็”ปๅƒใ‚’่ชฌๆ˜Žใ—ใฆใใ ใ•ใ„ใ€‚"])
print(response)
print("---" * 40)

# examples generate using generation_config
from PIL import Image
import requests
from transformers import GenerationConfig
generation_config = {
    "max_new_tokens": 512,
    "temperature": 0.5,
    "do_sample": True,
}
generation_config = GenerationConfig(**generation_config)
url = "http://images.cocodataset.org/val2017/000000039769.jpg"
image = Image.open(requests.get(url, stream=True).raw).convert("RGB")
response = model.generate_content(
    [image, "็”ปๅƒใ‚’่ชฌๆ˜Žใ—ใฆใใ ใ•ใ„ใ€‚"],
    generation_config=generation_config
)
print(response)
print("---" * 40)

# examples generate with text + image + text + image + text
from PIL import Image
import requests
url_list = [
    "https://images.unsplash.com/photo-1694831404826-3400c48c188d?q=80&w=2070&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D",
    "https://images.unsplash.com/photo-1693240876439-473af88b4ed7?q=80&w=1974&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
]
images = [
   Image.open(requests.get(url, stream=True).raw).convert("RGB") for url in url_list
]
response = model.generate_content([
    images[0],
    "ใ“ใ‚Œใฏๆ—ฅๆœฌใฎ็”ปๅƒใงใ™",
    images[1],
    "ใ“ใ‚Œใฏใ‚ชใƒผใ‚นใƒˆใƒชใ‚ขใฎ็”ปๅƒใงใ™",
    "ๅ„็”ปๅƒใฎ้•ใ„ใ‚’่ชฌๆ˜Žใ—ใฆ"])
print(response)
print("---" * 40)

Training Summary

Evaluation

I used llm-jp-eval-mm for this evaluation. Scores for models other than Heron-NVILA-Lite and Sarashina2-Vision-14B were taken from llm-jp-eval-mm leaderboard as of March 2025 and the Asagi website. Heron-NVILA-Lite and Sarashina2-Vision-14B were evaluated using llm-as-a-judge with "gpt-4o-2024-05-13". Sarashina2-Vision-14B was evaluated on the official blog using "gpt-4o-2024-08-06"; please note that due to differing evaluation conditions, the results for Sarashina2-Vision-14B should be treated as reference only.

ModelLLM SizeHeron-Bench overall LLM (%)JA-VLM-Bench-In-the-Wild LLM (/5.0)JA-VG-VQA-500 LLM (/5.0)
Heron-NVILA-Lite-1B0.5B45.92.923.16
Heron-NVILA-Lite-2B1.5B52.83.523.50
Heron-NVILA-Lite-15B14B59.64.23.82
LLaVA-CALM2-SigLIP7B43.33.153.21
Llama-3-EvoVLM-JP-v28B39.32.922.96
VILA-jp13B57.23.693.62
Asagi-14B13B55.83.443.84
Sarashina2-Vision-14B13B50.94.13.43
Qwen2-VL 7B Instruct7B55.53.613.6
GPT-4o-87.63.853.58

Risks and Limitations

This model is experimental and has not been thoroughly calibrated for ethical compliance or legal standards. Caution is advised for sensitive applications.

License

Acknowledgements

This model is based on results obtained from a project, JPNP20017, subsidized by the New Energy and Industrial Technology Development Organization (NEDO).

I would like to acknowledge the use of the following open-source repositories:

conversational
custom_code
image-text-to-text
multimodal
nvila
safetensors
vila

turing-motors/Heron-NVILA-Lite-15B

Model

> [!NOTE]

14

20 commits

2 repos using this model

5 linked in READMEs

updated Oct 20, 2025

See the code

README

[!NOTE] We have released Heron-NVILA-Lite-15B-hf, an implementation compatible with transformers.AutoModelForImageTextToText.

Heron-NVILA-Lite-15B

Heron-NVILA-Lite-15B is a vision language model trained for Japanese, based on the NVILA-Lite architecture.

Model Overview

Setup

# I have confirmed that 4.46.0 and 4.49.0 also work. Other versions of Transformer may also work, but I have not tested them.
pip install transformers==4.45.0 accelerate opencv-python torchvision einops pillow
pip install git+https://github.com/bfshi/scaling_on_scales.git

Usage

from transformers import AutoConfig, AutoModel

model_path = "turing-motors/Heron-NVILA-Lite-15B"

# you can use config
config = AutoConfig.from_pretrained(model_path, trust_remote_code=True)
model = AutoModel.from_config(config, trust_remote_code=True, device_map="auto")

# or directly from_pretrained
model = AutoModel.from_pretrained(model_path, trust_remote_code=True, device_map="auto")

# show chat_template
print(model.tokenizer.chat_template)

# examples generate with raw text
response = model.generate_content(["ใ“ใ‚“ใซใกใฏ"])
print(response)
print("---" * 40)

# examples generate with text + image
from PIL import Image
import requests
url = "http://images.cocodataset.org/val2017/000000039769.jpg"
image = Image.open(requests.get(url, stream=True).raw).convert("RGB")
response = model.generate_content([image, "็”ปๅƒใ‚’่ชฌๆ˜Žใ—ใฆใใ ใ•ใ„ใ€‚"])
print(response)
print("---" * 40)

# examples generate using generation_config
from PIL import Image
import requests
from transformers import GenerationConfig
generation_config = {
    "max_new_tokens": 512,
    "temperature": 0.5,
    "do_sample": True,
}
generation_config = GenerationConfig(**generation_config)
url = "http://images.cocodataset.org/val2017/000000039769.jpg"
image = Image.open(requests.get(url, stream=True).raw).convert("RGB")
response = model.generate_content(
    [image, "็”ปๅƒใ‚’่ชฌๆ˜Žใ—ใฆใใ ใ•ใ„ใ€‚"],
    generation_config=generation_config
)
print(response)
print("---" * 40)

# examples generate with text + image + text + image + text
from PIL import Image
import requests
url_list = [
    "https://images.unsplash.com/photo-1694831404826-3400c48c188d?q=80&w=2070&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D",
    "https://images.unsplash.com/photo-1693240876439-473af88b4ed7?q=80&w=1974&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
]
images = [
   Image.open(requests.get(url, stream=True).raw).convert("RGB") for url in url_list
]
response = model.generate_content([
    images[0],
    "ใ“ใ‚Œใฏๆ—ฅๆœฌใฎ็”ปๅƒใงใ™",
    images[1],
    "ใ“ใ‚Œใฏใ‚ชใƒผใ‚นใƒˆใƒชใ‚ขใฎ็”ปๅƒใงใ™",
    "ๅ„็”ปๅƒใฎ้•ใ„ใ‚’่ชฌๆ˜Žใ—ใฆ"])
print(response)
print("---" * 40)

Training Summary

Evaluation

I used llm-jp-eval-mm for this evaluation. Scores for models other than Heron-NVILA-Lite and Sarashina2-Vision-14B were taken from llm-jp-eval-mm leaderboard as of March 2025 and the Asagi website. Heron-NVILA-Lite and Sarashina2-Vision-14B were evaluated using llm-as-a-judge with "gpt-4o-2024-05-13". Sarashina2-Vision-14B was evaluated on the official blog using "gpt-4o-2024-08-06"; please note that due to differing evaluation conditions, the results for Sarashina2-Vision-14B should be treated as reference only.

ModelLLM SizeHeron-Bench overall LLM (%)JA-VLM-Bench-In-the-Wild LLM (/5.0)JA-VG-VQA-500 LLM (/5.0)
Heron-NVILA-Lite-1B0.5B45.92.923.16
Heron-NVILA-Lite-2B1.5B52.83.523.50
Heron-NVILA-Lite-15B14B59.64.23.82
LLaVA-CALM2-SigLIP7B43.33.153.21
Llama-3-EvoVLM-JP-v28B39.32.922.96
VILA-jp13B57.23.693.62
Asagi-14B13B55.83.443.84
Sarashina2-Vision-14B13B50.94.13.43
Qwen2-VL 7B Instruct7B55.53.613.6
GPT-4o-87.63.853.58

Risks and Limitations

This model is experimental and has not been thoroughly calibrated for ethical compliance or legal standards. Caution is advised for sensitive applications.

License

Acknowledgements

This model is based on results obtained from a project, JPNP20017, subsidized by the New Energy and Industrial Technology Development Organization (NEDO).

I would like to acknowledge the use of the following open-source repositories:

conversational
custom_code
image-text-to-text
multimodal
nvila
safetensors
vila