Llama Joycaption Beta One Hf Llava GGUF
一个专为社区免费开放的图像字幕视觉语言模型(VLM),可用于训练扩散模型,支持多样化的图像风格和内容。
下载量 2,968
发布时间 : 6/8/2025
模型简介
该模型是一个基于Llama-3.1-8B-Instruct和SigLIP2的视觉语言模型,专注于生成高质量、多样化的图像字幕,适用于各种图像风格和内容。
模型特点
免费开源
模型权重开放,无使用限制,附带训练脚本和详细构建信息。
无审查
对安全内容(SFW)和不适宜公开内容(NSFW)的覆盖均衡,不会出现隐晦表述。
多样性
涵盖各种图像风格、内容、种族、性别、取向等,适合所有用户。
最小过滤
在大量图像上进行训练,能够理解现实世界的各个方面,但绝不包含非法内容。
模型能力
图像字幕生成
视觉语言理解
多样化内容生成
使用案例
图像字幕生成
生成正式描述性字幕
为图像生成详细、正式的字幕描述。
高质量、多样化的字幕输出。
训练扩散模型
用于训练扩散模型,生成更准确的图像描述。
提升扩散模型的生成质量。
🚀 llama-joycaption-beta-one-hf-llava GGUF模型
llama-joycaption-beta-one-hf-llava GGUF模型是一个图像字幕视觉语言模型(VLM),专为社区免费、开放且无审查地使用而构建,可用于训练扩散模型。
属性 | 详情 |
---|---|
基础模型 | meta-llama/Llama-3.1-8B-Instruct、google/siglip2-so400m-patch14-384 |
标签 | captioning |
管道标签 | image-text-to-text |
库名称 | transformers |
🚀 快速开始
若你想了解更多关于该模型的详细信息,请查看Github。
基础用法
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 = "fancyfeast/llama-joycaption-beta-one-hf-llava"
# Load JoyCaption
# bfloat16 is the native dtype of the LLM used in JoyCaption (Llama 3.1)
# device_map=0 loads the model into the first GPU
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():
# Load image
image = Image.open(IMAGE_PATH)
# Build the conversation
convo = [
{
"role": "system",
"content": "You are a helpful image captioner.",
},
{
"role": "user",
"content": PROMPT,
},
]
# Format the conversation
# WARNING: HF's handling of chat's on Llava models is very fragile. This specific combination of processor.apply_chat_template(), and processor() works
# but if using other combinations always inspect the final input_ids to ensure they are correct. Often times you will end up with multiple <bos> tokens
# if not careful, which can make the model perform poorly.
convo_string = processor.apply_chat_template(convo, tokenize = False, add_generation_prompt = True)
assert isinstance(convo_string, str)
# Process the inputs
inputs = processor(text=[convo_string], images=[image], return_tensors="pt").to('cuda')
inputs['pixel_values'] = inputs['pixel_values'].to(torch.bfloat16)
# Generate the captions
generate_ids = llava_model.generate(
**inputs,
max_new_tokens=512,
do_sample=True,
suppress_tokens=None,
use_cache=True,
temperature=0.6,
top_k=None,
top_p=0.9,
)[0]
# Trim off the prompt
generate_ids = generate_ids[inputs['input_ids'].shape[1]:]
# Decode the caption
caption = processor.tokenizer.decode(generate_ids, skip_special_tokens=True, clean_up_tokenization_spaces=False)
caption = caption.strip()
print(caption)
高级用法
vllm serve fancyfeast/llama-joycaption-beta-one-hf-llava --max-model-len 4096 --enable-prefix-caching
VLMs在vLLM上使用时有点挑剔,并且vLLM很耗内存,因此你可能需要针对特定环境调整设置,例如强制使用急切模式、调整max-model-len
、调整gpu_memory_utilization
等。
✨ 主要特性
- 免费开源:始终免费发布,权重开放,无使用限制,并且会像bigASP一样,附带训练脚本以及大量关于模型构建的详细信息。
- 无审查:对安全内容(SFW)和不适宜公开内容(NSFW)概念的覆盖均衡,不会出现隐晦表述。
- 多样性:涵盖各种图像风格、内容、种族、性别、取向等,适合所有用户。
- 最小过滤:在大量图像上进行训练,能够理解现实世界的各个方面,但绝不包含非法内容。
📚 详细文档
模型生成细节
该模型使用llama.cpp在提交版本5787b5da
时生成。
超越IMatrix的量化方法
正在测试一种新的量化方法,通过规则将重要层的量化级别提升到标准IMatrix之上。标准IMatrix在低比特量化和混合专家(MOE)模型中表现不佳,因此使用llama.cpp --tensor-type
来提升选定层的量化级别。详情见Layer bumping with llama.cpp。这种方法会增加模型文件大小,但能在给定模型大小下提高精度。
选择合适的模型格式
选择正确的模型格式取决于你的硬件能力和内存限制。
- BF16(Brain Float 16):若硬件支持BF16加速,推荐使用。这是一种16位浮点格式,旨在实现更快的计算速度,同时保持较高的精度。与FP32具有相似的动态范围,但内存使用更低。适用于需要高性能推理且希望减少内存占用的场景。
- 适用场景:硬件具备原生BF16支持(如较新的GPU、TPU);希望在节省内存的同时获得更高的精度;计划将模型重新量化为其他格式。
- 避免场景:硬件不支持BF16(可能会回退到FP32,导致运行速度变慢);需要与缺乏BF16优化的旧设备兼容。
- F16(Float 16):比BF16更广泛支持。是一种16位浮点格式,精度较高,但取值范围比BF16小。适用于大多数支持FP16加速的设备(包括许多GPU和一些CPU)。数值精度略低于BF16,但通常足以满足推理需求。
- 适用场景:硬件支持FP16但不支持BF16;需要在速度、内存使用和准确性之间取得平衡;在GPU或其他针对FP16计算优化的设备上运行。
- 避免场景:设备缺乏原生FP16支持(运行速度可能比预期慢);存在内存限制。
- 混合精度模型(如
bf16_q8_0
、f16_q4_K
):兼具两者优点。这些格式选择性地对非关键层进行量化,同时保持关键层的全精度(如注意力层和输出层)。- 适用场景:需要比仅量化模型更高的准确性,但无法承担全BF16/F16的内存开销;设备支持混合精度推理;希望在受限硬件上优化生产级模型的性能和内存使用。
- 避免场景:目标设备不支持混合或全精度加速;在超严格的内存限制下运行(此时应使用全量化格式)。
- 量化模型(Q4_K、Q6_K、Q8等):适用于CPU和低显存推理。量化可以在尽可能保持准确性的同时减少模型大小和内存使用。
- Q4_K:精度为中低,内存使用低,适用于CPU或低显存设备,是内存受限推理的理想选择。
- Q6_K:精度为中等,内存使用适中,适用于内存较多的CPU,在量化的同时提供较好的准确性。
- Q8_0:精度高,内存使用适中,适用于具有中等显存的GPU/CPU,是量化模型中准确性最高的。
- 极低比特量化(IQ3_XS、IQ3_S、IQ3_M、Q4_K、Q4_0):这些模型针对极高的内存效率进行了优化,适用于低功耗设备或大规模部署,其中内存是关键限制因素。
- IQ3_XS:超低位量化(3位),内存效率极高。适用于超低内存设备,即使Q4_K也太大的情况。但准确性较低。
- IQ3_S:小块大小,以实现最大内存效率。适用于低内存设备,当IQ3_XS过于激进时使用。
- IQ3_M:中等块大小,准确性优于IQ3_S。适用于低内存设备,当IQ3_S限制过多时使用。
- Q4_K:4位量化,具有块级优化,以提高准确性。适用于低内存设备,当Q6_K太大时使用。
- Q4_0:纯4位量化,针对ARM设备进行了优化。适用于基于ARM的设备或低内存环境。
- 超低比特量化(IQ1_S、IQ1_M、IQ2_S、IQ2_M、IQ2_XS、IQ2_XSS):超低比特量化(1 - 2位),具有极高的内存效率。适用于需要将模型装入非常受限内存的情况,但准确性非常低,使用前请充分测试。
模型格式选择总结表
模型格式 | 精度 | 内存使用 | 设备要求 | 最佳用例 |
---|---|---|---|---|
BF16 | 非常高 | 高 | 支持BF16的GPU/CPU | 高速推理,减少内存占用 |
F16 | 高 | 高 | 支持FP16的GPU/CPU | 当BF16不可用时进行推理 |
Q4_K | 中低 | 低 | CPU或低显存设备 | 内存受限的推理 |
Q6_K | 中等 | 适中 | 内存较多的CPU | 量化时获得更好的准确性 |
Q8_0 | 高 | 适中 | 具有中等显存的GPU/CPU | 量化模型中最高的准确性 |
IQ3_XS | 低 | 非常低 | 超低内存设备 | 最大内存效率,低准确性 |
IQ3_S | 低 | 非常低 | 低内存设备 | 比IQ3_XS更实用 |
IQ3_M | 中低 | 低 | 低内存设备 | 准确性优于IQ3_S |
Q4_0 | 低 | 低 | 基于ARM的/嵌入式设备 | Llama.cpp自动优化ARM推理 |
超低比特(IQ1/2_*) | 非常低 | 极低 | 小型边缘/嵌入式设备 | 将模型装入极紧的内存;低准确性 |
混合(如bf16_q8_0 ) |
中高 | 中等 | 支持混合精度的硬件 | 平衡性能和内存,关键层接近FP准确性 |
🔧 技术细节
免费网络监控助手测试
如果你觉得这些模型有用,请帮助测试我的AI驱动的免费网络监控助手,该助手具备量子就绪安全检查功能。
- 测试地址:Free Network Monitor
- 开源代码:免费网络监控服务的完整开源代码可在我的github仓库(名称中包含NetworkMonitor的仓库)中找到:Source Code Free Network Monitor。如果你想自己进行模型量化,也可以找到我使用的代码:GGUFModelBuilder。
测试方法
选择一种AI助手类型:
TurboLLM
(GPT - 4.1 - mini)HugLLM
(Huggingface开源模型)TestLLM
(仅支持CPU的实验性模型)
测试内容
正在挑战小型开源模型在AI网络监控中的极限,具体包括:
- 针对实时网络服务进行函数调用
- 探究模型在仍能处理以下任务的情况下可以达到多小:
- 自动Nmap安全扫描
- 量子就绪检查
- 网络监控任务
各助手特点
- TestLLM:当前的实验性模型(在Huggingface Docker空间的2个CPU线程上运行llama.cpp)
- 零配置设置
- 加载时间约30秒(推理速度慢,但无API成本),无令牌限制,因为成本较低。
- 寻求帮助!如果你对边缘设备AI感兴趣,让我们一起合作!
- TurboLLM:使用gpt - 4.1 - mini
- 性能出色,但OpenAI按令牌收费,因此令牌使用受限。
- 创建自定义命令处理器,在免费网络监控代理上运行.NET代码
- 实时网络诊断和监控
- 安全审计
- 渗透测试(Nmap/Metasploit)
- HugLLM:使用最新的开源模型
- 在Hugging Face推理API上运行,使用Novita托管的最新模型表现良好。
示例测试命令
"Give me info on my websites SSL certificate"
"Check if my server is using quantum safe encyption for communication"
"Run a comprehensive security audit on my server"
"Create a cmd processor to .. (what ever you want)"
注意,你需要安装免费网络监控代理才能运行.NET代码。这是一个非常灵活且强大的功能,请谨慎使用!
最后说明
我自掏腰包为创建这些模型文件的服务器、运行免费网络监控服务以及从Novita和OpenAI进行推理提供资金支持。模型创建和免费网络监控项目背后的所有代码都是开源的。如果你觉得这些内容有帮助,请随意使用。
如果你认可我的工作,请考虑请我喝杯咖啡☕。你的支持将有助于支付服务成本,并使我能够提高所有人的令牌限制。
我也欢迎工作机会或赞助。感谢你的支持!
Clip Vit Large Patch14
CLIP是由OpenAI开发的视觉-语言模型,通过对比学习将图像和文本映射到共享的嵌入空间,支持零样本图像分类
图像生成文本
C
openai
44.7M
1,710
Clip Vit Base Patch32
CLIP是由OpenAI开发的多模态模型,能够理解图像和文本之间的关系,支持零样本图像分类任务。
图像生成文本
C
openai
14.0M
666
Siglip So400m Patch14 384
Apache-2.0
SigLIP是基于WebLi数据集预训练的视觉语言模型,采用改进的sigmoid损失函数,优化了图像-文本匹配任务。
图像生成文本
Transformers

