Altclip M18
AltCLIP-m18是一个支持18种语言的CLIP模型,用于图文匹配任务。
下载量 58
发布时间 : 3/27/2023
模型简介
AltCLIP-m18是一个多语言CLIP模型,支持英语、中文、日语等18种语言,主要用于图文匹配任务,并为AltDiffusion-m18模型提供支持。
模型特点
多语言支持
支持18种语言的图文匹配任务。
为AltDiffusion提供支持
可作为AltDiffusion-m18模型的基础模型。
多阶段训练
采用三阶段训练策略,包括平行语料训练和Laion-Aesthetics子集训练。
模型能力
图文匹配
多语言文本理解
图像分类
使用案例
多语言应用
多语言图像搜索
使用不同语言查询匹配相关图像。
生成模型支持
AltDiffusion支持
为AltDiffusion-m18提供多语言文本编码能力。
🚀 AltCLIP-m18
AltCLIP-m18是一个支持18种语言的CLIP模型,在文本 - 图像任务中表现出色。它可以为AltDiffusion-m18模型提供支持,并且模型代码已开源,还提供了微调、推理和验证脚本,方便用户使用。
🚀 快速开始
你可以在 FlagAI 上获取模型代码,权重位于 modelhub 。同时,我们还提供了微调、推理、验证的脚本,你可以根据需求进行试用。
✨ 主要特性
- 多语言支持:支持英语、中文、日语、泰语、韩语、印地语、乌克兰语、阿拉伯语、土耳其语、越南语、波兰语、荷兰语、葡萄牙语、意大利语、西班牙语、德语、法语和俄语。
- 模型支持:可以为AltDiffusion-m18模型提供支持。
- 开源可用:模型代码已在 FlagAI 上开源。
📦 安装指南
文档未提及具体安装步骤,可参考 FlagAI 上的代码进行操作。
💻 使用示例
基础用法
以下是Cifar10数据集评测的代码示例:
# Copyright © 2022 BAAI. All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License")
import torch
from flagai.auto_model.auto_loader import AutoLoader
import zeroshot_classification
import json
import os
from torchvision.datasets import CIFAR10
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
maxlen = 256
dataset_root = "./clip_benchmark_datasets/"
dataset_name = "cifar10"
auto_loader = AutoLoader(
task_name="txt_img_matching",
model_dir="./checkpoints/",
model_name="AltCLIP-XLMR-L-m18" # Load the checkpoints from Modelhub(model.baai.ac.cn/models)
)
model = auto_loader.get_model()
model.to(device)
model.eval()
tokenizer = auto_loader.get_tokenizer()
transform = auto_loader.get_transform()
dataset = CIFAR10(root=os.path.join(dataset_root, dataset_name),
transform=transform,
download=True)
batch_size = 128
num_workers = 4
template = {"cifar10": [
"a photo of a {c}.",
"a blurry photo of a {c}.",
"a black and white photo of a {c}.",
"a low contrast photo of a {c}.",
"a high contrast photo of a {c}.",
"a bad photo of a {c}.",
"a good photo of a {c}.",
"a photo of a small {c}.",
"a photo of a big {c}.",
"a photo of the {c}.",
"a blurry photo of the {c}.",
"a black and white photo of the {c}.",
"a low contrast photo of the {c}.",
"a high contrast photo of the {c}.",
"a bad photo of the {c}.",
"a good photo of the {c}.",
"a photo of the small {c}.",
"a photo of the big {c}."
],
}
def evaluate():
if dataset:
dataloader = torch.utils.data.DataLoader(
dataset,
batch_size=batch_size,
shuffle=False,
num_workers=num_workers,
)
zeroshot_templates = template["cifar10"]
classnames = dataset.classes if hasattr(dataset, "classes") else None
metrics = zeroshot_classification.evaluate(
model,
dataloader,
tokenizer,
classnames,
zeroshot_templates,
device=device,
amp=True,
)
dump = {
"dataset": dataset_name,
"metrics": metrics
}
print(dump)
with open("./result.txt", "w") as f:
json.dump(dump, f)
return metrics
if __name__ == "__main__":
evaluate()
高级用法
以下是推理脚本的代码示例:
import torch
from PIL import Image
from flagai.auto_model.auto_loader import AutoLoader
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
loader = AutoLoader(
task_name="txt_img_matching",
model_name="AltCLIP-XLMR-L-m18", # Load the checkpoints from Modelhub(model.baai.ac.cn/models)
model_dir="./checkpoints"
)
model = loader.get_model()
tokenizer = loader.get_tokenizer()
transform = loader.get_transform()
model.eval()
model.to(device)
tokenizer = loader.get_tokenizer()
def inference():
image = Image.open("./dog.jpeg")
image = transform(image)
image = torch.tensor(image["pixel_values"]).to(device)
tokenizer_out = tokenizer(["a rat", "a dog", "a cat"],
padding=True,
truncation=True,
max_length=77,
return_tensors='pt')
text = tokenizer_out["input_ids"].to(device)
attention_mask = tokenizer_out["attention_mask"].to(device)
with torch.no_grad():
image_features = model.get_image_features(image)
text_features = model.get_text_features(text, attention_mask=attention_mask)
text_probs = (image_features @ text_features.T).softmax(dim=-1)
print(text_probs.cpu().numpy()[0].tolist())
if __name__=="__main__":
inference()
微调用法
以下是Cifar10数据集微调的代码示例:
# Copyright © 2022 BAAI. All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License")
import torch
from flagai.auto_model.auto_loader import AutoLoader
import os
from flagai.trainer import Trainer
from torchvision.datasets import (
CIFAR10
)
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
dataset_root = "./clip_benchmark_datasets"
dataset_name = "cifar10"
batch_size = 4
classes = ['airplane', 'automobile', 'bird', 'cat', 'deer', 'dog', 'frog', 'horse', 'ship', 'truck']
auto_loader = AutoLoader(
task_name="txt_img_matching",
model_dir="./checkpoints",
model_name="AltCLIP-XLMR-L-m18" # Load the checkpoints from Modelhub(model.baai.ac.cn/models)
)
model = auto_loader.get_model()
model.to(device)
model.eval()
tokenizer = auto_loader.get_tokenizer()
transform = auto_loader.get_transform()
trainer = Trainer(env_type="pytorch",
pytorch_device=device,
experiment_name="clip_finetuning",
batch_size=4,
lr=1e-4,
epochs=10,
log_interval=10)
dataset = CIFAR10(root=os.path.join(dataset_root, dataset_name),
transform=transform,
download=True)
def cifar10_collate_fn(batch):
# image shape is (batch, 3, 224, 224)
images = torch.tensor([b[0]["pixel_values"][0] for b in batch])
# text_id shape is (batch, n)
input_ids = torch.tensor([tokenizer(f"a photo of a {b[1]}",
padding=True,
truncation=True,
max_length=77)["input_ids"] for b in batch])
attention_mask = torch.tensor([tokenizer(f"a photo of a {b[1]}",
padding=True,
truncation=True,
max_length=77)["attention_mask"] for b in batch])
return {
"pixel_values": images,
"input_ids": input_ids,
"attention_mask": attention_mask,
}
if __name__ == "__main__":
trainer.train(model=model, train_dataset=dataset, collate_fn=cifar10_collate_fn)
📚 详细文档
模型信息
属性 | 详情 |
---|---|
名称 | AltCLIP-m18 |
任务 | Text-Image |
语言 | 多语言(英语、中文、日语、泰语、韩语、印地语、乌克兰语、阿拉伯语、土耳其语、越南语、波兰语、荷兰语、葡萄牙语、意大利语、西班牙语、德语、法语和俄语) |
模型类型 | CLIP |
代码地址 | FlagAI |
权重地址 | modelhub |
训练数据集
阶段1使用平行语料库数据,阶段2和3主要使用Laion - Aesthetics的一个子集,中文数据集采用wudaoMM数据集(CC - BY - SA 4.0)。具体各语言训练数据集如下:
No | 语言 | 阶段1(LAION400M)(MIT) |
---|---|---|
1 | 英语 | |
2 | 泰语 | CCAligned |
3 | 韩语 | WikiMatrix ([CC - BY - SA 4.0](https://creativecommons.org/licenses/by - sa/4.0/legalcode)) |
4 | 印地语 | CCAligned |
5 | 乌克兰语 | CCMatrix |
6 | 阿拉伯语 | WikiMatrix ([CC - BY - SA 4.0](https://creativecommons.org/licenses/by - sa/4.0/legalcode)), [OpenSubtitles](https://opus.nlpl.eu/OpenSubtitles - v2018.php) |
7 | 土耳其语 | WikiMatrix ([CC - BY - SA 4.0](https://creativecommons.org/licenses/by - sa/4.0/legalcode)), CCMatrix |
8 | 越南语 | CCMatrix |
9 | 波兰语 | CCMatrix , WikiMatrix ([CC - BY - SA 4.0](https://creativecommons.org/licenses/by - sa/4.0/legalcode)) |
10 | 荷兰语 | CCMatrix |
11 | 葡萄牙语 | CCAligned |
12 | 意大利语 | WikiMatrix ([CC - BY - SA 4.0](https://creativecommons.org/licenses/by - sa/4.0/legalcode)), Wikipedia |
13 | 日语 | MultiParaCrawl ([Creative Commons CC0 license](https://creativecommons.org/share - your - work/public - domain/cc0/)) |
14 | 中文 | WikiMatrix ([CC - BY - SA 4.0](https://creativecommons.org/licenses/by - sa/4.0/legalcode)), TSL2019 |
15 | 西班牙语 | WikiMatrix ([CC - BY - SA 4.0](https://creativecommons.org/licenses/by - sa/4.0/legalcode)) |
16 | 德语 | WikiMatrix ([CC - BY - SA 4.0](https://creativecommons.org/licenses/by - sa/4.0/legalcode)), EUbookshop |
17 | 法语 | WikiMatrix ([CC - BY - SA 4.0](https://creativecommons.org/licenses/by - sa/4.0/legalcode)), EuroPat ([Creative Commons CC0 license](https://creativecommons.org/share - your - work/public - domain/cc0/)) |
18 | 俄语 | WikiMatrix ([CC - BY - SA 4.0](https://creativecommons.org/licenses/by - sa/4.0/legalcode)), CCMatrix |
⚠️ 重要提示
WuDaoMM数据集仅用于学术研究,任何使用该数据集都应该遵循以下要求。WuDaoMM不拥有这些图片的版权。 图片的使用必须遵守Flickr使用条款。 图像的用户对使用数据集承担全部责任,不私自传播上面的图片。 如果图片的版权受到侵犯,请联系我们,我们将立即删除。
评测结果
ImageNet评测
ImageNet - adv | ImageNet - adv - cn | ImageNet - adv - es | ImageNet - adv - fr | ImageNet - adv - it | ImageNet - adv - jp | ImageNet - adv - ko | ImageNet - adv - ru | ImageNet - ren | ImageNet - ren - cn | imageNet - ren - es | ImageNet - ren - fr | ImageNet - ren - it | ImageNet - ren - jp | ImageNet - ren - ko | ImageNet - ren - ru | ImageNet - ske | ImageNet - ske - cn | ImageNet - ske - es | ImageNet - ske - fr | ImageNet - ske - it | ImageNet - ske - jp | ImageNet - ske - ko | ImageNet - ske - ru | ImageNet - 1k | ImageNet - 1k - cn | ImageNet - 1k - es | ImageNet - 1k - fr | ImageNet - 1k - it | ImageNet - 1k - jp | ImageNet - 1k - ko | ImageNet - 1k - ru | ImageNet - v2 | ImageNet - v2 - cn | ImageNet - v2 - es | ImageNet - v2 - fr | ImageNet - v2 - it | ImageNet - v2 - jp | ImageNet - v2 - ko | ImageNet - v2 - ru | ||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
AltCLIP - M18 | 58 | 50.35 | 43.56 | 44.07 | 48.25 | 36.48 | 38.48 | 40.57 | 89.53 | 81.36 | 71.78 | 74.96 | 76.44 | 67.68 | 69.27 | 75.53 | 65.42 | 51.26 | 97.44 | 84.83 | 30.52 | 68.62 | 67.46 | 54.4 | 76.71 | 57.12 | 54.22 | 54.84 | 52.29 | 51.71 | 53.65 | 51.53 | 65.45 | 51.76 | 48.91 | 49.24 | 47.27 | 46.76 | 48.1 | 46.53 |
其他分类评测
caltech101 | cars | cifar10 | cifar100 | country211 | dtd | eurosat | fer2013 | Fgvc - aircraft | flowers | food101 | gtsrb | Hateful - memes | Kitti - distance | Mnist | pcam | pets | Renderedsst2 | Resisc45 | Voc2007 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
AltCLIP - M18 | 88.25 | 92.75 | 97.44 | 84.83 | 30.52 | 68.62 | 67.46 | 54.4 | 40.41 | 71.64 | 92.49 | 56.35 | 50.8 | 14.91 | 78.46 | 54.76 | 94.11 | 65.95 | 70.83 | 81.62 |
检索评测
Multi30k - de - I2T | Multi30k - de - T2I | Multi30k - en - I2T | Multi30k - en - T2I | Multi30k - fr - I2T | Multi30k - fr - I2T | Xtd - de - I2T | Xtd - de - T2I | Xtd - en - I2T | Xtd - en - T2I | Xtd - es - I2T | Xtd - es - T2I | Xtd - fr - I2T | Xtd - fr - T2I | Xtd - it - I2T | Xtd - it - T2I | Xtd - jp - I2T | Xtd - jp - T2I | Xtd - ko - I2T | Xtd - ko - T2I | Xtd - pl - I2T | Xtd - pl - T2I | Xtd - ru - I2T | Xtd - ru - T2I | Xtd - tr - I2T | Xtd - tr - T2I | Xtd - zh - I2T | Xtd - zh - T2I | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
AltCLIP - M18 | 84.4 | 65.82 | 91.1 | 77.76 | 74.5 | 75.4 | 64.76 | 66.57 | 72.17 | 72.67 | 65.83 | 65.03 | 67.17 | 67.47 | 66.63 | 66.03 | 58.96 | 62.96 | 61.42 | 64.43 | 67.23 | 69.14 | 60.22 | 61.02 | 65.03 | 64.23 | 64.53 | 65.43 |
🔧 技术细节
文档未提及详细技术实现细节。
📄 许可证
文档未提及具体许可证信息。
引用
关于AltCLIP,我们已经推出了相关报告,有更多细节可以查阅,如对您的工作有帮助,欢迎引用。
@article{https://doi.org/10.48550/arxiv.2211.06679,
doi = {10.48550/ARXIV.2211.06679},
url = {https://arxiv.org/abs/2211.06679},
author = {Chen, Zhongzhi and Liu, Guang and Zhang, Bo - Wen and Ye, Fulong and Yang, Qinghong and Wu, Ledell},
keywords = {Computation and Language (cs.CL), FOS: Computer and information sciences},
title = {AltCLIP: Altering the Language Encoder in CLIP for Extended Language Capabilities},
publisher = {arXiv},
year = {2022},
copyright = {arXiv.org perpetual, non - exclusive license}
}
Clip Vit Large Patch14 336
基于Vision Transformer架构的大规模视觉语言预训练模型,支持图像与文本的跨模态理解
文本生成图像
Transformers

C
openai
5.9M
241
Fashion Clip
MIT
FashionCLIP是基于CLIP开发的视觉语言模型,专门针对时尚领域进行微调,能够生成通用产品表征。
文本生成图像
Transformers 英语

F
patrickjohncyh
3.8M
222
Gemma 3 1b It
Gemma 3是Google推出的轻量级先进开放模型系列,基于与Gemini模型相同的研究和技术构建。该模型是多模态模型,能够处理文本和图像输入并生成文本输出。
文本生成图像
Transformers

G
google
2.1M
347
Blip Vqa Base
Bsd-3-clause
BLIP是一个统一的视觉语言预训练框架,擅长视觉问答任务,通过语言-图像联合训练实现多模态理解与生成能力
文本生成图像
Transformers

B
Salesforce
1.9M
154
CLIP ViT H 14 Laion2b S32b B79k
MIT
基于OpenCLIP框架在LAION-2B英文数据集上训练的视觉-语言模型,支持零样本图像分类和跨模态检索任务
文本生成图像
Safetensors
C
laion
1.8M
368
CLIP ViT B 32 Laion2b S34b B79k
MIT
基于OpenCLIP框架在LAION-2B英语子集上训练的视觉-语言模型,支持零样本图像分类和跨模态检索
文本生成图像
Safetensors
C
laion
1.1M
112
Pickscore V1
PickScore v1 是一个针对文本生成图像的评分函数,可用于预测人类偏好、评估模型性能和图像排序等任务。
文本生成图像
Transformers

P
yuvalkirstain
1.1M
44
Owlv2 Base Patch16 Ensemble
Apache-2.0
OWLv2是一种零样本文本条件目标检测模型,可通过文本查询在图像中定位对象。
文本生成图像
Transformers

O
google
932.80k
99
Llama 3.2 11B Vision Instruct
Llama 3.2 是 Meta 发布的多语言多模态大型语言模型,支持图像文本到文本的转换任务,具备强大的跨模态理解能力。
文本生成图像
Transformers 支持多种语言

L
meta-llama
784.19k
1,424
Owlvit Base Patch32
Apache-2.0
OWL-ViT是一个零样本文本条件目标检测模型,可以通过文本查询搜索图像中的对象,无需特定类别的训练数据。
文本生成图像
Transformers

O
google
764.95k
129
精选推荐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