做英文网站用什么源码,佛山做网站企业,医院 网站建设 中企动力,北京软件开发平均工资1 多模态大语言模型#xff08;Multimodal Large Language Models#xff09;
模态的定义 模态#xff08;modal#xff09;是事情经历和发生的方式#xff0c;我们生活在一个由多种模态(Multimodal)信息构成的世界#xff0c;包括视觉信息、听觉信息、文本信息、嗅觉信…1 多模态大语言模型Multimodal Large Language Models
模态的定义 模态modal是事情经历和发生的方式我们生活在一个由多种模态(Multimodal)信息构成的世界包括视觉信息、听觉信息、文本信息、嗅觉信息等MLLMs的定义 由LLM扩展而来具有接收和推理多模态信息能力的模型
2 模型概念区分
跨模态模型单模态大模型多模态模型多模态语言大模型
跨模态模型 单模态大模型 多模态大模型 多模态大语言模型
3 多模态的发展历程
四个关键里程碑 1 Vision Transformer(ViT) 图片格子的线性映射 DL Mask Image Modeling 无监督图像特征学习 2 基于transformer架构的图像-文本联合建模 3 大规模 图-文 Token对齐模型CLIP 通过余弦距离将文和图转换至同一向量空间。将图像的分类闭集引入至开集
from transformers import CLIPProcessor, CLIPModel
model CLIPModel.from_pretrained(openai/clip-vit-base-patch32)
processor CLIPProcessor.from_pretrained(openai/clip-vit-base-patch32)from IPython.display import Image, display
display(Image(filenamebus.jpg))from PIL import Image
image Image.open(bus.jpg)
cls_list [dog, woman, man, bus, truck,person,a black truck, a white truck, cat]
input processor(textcls_list, imagesimage,return_tensorspt, paddingTrue)
outputs model(**input)
print(outputs.keys())logits_per_image outputs.logits_per_image
probs logits_per_image.softmax(dim1)for i in range(len(cls_list)):print(f{cls_list[i]}: {probs[0][i]})4 多模态大语言模型OpenAI GPTv4 支持图文交替输出输入文本或图像输出自然语言 特点如下
遵循文字提示 理解视觉指向和参考 支持视觉和文本联合提示 少样本上下文学习 强大的视觉认知能力 5 Google Gemini 原生多模态 输入文本、语音、图像和视频信息输出自然语言、图像 支持多模态内容输出 复杂图像理解与代码生成
!pip install google-generativeai -i https://pypi.tuna.tsinghua.edu.cn/simpleimport gradio as gr
from openai import OpenAI
import base64
from PIL import Image
import io
import os
import google.generativeai as genai# Function to encode the image to base64def encode_image_to_base64(image):buffered io.BytesIO()image.save(buffered, formatJPEG)return base64.b64encode(buffered.getvalue()).decode(utf-8)# Function to query GPT-4 Visiondef query_gpt4_vision(text, image1, image2, image3):client OpenAI(api_keyos.getenv(OPENAI_API_KEY))messages [{role: user, content: [{type: text, text: text}]}]images [image1, image2, image3]for image in images:if image is not None:base64_image encode_image_to_base64(image)image_message {type: image_url,image_url: {url: fdata:image/jpeg;base64,{base64_image}}}messages[0][content].append(image_message)response client.chat.completions.create(modelgpt-4-vision-preview,messagesmessages,max_tokens1024,)return response.choices[0].message.content# Function to query Gemini-Prodef query_gemini_vision(text, image1, image2, image3):# Or use os.getenv(GOOGLE_API_KEY) to fetch an environment variable.# GOOGLE_API_KEYuserdata.get(GOOGLE_API_KEY)GOOGLE_API_KEY os.getenv(GOOGLE_API_KEY)genai.configure(api_keyGOOGLE_API_KEY)model genai.GenerativeModel(gemini-pro-vision)images [image1, image2, image3]query [text]for image in images:if image is not None:query.append(image)response model.generate_content(query, streamFalse)response.resolve()return response.text# 由于Gradio 2.0及以上版本的界面构建方式有所不同这里使用blocks API来创建更复杂的UIdef main():with gr.Blocks() as demo:gr.Markdown(### 输入文本)input_text gr.Textbox(lines2, label输入文本)input_images [gr.Image(typepil, labelUpload Image, tooleditor) for i in range(3)]output_gpt4 gr.Textbox(labelGPT-4 输出)output_other_api gr.Textbox(labelGemini-Pro 输出)btn_gpt4 gr.Button(调用GPT-4)btn_other_api gr.Button(调用Gemini-Pro)btn_gpt4.click(fnquery_gpt4_vision, inputs[input_text] input_images, outputsoutput_gpt4)btn_other_api.click(fnquery_gemini_vision, inputs[input_text] input_images, outputsoutput_other_api)demo.launch(shareTrue)if __name__ __main__:main()4 多模态大语言模型的应用
工业医疗视觉内容认知与编辑具身智能新一代人机交互