许可证: mit
基础模型:
- fancyfeast/llama-joycaption-alpha-two-hf-llava
语言:
- en
任务标签: 图像文本到文本
标签:
- 字幕生成
- llava
Llama Joycaption Alpha Two hf Llava FP8动态量化版
这是对fancyfeast开发的Llama JoyCaption Alpha Two模型进行的FP8压缩版本,使用llm-compressor工具实现,并兼容vllm框架。
虽然未经专业方法验证,但个人测试表明该模型在当前使用场景下表现良好。
所有荣誉归属于fancyfeast,更多细节请参阅官方模型页面。
快速使用指南
与Llama JoyCaption Alpha Two原版使用方法相同:
需安装compressed-tensors库来运行以下FP8代码。
import torch
from PIL import Image
from transformers import AutoProcessor, LlavaForConditionalGeneration
IMAGE_PATH = "image.jpg"
PROMPT = "请以正式语气为这张图片撰写详细描述。"
MODEL_NAME = "JKCHSTR/llama-joycaption-alpha-two-hf-llava-FP8-Dynamic"
processor = AutoProcessor.from_pretrained(MODEL_NAME)
llava_model = LlavaForConditionalGeneration.from_pretrained(MODEL_NAME, torch_dtype="bfloat16", device_map=0)
llava_model.eval()
with torch.no_grad():
image = Image.open(IMAGE_PATH)
convo = [
{
"role": "system",
"content": "你是一个专业的图片描述助手",
},
{
"role": "user",
"content": PROMPT,
},
]
convo_string = processor.apply_chat_template(convo, tokenize=False, add_generation_prompt=True)
assert isinstance(convo_string, str)
inputs = processor(text=[convo_string], images=[image], return_tensors="pt").to('cuda')
inputs['pixel_values'] = inputs['pixel_values'].to(torch.bfloat16)
generate_ids = llava_model.generate(
**inputs,
max_new_tokens=300,
do_sample=True,
suppress_tokens=None,
use_cache=True,
temperature=0.6,
top_k=None,
top_p=0.9,
)[0]
generate_ids = generate_ids[inputs['input_ids'].shape[1]:]
caption = processor.tokenizer.decode(generate_ids, skip_special_tokens=True, clean_up_tokenization_spaces=False)
caption = caption.strip()
print(caption)