多模态的定义
在人工智能领域,模态指的是数据的不同形式或类型,例如文本、图像、音频、视频等。多模态则意味着模型能够处理和理解多种不同模态的数据。
前排提示,文末有大模型AGI-CSDN独家资料包哦!
大模型的多模态指的是那些能够处理和理解多种模态数据的大型人工智能模型。这些模型通常基于深度学习技术,通过学习不同模态数据之间的关联和规律,从而实现更强大的功能。
多模态大模型的特点
-
跨模态理解: 多模态大模型能够理解不同模态数据之间的关系,例如将图像和文本联系起来,理解图像的内容并用文字描述出来。
-
模态转换: 多模态大模型能够将一种模态的数据转换为另一种模态的数据,例如将文本描述转换为图像,或者将语音转换为文本。
-
更强的泛化能力: 通过学习多种模态的数据,多模态大模型通常具有更强的泛化能力,能够更好地适应不同的任务和场景。
多模态大模型的应用
多模态大模型在很多领域都有广泛的应用,例如:
-
图像和文本理解: 例如图像搜索、图像描述、视觉问答等。
-
语音和文本理解: 例如语音识别、语音翻译、智能助手等。
-
视频和文本理解: 例如视频描述、视频搜索、智能监控等。
-
跨模态生成: 例如根据文本描述生成图像、根据图像生成文本描述等。
Hugging Face 平台上的多模态模型
Hugging Face 平台提供了丰富的多模态模型,例如:
-
CLIP: 一个由 OpenAI 开发的图像和文本理解模型,能够将图像和文本联系起来。
-
ALIGN: 一个由 Google 开发的图像和文本理解模型,具有强大的跨模态理解能力。
-
Visual-T5: 一个由 Google 开发的视觉问答模型,能够回答与图像内容相关的问题。
几个著名的大模型对多模态的支持
-
OpenAI的多模态功能非常丰富,文本、图片、语音、视频等都有
-
DeepSeek目前仅在文本模态,其他模态尚无。
-
智普的多模态也做得挺好,功能也比较强大。本文通过OpenAI和智普的WebAPI演示图片识别功能,也俗称 图生文。
OpenAI的图片识别
使用OpenAI的Chat Complations接口,content的内容与普通的对话接口不一样,对话接口的content是一段文本,图生文的处理中,content是一组数组。
数组代表多组图片或提示词,prompt提示词使用type=“text”的text中,图片放type="image_url"的image_url里;若有多张图片则content的数组增加多个。
单轮图片URL对话一
from openai import OpenAI
client = OpenAI(api_key="xxx", base_url="https://vip.apiyi.com/v1")
model="gpt-4-turbo"
response = client.chat.completions.create(
model=model,
messages=[
{
"role": "user",
"content": [
{"type": "text", "text": "请描述下这张图片"},
{
"type": "image_url",
"image_url": {
"url": "https://p6.itc.cn/q_70/images03/20200602/0c267a0d3d814c9783659eb956969ba1.jpeg",
},
},
],
}
],
max_tokens=300,
)
print(response.choices[0])
返回:
Choice(finish_reason='length', index=0, logprobs=None, message=ChatCompletionMessage(content='这张图片是一张幽默风格的搞笑对比图,展示了两种不同类型的犬类形象。左边的图像是一只金毛色的狗,经过创意修改,被赋予了一副人类的肌肉健身身体,看起来非常壮实和强壮。右边的图像呈现了一只正常体型的柴犬坐着的样子,显得较为柔弱和平静。\n\n左侧的标题是“16岁的我”,下方的文字是我日常与一片云聊天,我不落地,人们轻轻的大腿。右侧的标题是“工作后的我”,下方的文字是好累好累,好想躺地洗澡,我不想洗澡,我在考虑小吃。\n\n这种对比图旨在幽默的比较了人在年轻时候的梦想与壮志与工作后可能的现实感受的差距', refusal=None, role='assistant', audio=None, function_call=None, tool_calls=None))
上面例子中图片是使用网络地址,也可以使用本地图片转base64。
单轮图片Base64对话二
from openai import OpenAI
import base64
import requests
client = OpenAI(api_key="sk-xxxx", base_url="https://vip.apiyi.com/v1") # 初始化 OpenAI 客户端
model="gpt-4-turbo"
image_path="./images/gdp_1980_2020.jpg"
# 实现 Base64 编码
def encode_image(path):
with open(path, "rb") as image_file:
return base64.b64encode(image_file.read()).decode('utf-8')
# 获取图像的 Base64 编码字符串
base64_image = encode_image(image_path)
# 构造请求的负载
messages = [
{
"role": "user",
"content": [
{"type": "text", "text": "请提取图片中的文字"},
{"type": "image_url", "image_url": {"url": f"data:image/jpeg;base64,{base64_image}"}}
]
}
]
response = client.chat.completions.create(
model=model,
messages= messages,
max_tokens=1000
)
print(response.choices[0])
智普的图片识别
模型 |
描述 |
上下文 |
---|---|---|
GLM-4V-Plus-0111 | 图像/视频理解
:具备卓越的多模态理解能力,可同时处理最多5张图像,最长支持2h 视频内容理解 |
16K |
GLM-4V-Plus | 图像/视频理解
:具备卓越的多模态理解能力,可同时处理最多5张图像,并支持30s视频内容理解 |
16K |
GLM-4V | 图像理解
:持单张图像理解,适用于复杂图像解析的场景 |
4K |
GLM-4V-Flash | 免费模型
:支持单张图像理解,适用于简单图像解析的场景 |
4K |
GLM-4V-Plus模型支持最多5张图像的理解以及视频理解,GLM-4V模型只支持图片理解。支持url地址和base64。示例我们使用多轮图片对话形式。
多轮图片对话一
from zhipuai import ZhipuAI
client = ZhipuAI(api_key="") # 填写您自己的APIKey
response = client.chat.completions.create(
model="glm-4v-plus-0111",
stream=False,
messages=[
{
"role": "user",
"content": [
{
"type": "image_url",
"image_url": {
"url": "https://aigc-files.bigmodel.cn/api/cogview/202411181621355e276522adac433a_0.png"
}
},
{
"type": "image_url",
"image_url": {
"url": "https://aigc-files.bigmodel.cn/api/cogview/2024111816214822f9ee58eefa48bc_0.png"
}
},
{
"type": "image_url",
"image_url": {
"url": "https://aigc-files.bigmodel.cn/api/cogview/2024111816415481bfd2e6ef99445e_0.png"
}
},
{
"type": "image_url",
"image_url": {
"url": "https://aigc-files.bigmodel.cn/api/cogview/20241118164408b8bdfd6a63484cf3_0.png"
}
},
{
"type": "image_url",
"image_url": {
"url": "https://aigc-files.bigmodel.cn/api/cogview/20241118164507bfd683b3d8d84de8_0.png"
}
},
{
"type": "text",
"text": "图中的狗有什么区别"
}
]
}
]
)
# 输出结果
print(response)
多轮图片对话二
from zhipuai import ZhipuAI
client = ZhipuAI(api_key="YOUR API KEY") # 填写您自己的APIKey
response = client.chat.completions.create(
model="glm-4v-plus-0111", # 填写需要调用的模型名称
messages=[
{
"content": [
{
"image_url": {
"url": "https://cdn.bigmodel.cn/xxxxxx.png"
},
"type": "image_url"
},
{
"text": "图中有什么",
"type": "text"
}
],
"role": "user"
},
{
"content": [
{
"text": "这是一幅描绘自然风景的画,展现了一片宁静的湖泊,湖水呈现出深浅不一的蓝绿色调。湖边长着一棵盛开的樱花树,粉白色的花朵在阳光下显得格外鲜艳。树下有一位身穿蓝色衣服的人坐在船上,似乎正在享受这美好的时光。\n\n背景是连绵起伏的山脉,山体被绿色的植被覆盖,山顶则被云雾缭绕,增添了几分神秘感。远处还可以看到一座小亭子,它坐落在湖边的岩石上,与周围的自然环境和谐相融。\n\n整个画面给人一种宁静、和谐的感觉,仿佛置身于一个世外桃源之中。",
"type": "text"
}
],
"role": "assistant"
},
{
"content": [
{
"image_url": {
"url": "https://cdn.bigmodel.cn/xxxxxxx.jpeg"
},
"type": "image_url"
},
{
"text": "这个图与上面图有什么不一样",
"type": "text"
}
],
"role": "user"
},
{
"content": [
{
"text": "第一张图和第二张图在画面内容、构图、色彩等方面都有很大的不同,形成鲜明的对比。\n\n1.第一张图是风景画,主要描绘了自然风景,如樱花树、湖泊、山脉等,色彩丰富,充满春天的气息,而第二张图是描绘长城在冬季的风景照片,长城在白雪覆盖的山脉中蜿蜒盘旋,整体色调偏冷,给人一种寒冷、宁静的感觉。\n\n2.构图上,第一张图采用对称式构图,以樱花树为中心,两侧的景物相互呼应,形成平衡和谐的画面效果,第二张图则采用对角线构图,长城作为视觉引导线,引导观众的视线穿越整个画面,增加画面的深度和动态感。\n\n整体来看,这两张图在画面内容、色彩、构图和氛围上都呈现出明显的对比,一张是充满生机和色彩的春日风景画,另一张是宁静而神秘的冬日长城风景照。",
"type": "text"
}
],
"role": "assistant"
},
{
"content": [
{
"image_url": {
"url": "https://cdn.bigmodel.cn/xxxxxxx.jpeg"
},
"type": "image_url"
},
{
"text": "这个图与上一张图有什么区别",
"type": "text"
}
],
"role": "user"
}
]
)
print(response.choices[0].message)
import base64
from zhipuai import ZhipuAI
img_path = "/Users/YourCompluter/xxxx.jpeg"
with open(img_path, 'rb') as img_file:
img_base = base64.b64encode(img_file.read()).decode('utf-8')
client = ZhipuAI(api_key="YOUR API KEY") # 填写您自己的APIKey
response = client.chat.completions.create(
model="glm-4v-plus-0111", # 填写需要调用的模型名称
messages=[
{
"role": "user",
"content": [
{
"type": "image_url",
"image_url": {
"url": img_base
}
},
{
"type": "text",
"text": "请描述这个图片"
}
]
}
]
)
print(response.choices[0].message)
读者福利:倘若大家对大模型感兴趣,那么这套大模型学习资料一定对你有用
针对0基础小白:
如果你是零基础小白,快速入门大模型是可行的。
大模型学习流程较短,学习内容全面,需要理论与实践结合
学习计划和方向能根据资料进行归纳总结
包括:大模型学习线路汇总、学习阶段,大模型实战案例,大模型学习视频,人工智能、机器学习、大模型书籍PDF。带你从零基础系统性的学好大模型!
😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费
】🆓
大模型学习路线图,整体分为7个大的阶段:(全套教程文末领取哈)
第一阶段: 从大模型系统设计入手,讲解大模型的主要方法;
第二阶段: 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;
第三阶段: 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;
第四阶段: 大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;
第五阶段: 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;
第六阶段: 以SD多模态大模型为主,搭建了文生图小程序案例;
第七阶段: 以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。
光学理论是没用的,要学会跟着一起做,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
这里我们能提供零基础学习书籍和视频。作为最快捷也是最有效的方式之一,跟着老师的思路,由浅入深,从理论到实操,其实大模型并不难。
• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;
• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;
• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;
• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。
😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费
】🆓