🚀 AltCLIP
我们提出了一个简单高效的方法去训练更加优秀的双语CLIP模型,命名为AltCLIP。该模型基于特定框架和丰富数据集训练,能为AltDiffusion模型提供支持,在多语言图像文本检索任务中表现出色。
🚀 快速开始
AltCLIP是一个简单高效的双语CLIP模型,以下为你介绍它的基本信息和使用方式。
⚠️ 重要提示
访问此模型前需额外步骤。该模型开放访问,采用CreativeML OpenRAIL - M许可证,进一步明确了权利和使用规范。此许可证规定:
- 不得使用该模型故意生成或分享非法或有害的输出或内容。
- 北京智源人工智能研究院(BAAI)对您生成的输出不主张任何权利,您可自由使用,但需对其使用负责,且使用不得违反许可证规定。
- 您可以重新分发模型权重,并将模型用于商业用途或作为服务。若这样做,请务必包含与许可证相同的使用限制,并向所有用户分享一份CreativeML OpenRAIL - M许可证副本(请完整仔细阅读许可证)。
请在此处阅读完整许可证:https://huggingface.co/spaces/CompVis/stable-diffusion-license
点击下方“访问仓库”,即表示您同意您的联系信息(电子邮件地址和用户名)也可与模型作者共享。
✨ 主要特性
- 双语支持:支持中英文两种语言,能更好地适应不同语言环境下的图像 - 文本任务。
- 高效训练:采用简单高效的训练方法,结合平行知识蒸馏和双语对比学习,提升模型性能。
- 下游效果好:在文本 - 图像检索等下游任务中表现出色,尤其在中文任务上显著优于传统CLIP模型。
📦 安装指南
暂未提供相关安装步骤,你可以从 FlagAI AltCLIP 下载代码进行使用。
💻 使用示例
基础用法
from PIL import Image
import requests
from modeling_altclip import AltCLIP
from processing_altclip import AltCLIPProcessor
model = AltCLIP.from_pretrained("BAAI/AltCLIP")
processor = AltCLIPProcessor.from_pretrained("BAAI/AltCLIP")
url = "http://images.cocodataset.org/val2017/000000039769.jpg"
image = Image.open(requests.get(url, stream=True).raw)
inputs = processor(text=["a photo of a cat", "a photo of a dog"], images=image, return_tensors="pt", padding=True)
outputs = model(**inputs)
logits_per_image = outputs.logits_per_image
probs = logits_per_image.softmax(dim=1)
📚 详细文档
简介
我们提出了一个简单高效的方法去训练更加优秀的双语CLIP模型,命名为AltCLIP。AltCLIP基于 Stable Diffusiosn 训练,训练数据来自 WuDao数据集 和 LIAON 。
AltCLIP模型可以为本项目中的AltDiffusion模型提供支持,关于AltDiffusion模型的具体信息可查看此教程 。
模型代码已经在 FlagAI 上开源,权重位于我们搭建的 modelhub 上。我们还提供了微调,推理,验证的脚本,欢迎试用。
引用
关于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}
}
训练
训练共有两个阶段。
在平行知识蒸馏阶段,我们只是使用平行语料文本来进行蒸馏(平行语料相对于图文对更容易获取且数量更大)。在双语对比学习阶段,我们使用少量的中 - 英 图像 - 文本对(一共约2百万)来训练我们的文本编码器以更好地适应图像编码器。
下游效果
语言 |
方法 |
文本到图像检索(R@1) |
文本到图像检索(R@5) |
文本到图像检索(R@10) |
图像到文本检索(R@1) |
图像到文本检索(R@5) |
图像到文本检索(R@10) |
MR |
英文 |
CLIP |
65.0 |
87.1 |
92.2 |
85.1 |
97.3 |
99.2 |
87.6 |
英文 |
Taiyi |
25.3 |
48.2 |
59.2 |
39.3 |
68.1 |
79.6 |
53.3 |
英文 |
Wukong |
- |
- |
- |
- |
- |
- |
- |
英文 |
R2D2 |
- |
- |
- |
- |
- |
- |
- |
英文 |
CN - CLIP |
49.5 |
76.9 |
83.8 |
66.5 |
91.2 |
96.0 |
77.3 |
英文 |
AltCLIP |
66.3 |
87.8 |
92.7 |
85.9 |
97.7 |
99.1 |
88.3 |
英文 |
AltCLIP∗ |
72.5 |
91.6 |
95.4 |
86.0 |
98.0 |
99.1 |
90.4 |
中文 |
CLIP |
0.0 |
2.4 |
4.0 |
2.3 |
8.1 |
12.6 |
5.0 |
中文 |
Taiyi |
53.7 |
79.8 |
86.6 |
63.8 |
90.5 |
95.9 |
78.4 |
中文 |
Wukong |
51.7 |
78.9 |
86.3 |
76.1 |
94.8 |
97.5 |
80.9 |
中文 |
R2D2 |
60.9 |
86.8 |
92.7 |
77.6 |
96.7 |
98.9 |
85.6 |
中文 |
CN - CLIP |
68.0 |
89.7 |
94.4 |
80.2 |
96.6 |
98.2 |
87.9 |
中文 |
AltCLIP |
63.7 |
86.3 |
92.1 |
84.7 |
97.4 |
98.7 |
87.2 |
中文 |
AltCLIP∗ |
69.8 |
89.9 |
94.7 |
84.8 |
97.4 |
98.8 |
89.2 |

可视化效果
基于AltCLIP,我们还开发了AltDiffusion模型,可视化效果如下。

📄 许可证
本模型采用CreativeML OpenRAIL - M许可证。具体规定如下:
- 您不能使用该模型故意生成或分享非法或有害的输出或内容。
- 北京智源人工智能研究院(BAAI)对您生成的输出不主张任何权利,您可自由使用,但需对其使用负责,且使用不得违反许可证规定。
- 您可以重新分发模型权重,并将模型用于商业用途或作为服务。若这样做,请务必包含与许可证相同的使用限制,并向所有用户分享一份CreativeML OpenRAIL - M许可证副本(请完整仔细阅读许可证)。
请在此处阅读完整许可证:https://huggingface.co/spaces/CompVis/stable-diffusion-license 。