切換語言為:簡體
效能接近商業化的 GPT-4V 模型的開源多模態對話模型 「InternVL 」

效能接近商業化的 GPT-4V 模型的開源多模態對話模型 「InternVL 」

  • 爱糖宝
  • 2024-05-27
  • 2101
  • 0
  • 0

InternVL 由 OpenGVLab 開發,是一個開源的多模態對話模型,其效能接近商業化的 GPT-4V 模型。

GPT-4V 是 OpenAI 去年推出的多模態模型,使用它你可以分析所需的任何型別的影象並獲取有關該影象的資訊。

效能接近商業化的 GPT-4V 模型的開源多模態對話模型 「InternVL 」

1. InternVL 開源模型

而今天的主角研究成果 InternVL 釋出在 CVPR 2024 上,並提供了多種模型版本以適應不同的應用場景,如 InternVL−Chat−V1.5 支援 4K 影象和強大的光學字符識別(OCR)功能。

開源地址:https://github.com/OpenGVLab/InternVL

2. 支援特性

InternVL 家族透過提供多種模型版本,支援從影象分類到多模態對話的多種功能。以下是一些關鍵特性:

多語言支援:InternVL 能夠支援超過 110 種語言的生成。

高效能:在多個基準測試中,InternVL-Chat-V1.5 接近 GPT-4V 和 Gemini Pro 的效能。

多種模型選擇:提供了不同引數規模的模型,從 6B 到 19B 不等,以適應不同的計算資源和應用需求。

跨模態檢索:支援英文和中文的零樣本影象-文字檢索,以及多語言零樣本影象-文字檢索。

以下是 InternVL 在不同任務上的效能對比圖:

效能接近商業化的 GPT-4V 模型的開源多模態對話模型 「InternVL 」

3. 效果怎麼樣?

我把上圖給到開源模型,讓他自己介紹一下圖片中的內容:

效能接近商業化的 GPT-4V 模型的開源多模態對話模型 「InternVL 」

算個數學題:

效能接近商業化的 GPT-4V 模型的開源多模態對話模型 「InternVL 」

還能感知顏色:

效能接近商業化的 GPT-4V 模型的開源多模態對話模型 「InternVL 」

智慧 OCR:

效能接近商業化的 GPT-4V 模型的開源多模態對話模型 「InternVL 」

4. 程式碼示例

以下是使用 InternVL-Chat 模型進行單輪對話的示例程式碼:

from transformers import AutoTokenizer, AutoModel
import torch
import torchvision.transforms as T
from PIL import Image
IMAGENET_MEAN = (0.485, 0.456, 0.406)
IMAGENET_STD = (0.229, 0.224, 0.225)
def build_transform(input_size):
    MEAN, STD = IMAGENET_MEAN, IMAGENET_STD
    transform = T.Compose([
        T.Lambda(lambda img: img.convert('RGB') if img.mode != 'RGB' else img),
        T.Resize((input_size, input_size), interpolation=T.InterpolationMode.BICUBIC),
        T.ToTensor(),
        T.Normalize(mean=MEAN, std=STD)
    ])
    return transform
# 省略部分程式碼...
model = AutoModel.from_pretrained(
    "OpenGVLab/InternVL-Chat-V1-5",
    torch_dtype=torch.bfloat16,
    low_cpu_mem_usage=True,
    trust_remote_code=True).eval().cuda()
tokenizer = AutoTokenizer.from_pretrained("OpenGVLab/InternVL-Chat-V1-5", trust_remote_code=True)
pixel_values = load_image('./examples/image1.jpg', max_num=6).to(torch.bfloat16).cuda()
generation_config = dict(
    num_beams=1,
    max_new_tokens=512,
    do_sample=False,
)
# 單輪對話
question = "請詳細描述圖片"  # Please describe the picture in detail
response = model.chat(tokenizer, pixel_values, question, generation_config)
print(question, response)


0則評論

您的電子郵件等資訊不會被公開,以下所有項目均必填

OK! You can skip this field.