当前位置: 首页 > article >正文

多模态大模型技术入门:让 AI 看见世界

多模态大模型技术入门让 AI 看见世界前言人类感知世界的方式是多模态的——我们能看到图像、听到声音、读到文字。多模态大模型Multimodal LLM正是让 AI 拥有类似能力的关键技术。从 GPT-4V 到 Claude 3从开源的 LLaVA 到 CogVim多模态大模型正在快速改变 AI 的应用格局。我最近在一个项目中集成了多模态能力让 AI 能够理解和分析用户上传的图片。这段经历让我对多模态技术有了更深入的理解。今天分享一些多模态大模型的基础知识和实战经验。什么是多模态模态的定义模态Modality指的是信息的不同形式或来源。常见的模态包括文本Text文字信息图像Image视觉信息音频Audio声音信息视频Video时空连续的视觉和声音信息语音Speech口语信息多模态学习的目标多模态学习旨在构建能够处理和关联多种模态信息的 AI 系统。核心挑战包括对齐Alignment不同模态的信息如何对应融合Fusion如何整合不同模态的信息翻译Translation如何从一种模态转换到另一种多模态模型架构经典架构Encoder-Decoder文本 → Text Encoder → Feature → Decoder → 输出 ↑ 图像 → Vision Encoder ───────────┘这是最直观的架构各模态分别编码然后在某个层面融合共同输入解码器生成输出。CLIP 范式CLIPContrastive Language-Image Pre-training开创了图文对齐的预训练范式import torch import torch.nn as nn class CLIP(nn.Module): def __init__(self, vision_model, text_model): super().__init__() self.vision_model vision_model self.text_model text_model self.vision_projection nn.Linear(vision_dim, embed_dim) self.text_projection nn.Linear(text_dim, embed_dim) self.temperature nn.Parameter(torch.ones([]) * 2.6592) def encode_image(self, image): features self.vision_model(image) features self.vision_projection(features) features features / features.norm(dim-1, keepdimTrue) return features def encode_text(self, text): features self.text_model(text) features self.text_projection(features) features features / features.norm(dim-1, keepdimTrue) return features def forward(self, images, texts): image_features self.encode_image(images) text_features self.encode_text(texts) # 计算相似度 logit_scale self.temperature.exp() logits_per_image logit_scale * image_features text_features.t() logits_per_text logit_scale * text_features image_features.t() return logits_per_image, logits_per_textLLaVA 架构LLaVALarge Language and Vision Assistant是开源多模态模型的代表图像 → Vision Encoder ( CLIP ) → Linear Projection → LLM ↑ 文本 → Tokenizer → LLM → 输出 │关键组件Vision Encoder使用预训练的 CLIP ViTProjection将图像特征映射到 LLM 的输入空间LLM大语言模型负责理解和生成class LLaVA(nn.Module): def __init__(self, vision_model, visionProjection, llm, tokenizer): super().__init__() self.vision_model vision_model self.vision_projection visionProjection self.llm llm self.tokenizer tokenizer def forward(self, images, input_ids, labelsNone): # 1. 图像编码 image_features self.vision_model(images) # 2. 投影到 LLM 空间 image_embeddings self.vision_projection(image_features) # 3. 获取文本 embeddings text_embeddings self.llm.get_input_embeddings()(input_ids) # 4. 融合图像和文本 # 在 [IMG] token 位置替换为图像 embeddings combined_embeddings self._combine_embeddings( text_embeddings, image_embeddings ) # 5. LLM 前向传播 outputs self.llm( inputs_embedscombined_embeddings, labelslabels ) return outputs主流多模态模型GPT-4VOpenAI 的 GPT-4 with Vision 能够理解图片内容并回答问题分析图表和数据阅读文档和截图识别手写内容使用方式from openai import OpenAI client OpenAI() response client.chat.completions.create( modelgpt-4-vision-preview, messages[ { role: user, content: [ {type: text, text: 描述这张图片}, { type: image_url, image_url: {url: https://example.com/image.jpg} } ] } ], max_tokens300 )Claude 3Anthropic 的 Claude 3 系列Haiku、Sonnet、Opus都具有视觉能力支持高达 200K 上下文优秀的图表理解能力准确的文本识别OCR开源多模态模型模型参数量特点LLaVA 1.57B/13B开源先驱效果好CogVLM17B国产优秀模型Qwen-VL7B/14B阿里开源支持中文InternVL20B腾讯开源对标 GPT-4VMiniGPT-47B轻量级多模态BakLLaVA7BMistral LLaVAHuggingFace 多模态实战使用 Transformers 加载多模态模型from transformers import AutoProcessor, AutoModelForCausalLM from PIL import Image import requests # 加载模型和处理器 model_name llava-hf/llava-1.5-7b-hf processor AutoProcessor.from_pretrained(model_name) model AutoModelForCausalLM.from_pretrained( model_name, torch_dtypetorch.float16, device_mapauto ) # 准备输入 prompt 描述这张图片的内容 image_url https://example.com/image.jpg image Image.open(requests.get(image_url, streamTrue).raw) inputs processor( textprompt, imagesimage, return_tensorspt ).to(cuda) # 生成 generate_ids model.generate( **inputs, max_length200 ) output processor.batch_decode( generate_ids, skip_special_tokensTrue )[0] print(output)微调多模态模型from peft import LoraConfig, get_peft_model from transformers import TrainingArguments, Trainer # 配置 LoRA lora_config LoraConfig( r8, lora_alpha16, target_modules[q_proj, v_proj, mlp.gate_proj, mlp.up_proj], lora_dropout0.05, biasnone ) # 应用 LoRA model get_peft_model(model, lora_config) # 训练配置 training_args TrainingArguments( output_dir./output, num_train_epochs3, per_device_train_batch_size4, gradient_accumulation_steps4, learning_rate2e-4, fp16True, logging_steps10, ) trainer Trainer( modelmodel, argstraining_args, train_datasettrain_dataset, data_collatordata_collator, ) trainer.train()多模态应用场景文档理解def analyze_document(image_path: str) - dict: 分析文档图片 prompt 请分析这张文档图片提取以下信息 1. 文档类型发票、合同、报告等 2. 关键信息日期、金额、签名等 3. 文档的主要内容摘要 以结构化 JSON 格式输出 image Image.open(image_path) inputs processor( textprompt, imagesimage, return_tensorspt ).to(cuda) outputs model.generate(**inputs, max_length500) result processor.decode(outputs[0], skip_special_tokensTrue) return parse_json_response(result)图表分析def analyze_chart(image_path: str) - dict: 分析图表 prompt 这张图表展示的是什么数据 请提取 1. 图表类型折线图、柱状图、饼图等 2. X 轴和 Y 轴表示的内容 3. 主要趋势和发现 4. 关键数据点最大值、最小值等 # ... 类似实现视觉问答def visual_qa(image_path: str, question: str) - str: 基于图片回答问题 prompt f图片显示了什么\n\n问题{question} image Image.open(image_path) inputs processor( textprompt, imagesimage, return_tensorspt ).to(cuda) outputs model.generate(**inputs) return processor.decode(outputs[0], skip_special_tokensTrue)多模态技术挑战幻觉问题多模态模型有时会生成与图片内容不符的描述。缓解方法def reduce_hallucination(image_path: str, prompt: str) - str: 减少多模态幻觉 # 使用更严格的 prompt strict_prompt f{prompt} 重要提醒 1. 只描述图片中确实存在的内容 2. 如果不确定请说图片中看不清... 3. 不要编造任何信息 回答 # ... 实现长文本输出多模态模型在生成长文本时可能出现重复或偏离。解决方案包括限制 max_length使用更强的解码策略Beam Search、Diverse Beam后处理过滤重复内容总结多模态大模型代表了 AI 发展的重要方向。通过让模型同时理解和处理多种模态的信息我们能够构建更加智能和实用的应用。关键要点CLIP 范式是多模态学习的基础LLaVA 等开源模型让多模态更加可及HuggingFace Transformers 提供了统一的多模态 APILoRA 等技术可以用于多模态模型的微调多模态技术仍在快速发展中期待看到更多创新应用。

