🚀 Llama Joycaption Alpha Two hf Llava FP8 Dynamic
這是對 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 = "Write a long descriptive caption for this image in a formal tone."
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": "You are a helpful image captioner.",
},
{
"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)
📄 許可證
本項目採用 MIT 許可證。
📋 模型信息
屬性 |
詳情 |
基礎模型 |
fancyfeast/llama-joycaption-alpha-two-hf-llava |
語言 |
en |
任務類型 |
圖像文本到文本 |
標籤 |
captioning、llava |