Project Icon

bakLlava-v1-hf

基于Mistral-7B的视觉到文本生成模型

该模型基于Mistral-7B,支持多图像与多提示操作,性能在多项基准测试中优于Llama 2 13B,适用于学术任务和视觉问答。项目更新中,以进一步优化使用体验。

bakLlava-v1-hf项目介绍

项目背景

bakLlava-v1-hf项目是基于原始Llava架构开发的人工智能模型,采用Mistral-7b作为文字基础。这个项目的主要目标是实现图像与文本的互转能力,即可以通过模型生成与图像相关的文字描述,或者反之。

模型概述

bakLlava是一个7B级别的模型,利用LLaVA 1.5架构进行增强。在此版本中,Mistral 7B基座在多个基准测试中表现优于Llama 2 13B。该项目目前开源,并且正在不断更新中,以便为用户提供更为方便的微调和推理环境。不过需要注意的是,bakLlava-1中使用的一些数据集包括了LLaVA的语料库,这不是商业许可的,但在未来的版本中会进行解决。

bakLlava的未来发展

开发团队正在着手于bakLlava 2版本的研发,计划使用更大规模的(商业许可的)数据集以及新的架构,以突破当前bakLlava-1的限制,使得模型在商业应用中更加灵活和合法。

如何使用模型

bakLlava模型支持多图像和多提示生成。使用时需要确保安装了 transformers 版本大于等于4.35.3,并遵循一定的提示模板。例如,在提示中使用特定格式USER: xxx\nASSISTANT:,并添加<image>标记来指定需要查询图片的地方。

可以通过Google Colab演示运行该模型的实例,或者访问Spaces演示

使用方法

借助pipeline

如下使用pipeline库来处理图像到文本的转换:

from transformers import pipeline
from PIL import Image    
import requests

model_id = "llava-hf/bakLlava-v1-hf"
pipe = pipeline("image-to-text", model=model_id)

url = "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/transformers/tasks/ai2d-demo.jpg"
image = Image.open(requests.get(url, stream=True).raw)

conversation = [
    {
      "role": "user",
      "content": [
          {"type": "text", "text": "What does the label 15 represent? (1) lava (2) core (3) tunnel (4) ash cloud"},
          {"type": "image"},
        ],
    },
]
prompt = processor.apply_chat_template(conversation, add_generation_prompt=True)

outputs = pipe(image, prompt=prompt, generate_kwargs={"max_new_tokens": 200})
print(outputs)

使用纯transformers

可以在GPU设备上运行的脚本如下:

import requests
from PIL import Image
import torch
from transformers import AutoProcessor, LlavaForConditionalGeneration

model_id = "llava-hf/bakLlava-v1-hf"
model = LlavaForConditionalGeneration.from_pretrained(
    model_id, 
    torch_dtype=torch.float16, 
    low_cpu_mem_usage=True, 
).to(0)

processor = AutoProcessor.from_pretrained(model_id)

conversation = [
    {
      "role": "user",
      "content": [
          {"type": "text", "text": "What are these?"},
          {"type": "image"},
        ],
    },
]
prompt = processor.apply_chat_template(conversation, add_generation_prompt=True)

image_file = "http://images.cocodataset.org/val2017/000000039769.jpg"
raw_image = Image.open(requests.get(image_file, stream=True).raw)
inputs = processor(images=raw_image, text=prompt, return_tensors='pt').to(0, torch.float16)

output = model.generate(**inputs, max_new_tokens=200, do_sample=False)
print(processor.decode(output[0][2:], skip_special_tokens=True))

模型优化

通过bitsandbytes库进行4位量化

首先确保安装bitsandbytes,在代码中添加load_in_4bit=True即可。

使用Flash-Attention 2加速生成

安装flash-attn库,参考Flash Attention原始库进行安装,然后在代码中添加use_flash_attention_2=True

训练数据集和许可

bakLlava使用了包含558K的来自LAION/CC/SBU的图文对、158K的GPT生成的多模态指令跟随数据、450K的学术任务导向的VQA数据混合、40K的ShareGPT数据及额外的私有数据。Llama 2则是根据LLAMA 2社区许可的授权。

通过这些丰富的数据集和先进的架构,bakLlava项目致力于在图像和文本交互的领域中进一步提升技术水平,为用户提供更为强大的功能。

项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

吐司

探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。

Project Cover

SubCat字幕猫

SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。

Project Cover

美间AI

美间AI创意设计平台,利用前沿AI技术,为设计师和营销人员提供一站式设计解决方案。从智能海报到3D效果图,再到文案生成,美间让创意设计更简单、更高效。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号