相关文章:

多模态大模型技术入门:让 AI 看见世界

多模态大模型技术入门:让 AI 看见世界 前言 人类感知世界的方式是多模态的——我们能看到图像、听到声音、读到文字。多模态大模型(Multimodal LLM)正是让 AI 拥有类似能力的关键技术。从 GPT-4V 到 Claude 3,从开源的 LLaVA 到 C…...

“--tile”失效了?深度逆向Midjourney纹理无缝拼接底层逻辑(含Python自动化Tile校验脚本)

更多请点击: https://codechina.net 第一章:Midjourney纹理无缝拼接的核心价值与失效现象洞察 在游戏开发、建筑可视化与数字孪生等高频复用表面材质的场景中,Midjourney生成的纹理若能实现像素级无缝拼接(tiling)&am…...

技术人的人际关系:建立良好的职业网络

技术人的人际关系:建立良好的职业网络 引言 作为一名技术人,人际关系同样重要。良好的人际关系可以帮助我们获得更多机会,提升职业发展。 今天就来分享一下如何建立良好的职业网络。 为什么人际关系重要 职业发展 良好的人际关系有助于职业发…...

LangFuse与LangSmith区别

文章目录🔄 **核心定位对比**🎯 **适用场景差异**💡 **为什么两者并存?**🔄 核心定位对比 LangSmith(LangChain官方): 闭源产品,由LangChain官方提供深度集成&#xff…...

