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

DeepSeek AI 推出 Janus 自回归框架,统一视觉、文本理解与生成的创新解决方案

❤️ 如果你也关注大模型与 AI 的发展现状,且对大模型应用开发非常感兴趣,我会快速跟你分享最新的感兴趣的 AI 应用和热点信息,也会不定期分享自己的想法和开源实例,欢迎关注我哦!

🥦 微信公众号|搜一搜:蚝油菜花 🥦


🚀 快速阅读

  1. Janus 是一个统一多模态理解和生成任务的自回归框架。
  2. 它通过解耦视觉编码和统一的 Transformer 架构实现高效的多模态处理。
  3. Janus 在图像生成、图像标注、视觉问答等领域有广泛的应用前景。

正文(附运行示例)

Janus 是什么

在这里插入图片描述

Janus 是一个由 DeepSeek AI 推出的自回归框架,旨在统一多模态理解和生成任务。它通过将视觉编码分离成不同的路径,解决以往方法的局限性,并使用单一的变换器架构进行处理。这种设计不仅减轻了视觉编码器在理解和生成任务中的角色冲突,还提高了框架的灵活性。Janus 在性能上超越以往的统一模型,在某些情况下超过特定任务模型的性能,使其成为下一代统一多模态模型的有力候选者。

Janus 的主要功能

  • 多模态理解:Janus 能处理和理解包含图像和文本的信息,让大型语言模型能理解图像内容。
  • 图像生成:基于文本描述,Janus 能生成相应的图像,展现出从文本到图像的创造力。
  • 灵活性和扩展性:Janus 的设计支持独立选择最适合的编码方法进行多模态理解和生成,易于扩展和集成新的输入类型,如点云、EEG 信号或音频数据。

Janus 的技术原理

  • 视觉编码的解耦:Janus 基于为多模态理解和生成任务设置独立的编码路径,解决两项任务对视觉信息粒度不同需求的冲突。
  • 统一的 Transformer 架构:Janus 用单一的 Transformer 架构处理不同的编码路径,保持模型的统一性和效率。
  • 自回归框架:Janus 基于自回归方法,逐步生成文本或图像数据,在生成任务中具有灵活性和控制性。
  • 多阶段训练:Janus 的训练分为多个阶段,包括适配器和图像头部的训练、统一预训练和监督微调,确保模型在多模态任务上的表现。
  • 跨模态交互:Janus 能处理不同模态间的交互,如将文本转换为图像或从图像中提取信息回答问题,实现不同模态间的无缝转换和理解。

如何运行 Janus

# 示例代码:多模态理解
# 加载模型和处理器
model_path = "deepseek-ai/Janus-1.3B"
vl_chat_processor = VLChatProcessor.from_pretrained(model_path)
tokenizer = vl_chat_processor.tokenizer
vl_gpt = AutoModelForCausalLM.from_pretrained(model_path, trust_remote_code=True)
vl_gpt = vl_gpt.to(torch.bfloat16).cuda().eval()# 准备输入数据
conversation = [{"role": "User","content": "<image_placeholder>\nConvert the formula into latex code.","images": ["images/equation.png"],},{"role": "Assistant", "content": ""},
]
pil_images = load_pil_images(conversation)
prepare_inputs = vl_chat_processor(conversations=conversation, images=pil_images, force_batchify=True).to(vl_gpt.device)# 运行模型
inputs_embeds = vl_gpt.prepare_inputs_embeds(**prepare_inputs)
outputs = vl_gpt.language_model.generate(inputs_embeds=inputs_embeds,attention_mask=prepare_inputs.attention_mask,pad_token_id=tokenizer.eos_token_id,bos_token_id=tokenizer.bos_token_id,eos_token_id=tokenizer.eos_token_id,max_new_tokens=512,do_sample=False,use_cache=True,
)# 解码输出
answer = tokenizer.decode(outputs[0].cpu().tolist(), skip_special_tokens=True)
print(f"{prepare_inputs['sft_format'][0]}", answer)

资源

  • Janus GitHub 仓库:https://github.com/deepseek-ai/Janus
  • Janus HuggingFace 模型库:https://huggingface.co/deepseek-ai/Janus-1.3B
  • Janus arXiv 技术论文:https://arxiv.org/pdf/2410.13848

❤️ 如果你也关注大模型与 AI 的发展现状,且对大模型应用开发非常感兴趣,我会快速跟你分享最新的感兴趣的 AI 应用和热点信息,也会不定期分享自己的想法和开源实例,欢迎关注我哦!

🥦 微信公众号|搜一搜:蚝油菜花 🥦

http://www.lryc.cn/news/467630.html

相关文章:

  • NORDIC nPM1100 是一款集成式电源管理
  • 深入RAG:知识密集型NLP任务的解决方案
  • vue-element-admin顶部导航栏的修改
  • 微信小程序 setData数据量过大的解决与分页加载的实现
  • 体育动画直播嵌入方式以及作用
  • 腾讯云轻量服务器Lighthouse的前世今生
  • java实现redis的消息发送和消费,类似kafka功能
  • 【软件设计】常用设计模式--代理模式
  • 生命与自由,抑郁的来源
  • CTFHUB技能树之文件上传——双写后缀
  • SpringBoot整合HTTPS
  • LVGL-从入门到熟练使用
  • 【MySQL数据库】MySQL读写分离
  • 深度学习:简单计算图的反向传播传递导数计算
  • 学习AJAX请求(初步)24.10.21-10.23
  • 初识算法——二分查找
  • 深入剖析 Java Spring 中的 @Autowired、@Resource、@Qualifier、@Inject 注解:使用详解与注意事项
  • ThingsBoard规则链节点:Delete Attributes节点详解
  • 关于作为面试官以及如何准备面试的一些心得
  • Bean对象 和 普通对象 的区别
  • lego-loam featureAssociation 源码注释(二)
  • Claude 3.5 的六大应用场景
  • 进程线程知识总结
  • Rsync数据复制/备份服务应用
  • 如何为自己的跨境网站添加多国语言翻译功能及推荐起尔网定制与插件开发
  • 安全见闻(3)——开阔眼界,不做井底之蛙
  • MySQL 的意向锁(Intention Locks)原理详解
  • 31个省份农业科技水平(农业技术创新或农业科技专利数据)2010-2022年
  • Python代码执行失败问题及解决方案
  • Java 遗传算法