S
google
6.1M
526
Clip Vit Base Patch16
CLIP是由OpenAI开发的多模态模型,通过对比学习将图像和文本映射到共享的嵌入空间,实现零样本图像分类能力。
图像生成文本
C
openai
4.6M
119
Blip Image Captioning Base
Bsd-3-clause
BLIP是一个先进的视觉-语言预训练模型,擅长图像描述生成任务,支持条件式和非条件式文本生成。
图像生成文本
Transformers

B
Salesforce
2.8M
688
Blip Image Captioning Large
Bsd-3-clause
BLIP是一个统一的视觉-语言预训练框架,擅长图像描述生成任务,支持条件式和无条件式图像描述生成。
图像生成文本
Transformers

B
Salesforce
2.5M
1,312
Openvla 7b
MIT
OpenVLA 7B是一个基于Open X-Embodiment数据集训练的开源视觉-语言-动作模型,能够根据语言指令和摄像头图像生成机器人动作。
图像生成文本
Transformers 英语

O
openvla
1.7M
108
Llava V1.5 7b
LLaVA 是一款开源多模态聊天机器人,基于 LLaMA/Vicuna 微调,支持图文交互。
图像生成文本
Transformers

L
liuhaotian
1.4M
448
Vit Gpt2 Image Captioning
Apache-2.0
这是一个基于ViT和GPT2架构的图像描述生成模型,能够为输入图像生成自然语言描述。
图像生成文本
Transformers

V
nlpconnect
939.88k
887
Blip2 Opt 2.7b
MIT
BLIP-2是一个视觉语言模型,结合了图像编码器和大型语言模型,用于图像到文本的生成任务。
图像生成文本
Transformers 英语

B
Salesforce
867.78k
359
精选推荐AI模型
Llama 3 Typhoon V1.5x 8b Instruct
专为泰语设计的80亿参数指令模型,性能媲美GPT-3.5-turbo,优化了应用场景、检索增强生成、受限生成和推理任务
大型语言模型
Transformers 支持多种语言

L
scb10x
3,269
16
Cadet Tiny
Openrail
Cadet-Tiny是一个基于SODA数据集训练的超小型对话模型,专为边缘设备推理设计,体积仅为Cosmo-3B模型的2%左右。
对话系统
Transformers 英语

C
ToddGoldfarb
2,691
6
Roberta Base Chinese Extractive Qa
基于RoBERTa架构的中文抽取式问答模型,适用于从给定文本中提取答案的任务。
问答系统 中文
R
uer
2,694
98
智启未来,您的人工智能解决方案智库
简体中文