Belkin向范围3排放碳中和目标迈进

该公司发布的《2025年环境影响报告》重点介绍了其在减排、循环设计和负责任包装方面取得的持续进展 发布了《2025年环境影响报告》(2025 Impact Report),重点介绍了关键成就,并重申了其对企业社会责任的承诺。在2025年实现范围1和…...

数字图像质量提升技术【附代码】

✨ 长期致力于图像质量提升、计算机图形处理器、并行加速、非均匀校正、图像超分辨、反射光消除、深度学习、生成对抗网络研究工作,擅长数据搜集与处理、建模仿真、程序编写、仿真设计。 ✅ 专业定制毕设、代码 ✅ 如需沟通交流,点击《获取方式》 &#…...

涡流检测驱动的发动机气门硬度分选技术【附算法】

✨ 长期致力于核环境机器人、机器人运动学、机械臂振动抑制、自适应动力学控制研究工作,擅长数据搜集与处理、建模仿真、程序编写、仿真设计。 ✅ 专业定制毕设、代码 ✅ 如需沟通交流,点击《获取方式》 (1)核辐射环境下涡流检测机…...

大规模数据降维中迹比率问题与非负矩阵分解的快速算法【附代码】

✨ 长期致力于数据降维、大规模判别分析、迹比率问题、快速算法、非负矩阵分解研究工作,擅长数据搜集与处理、建模仿真、程序编写、仿真设计。 ✅ 专业定制毕设、代码 ✅ 如需沟通交流,点击《获取方式》 (1)随机迹比率问题的显式解…...

计算机视觉与深度学习融合的群养猪行为识别与分类算法【附算法】

