前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >在Jetson上玩转大模型Day16:NanoLLM开发平台(5):视觉数据库分析助手

在Jetson上玩转大模型Day16:NanoLLM开发平台(5):视觉数据库分析助手

作者头像
GPUS Lady
发布2024-12-05 13:53:28
发布2024-12-05 13:53:28
1590
举报
文章被收录于专栏:GPUS开发者GPUS开发者

前面使用NanoLLM的vision.video功能来分析视频或摄像头画面,是一种非常轻便的方法,但是互动性不足,主要是演示视频处理的能力。 为了让大家更进一步感受到NonoLLM库的强大,本文要使用一个集成多模态大模型并加上浏览器互动界面的nano_llm.agents.video_query智能体,不仅可以显示输入源的相关信息,还能动态调整输出token的数量,如下截屏的Max Tokens所示:

输入源可以是以H264/H265编码的多种格式档,也支持摄像头输入。输出部分就直接将识别的内容在浏览器中的画面上显示,最后还能结合前面的nanodb数据库项目,提供RAG检索的功能,适用性非常之高。 目前nano_llm.agents.video_query智能体两个比较明显不足的地方:

  1. 不支持英文以外的文字显示;
  2. 未将语音识别与输出的部分集成进去。

不过瑕不掩瑜,这个智能体还是能让我们非常轻松地执行强大的功能。现在我们依旧使用Efficient-Large-Model/VILA1.5-3b多模态大模型来进行演示。首先还是要先执行以下指令,进入Nano_LLM的容器中: $ jetson-containers run $(autotag nano_llm) 然后在容器中执行以下命令,就能运行这项功能: $ python3 -m nano_llm.agents.video_query --api=mlc \ --model Efficient-Large-Model/VILA1.5-3b \ --max-context-len 256 \ --max-new-tokens 32 \ --video-input /data/sample_720p.mp4 \ --video-output webrtc://@:8554/output 前端推荐使用Google的Chrome浏览器,因为使用了WebRTC功能,开启之前请关闭chrome://flags/#enable-webrtc-hide-local-ips-with-mdns选项,然后开启浏览器输入https://127.0.0.1:8050,就能看到下面的画面:

除了右边“Streaming”设定中可以调整“MaxTokens”值之外,在下方也有个对下拉式的对话框,里面提供9条预设的prompts可以直接选择,当然我们也可以直接在框框里面输入自己的prompt进行互动。 如果我们将“--video-input”后面改成“/dev/video0”的话,就能将输入源直接换成接在设备上的USB摄像头。完整指令如下: $ python3 -m nano_llm.agents.video_query --api=mlc \ --model Efficient-Large-Model/VILA1.5-3b \ --max-context-len 256 \ --max-new-tokens 32 \ --video-input /dev/video0 \ --video-output webrtc://@:8554/output 现在画面就变成摄像头所抓取的内容。

但这样就已经满足了吗?还不够的,nano_llm.agents.video_query智能体还能集成前面nanodb的数据查找的功能,让我们将能力扩展到与现有图片进行比对,快速找出符合度高于要求的图片。 例如,我们在前面的nanodb项目中,使用/data/my_dataset/training2017数据集创建矢量数据库,存放在/data/my_dataset/nanodb下的config.json、vectors.bin与metadata.json三个档中,如果需要结合尽量,只要在前面指令中添加最后一行即可,下面列出完整指令: $ python3 -m nano_llm.agents.video_query --api=mlc \ --model Efficient-Large-Model/VILA1.5-3b \ --max-context-len 256 \ --max-new-tokens 32 \ --video-input /datra/sample_720p.mp4 \ --video-output webrtc://@:8554/output \ --nanodb /data/my_dataset/nanodb 项目执行之后,刷新浏览器,就能看到如下图的内容:

现在右边会根据我们提供的prompt,结合多模态大语言模型去识别出对应的描述,然后从nanodb中找出符合度够高的图片,显示在右方栏位上,原本的“Streaming”功能就被挤到下面去了。 同样的,如果我们将输入源改成USB摄像头的话,完整指令如下: $ python3 -m nano_llm.agents.video_query --api=mlc \ --model Efficient-Large-Model/VILA1.5-3b \ --max-context-len 256 \ --max-new-tokens 32 \ --video-input /dev/video0 \ --video-output webrtc://@:8554/output \ --nanodb /data/my_dataset/nanodb 就能看到乳下方截屏的内容:

如果在手上拿起一个orange时,右边跳动显示的内容中也会出现水果类的图片,不过这个显示的跳动很快,也会出现其他描述内容相关的图片。 如何,这个nano_llm.agents.video_query智能体很有意思吧!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-12-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 GPUS开发者 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档