基于Agent的图生视频自动化
自从出现热议、炒作或承诺以来,无论我们以何种方式看待大型语言模型,都已经取得了进展,使其可用于解决现实世界和业务问题。
在此过程中,引入了 RAG(检索增强生成),这意味着有效地提供动态实时数据来增强预训练或微调的 LLM 模型,然后允许 LLM 回答查询。
这提供了几个优势,可帮助组织动态使用特定领域的数据并获得与上下文相关的有意义的响应,而无需花费时间和资源来训练和微调 LLM 基础模型。
如果你最近注意到谷歌搜索结果,会发现 AI 概述带有响应,并且来源如果提到获取响应作为链接。这类似于 Perplexity 搜索的工作方式,所有这些都基于 RAG。
现在,RAG 非常适合聊天机器人类型的用户界面和体验,下一个挑战是我们如何利用、集成、协调这些查询和响应与具有自动化能力的现有/新企业应用程序。这就是 Agent 的用武之地,它是一个以完成特定任务为目标的程序。
1、绘图转视频的过程
让我们来看这个例子:我们想使用多模态 LLM(即可以理解文本、图像和其他内容的 LLM)将此绘图转换为动画视频。
步骤如下:
1) 识别我们想要制作动画的输入图像。
输入图像:
2) 描述绘图,即图像到文本描述 -> 彩虹和蝴蝶的画作。
3) 定义我们希望动画是什么样的 -> 动画蝴蝶在彩虹周围飞舞。
4) 执行动画 -> 通过文图生视频预训练模型CogVideoX 将图像转换为视频
5) 使用适当的文件名保存并播放。
点击这里查看生成的视频。
2、用Agent实现自动化
现在让我们使用 AI Agent 自动化整个过程。我们所做的就是将图像上传到文件夹,代码会自动执行以下操作:
1) 描述图像
2) 创建提示以生成动画(代理 1)
3) 创建视频标题(代理 2)
4) 生成并以生成的标题名称保存视频。(代理 3 )
代理在 LangGraph 中表示为节点,如下图所示:
LangGraph 是使用 LLM 实现基于代理的解决方案的框架/库之一。在 LangGraph 中,可以直观地映射事件的逻辑流,如有向无环图。LangGraph 中的状态有助于维护内存并将值从一个节点传输到另一个节点。每个节点都可以访问其关联的函数来执行任务示例:比如为图像创建“标题”。
它对 LLM 进行特定调用以获取特定输入的特定输出,而无需过多担心其他代理/节点的操作。此方法称为函数调用(function calling)。
在示例中,负责创建标题的节点/代理之一可以访问 ChatGPT API,它传递图像描述并获取标题或说明作为响应。因此,它可以访问一个工具。工具是代理执行任务可用的选项,如果需要,它可以使用多个工具。有时,如果需求是动态的,例如获取城市的当前温度,它可以通过工具访问 Web API 以获取该信息,此过程称为工具使用(tool use)。
所有这些都是花哨的名字,只需记住这些只是包装起来的函数,用于使用或不使用 LLM 执行某些操作,帮助代理完成任务。代理有许多用例——无论是任何领域,你都可以利用它并分解复杂的任务并按顺序或分层执行它们。你可以创建要路由的条件边,可以让代理验证输出等等......这就像拥有一支助手大军来承担任务并完成它们。
实际代码及其流程如下所示:
我只是拿了我孩子的一堆画,并自动制作了动画。很有趣。这是输出视频。
你可以在 Google Colab 笔记本中自己执行此代码。只需在你的 colab 中的 /content/sample_data/
下创建一个文件夹 images
,然后上传你想要制作动画的图像。还要确保你使用 hugging face 和 ChatGPT API 令牌。你只需几分钟即可创建它们。这可以适用于任何 LLM,无论是开源的还是专有,只需进行最少的更改。
原文链接:Agent in AI — Using LangGraph and CogVideoX for Image-to-Video Generation
汇智网翻译整理,转载请标明出处