✨ 长期致力于计算机视觉、深度学习、攻击识别、多物体玩耍识别、饮水和玩耍饮水器分类、进食识别、行为量化研究工作,擅长数据搜集与处理、建模仿真、程序编写、仿真设计。 ✅ 专业定制毕设、代码 ✅ 如需沟通交流,点击《获取方式》 (1&…...

RAG 和 NotebookLM 都试过后,我才发现数据库知识库真正缺的不是搜索

很多数据库知识库不好用,不是模型不会答,而是知识没有被整理成可调用、可校验、可维护的资产。 前面几篇一直在聊 DB Agent。 聊 Skill,聊记忆,聊告警风暴,聊编排,也聊到了系统画像、历史案例和当前证据。…...

LangGraph Reducer 深度应用:为什么你的 State 合并总是出问题?

这篇文章帮你搞定 LangGraph Reducer 的高级用法,从源码解析到生产级模式,从并发安全到测试策略 阅读提示 适合谁看:已读过 State 设计模式基础,想深入 Reducer 机制的工程师看完能做什么:能实现生产级 Reducer&#x…...

Kimi LeetCode 2547. 拆分数组的最小代价 C++实现

这道题的核心思路是动态规划 记忆化搜索。我们定义 dfs(i) 为从下标 i 开始拆分数组的最小代价,答案即为 dfs(0)。关键观察子数组的重要性 k trimmed(subarray).length。其中 trimmed 操作会移除子数组中只出现一次的数字。如果我们用 cnt[x] 记录数字 x 在当前子…...

8.C# —— 随机数、DateTime时间、字符串

一、C# 随机数(伪随机 安全随机)1. 核心概念计算机中没有真正的随机数,生成的都是伪随机数(通过算法 种子计算得出)。种子相同 → 生成的随机数序列完全相同不指定种子 → 默认使用系统当前时间作为种子,…...

实测在ubuntu环境下调用taotoken api的延迟与稳定性表现

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 实测在ubuntu环境下调用taotoken api的延迟与稳定性表现 本文旨在分享在Ubuntu 22.04 LTS系统环境下,使用Python脚本持…...

长期使用中观察Taotoken账单的透明度与预测准确性

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 长期使用中观察Taotoken账单的透明度与预测准确性 在将多个大模型API集成到日常开发或业务流后,成本的可观测性与可控性…...

开源 AI Agent Harness Engineering 模型与闭源模型的对比

开源 AI Agent Harness Engineering 模型与闭源模型的对比 摘要 如果把AI Agent比作自动驾驶汽车,那么AI Agent Harness就是这辆车的操作系统:它负责管控任务规划、工具调用、记忆管理、容错重试等所有核心逻辑,是Agent落地工程化的核心支撑…...

软件开发行业的未来:AI编程将如何改变开发行业

在科技飞速发展的今天,人工智能(AI)正以前所未有的速度渗透到各个领域,软件开发行业也不例外。AI编程作为AI技术在软件开发领域的重要应用,正在深刻地改变着开发行业的格局。对于软件测试从业者来说,了解AI…...

智慧校园之考场作弊事实识别图像数据集 考试作弊识别监控 学生作弊识别系统数据集 AI识别作弊数据集

考试违规检测数据集简介 类别 Tags 标签 Object DetectionClasses (2) 类别(2) Cheating 作弊 Not Cheating 未作弊项目详情数据集类别涵盖考试场景下多种违规行为类别,包括但不限于作弊工具使用、交头接耳、擅自离座、抄袭等典型违规场景数据…...

智慧无人机航拍巡检数据集 红外行人车辆识别数据集 行人车辆计数图像识别 红外建筑物识别 夜间低光环境下视觉感知算法 安防、交通等领域红外视觉任务 第10355期

深度学习数据集 README数据集核心信息总览维度详情数据类别目标检测类(建筑物、人们、车辆、路灯、通用物体、单个行人,共 6 类)数据数量图像样本共 60 张,包含训练、验证、测试所需的基础样本量数据集格式图像格式(支…...

抖音无水印下载器:高效保存高清视频与图集的完整解决方案

抖音无水印下载器:高效保存高清视频与图集的完整解决方案 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback su…...

py之代码实现获取字符串中每个字符的unicode值

def print_unicode_values(strings_list):"""接收字符串列表,提取所有字符的Unicode码点并以0x格式升序打印,后面加上对应字符"""unicode_values = set() # 使用集合自动去重for text in strings_list:for char in text...

py每日spider案例之netease搜索接口获取

import requestsheaders = {"accept": "application/json, text/plain, */*","accept-language": "en-US,en;q=0.9,zh-CN;q=0.8,zh;q=0.7","cache-control": "no-cache",...

pubnub代码示例

import time from pubnub.pnconfiguration import PNConfiguration from pubnub.pubnub import PubNub, SubscribeListener from pubnub.exceptions import PubNubExceptionpublish_key=pub-c-fab-b05a-c355bb3adac5 subscribe_key=sub...

c语言之pubnub库代码示例

好的,这是 PubNub 在 FreeRTOS 平台上的核心接口代码示例: PubNub 核心接口示例 1. 初始化与配置 #include "pubnub_api.h" #include "pubnub_coreapi.h" #include "pubnub_pubsubapi.h"...

《科技代替了我工作》的传播入口:技术焦虑如何落到听众

从内容传播角度看,《科技代替了我工作》有天然的现实入口,但写法必须克制。它不是技术教程,也不是政策评论,而是把技术变化落到一个普通人的饭碗、身份感和安全感上。这个标题容易被记住,因为它把宏大的技术词变成了第…...

知识竞赛裁判怎么当?评分标准与争议处理

知识竞赛裁判怎么当?评分标准与争议处理公平 专业 高效 守护竞赛的生命线🎯 一、裁判的角色与职责知识竞赛裁判是竞赛公平的守护者,不仅要掌握规则,还要具备快速判断和沟通能力。核心职责:📋 赛前熟悉题…...

从被动响应到主动行动:AI Agent的自主性革命

从被动响应到主动行动:AI Agent的自主性革命 标题选项 《从被动响应到主动行动:AI Agent如何开启下一代人工智能的自主性革命》 《告别“一问一答”:拆解AI Agent的自主决策逻辑,看懂下一代AI的核心方向》 《从ChatGPT到自主Agent:人工智能的下一个拐点,到底革了谁的命?…...

聊一聊5家软件许可优化公司,哪个更适合你?

做软件资产管理的朋友应该都有同感:软件许可这事儿,水太深了。尤其这几年大厂审计越来越狠,一不小心就是几百万的罚单。所以很多公司开始找专门做软件许可优化的服务商。今天聊聊5家比较有代表性的:、Flexera、Snow、Anglepoint和…...

从零开始:5分钟掌握Mermaid Live Editor,告别复杂图表绘制烦恼

从零开始:5分钟掌握Mermaid Live Editor,告别复杂图表绘制烦恼 【免费下载链接】mermaid-live-editor Edit, preview and share mermaid charts/diagrams. New implementation of the live editor. 项目地址: https://gitcode.com/GitHub_Trending/me/…...

基于Windows内核驱动框架的游戏控制器虚拟化技术实现方案

基于Windows内核驱动框架的游戏控制器虚拟化技术实现方案 【免费下载链接】ViGEmBus Windows kernel-mode driver emulating well-known USB game controllers. 项目地址: https://gitcode.com/gh_mirrors/vi/ViGEmBus 在Windows游戏生态系统中,设备兼容性一…...