语言:
- 日语
标签:
- 视觉语言
- 图像描述生成
- 日语稳定视觉语言模型
管道标签: 图像转文本
许可证: 其他
额外授权提示: >-
点击"同意"即表示您同意遵守许可协议,并确认已知晓Stability AI的隐私政策。
额外授权字段:
姓名: 文本
邮箱: 文本
国家: 国家选择
所属机构: 文本
是否接收Stability AI产品、服务和研究的邮件更新及推广?:
类型: 单选
选项:
- '是'
- '否'
日语稳定视觉语言模型
注意:如需商业用途使用本模型,请参阅 https://stability.ai/license
日语商业合作咨询请发送邮件至 partners-jp@stability.ai
模型详情
日语稳定视觉语言模型是一款视觉语言指令跟随模型,能够为输入图像生成日语描述,并可选地处理输入文本(如问题)。
使用方法
import torch
from transformers import AutoTokenizer, AutoModelForVision2Seq, AutoImageProcessor
from PIL import Image
import requests
TASK2INSTRUCTION = {
"caption": "请详细描述这张图片。",
"tag": "使用给定的词语详细描述这张图片。",
"vqa": "根据提供的图片回答问题。",
}
def build_prompt(task="caption", input=None, sep="\n\n### "):
assert (
task in TASK2INSTRUCTION
), f"请从{list(TASK2INSTRUCTION.keys())}中选择任务"
if task in ["tag", "vqa"]:
assert input is not None, "请填写`input`参数!"
if task == "tag" and isinstance(input, list):
input = "、".join(input)
else:
assert input is None, f"`{task}`模式不支持输入问题"
sys_msg = "以下是指令说明与上下文输入组合的任务。请撰写能恰当满足要求的回答。"
p = sys_msg
roles = ["指令", "回答"]
instruction = TASK2INSTRUCTION[task]
msgs = [": \n" + instruction, ": \n"]
if input:
roles.insert(1, "输入")
msgs.insert(1, ": \n" + input)
for role, msg in zip(roles, msgs):
p += sep + role + msg
return p
device = "cuda" if torch.cuda.is_available() else "cpu"
model = AutoModelForVision2Seq.from_pretrained("stabilityai/japanese-stable-vlm", trust_remote_code=True)
processor = AutoImageProcessor.from_pretrained("stabilityai/japanese-stable-vlm")
tokenizer = AutoTokenizer.from_pretrained("stabilityai/japanese-stable-vlm")
model.to(device)
url = "https://images.unsplash.com/photo-1582538885592-e70a5d7ab3d3?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=1770&q=80"
image = Image.open(requests.get(url, stream=True).raw).convert("RGB")
prompt = build_prompt(task="caption")
inputs = processor(images=image, return_tensors="pt")
text_encoding = tokenizer(prompt, add_special_tokens=False, return_tensors="pt")
inputs.update(text_encoding)
outputs = model.generate(
**inputs.to(device, dtype=model.dtype),
do_sample=False,
num_beams=5,
max_new_tokens=128,
min_length=1,
repetition_penalty=1.5,
)
generated_text = tokenizer.batch_decode(outputs, skip_special_tokens=True)[0].strip()
print(generated_text)
模型详情
训练过程
本模型采用LLaVA 1.5架构,以stabilityai/japanese-stablelm-instruct-gamma-7b作为语言模型,openai/clip-vit-large-patch14作为图像编码器。训练分为两个阶段:第一阶段从零开始训练MLP投影层,第二阶段进一步微调语言模型和MLP投影层。
训练数据集
训练数据包含以下公开数据集:
使用与限制
预期用途
本模型旨在供开源社区用于视觉语言相关应用开发。
限制与偏差
尽管已进行数据过滤,训练数据仍可能包含不当内容。建议在生产系统中谨慎使用,禁止将该模型用于可能对个人或群体造成伤害的应用场景。
引用方式
@misc{JapaneseStableVLM,
url = {[https://huggingface.co/stabilityai/japanese-stable-vlm](https://huggingface.co/stabilityai/japanese-stable-vlm)},
title = {日语稳定视觉语言模型},
author = {Shing, Makoto and Akiba, Takuya}
}
联系方式