码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 【跨模态】Jina VCED


    目录

    0. 准备工作

    1. Task 01 环境搭建

    2. Task 02 Jina学习

    2.1 概念

    2.2 任务过程

    i. 成功启动 grpc 服务

    ii. 在Jina的Docarray中导入任意模态的数据

    3. Task 03 跨模态模型

    4. Task 04 前端模块

    5. Task 05 后端模块

    6. Task 06 后端模块


    0. 准备工作

    • 开源内容:GitHub - datawhalechina/vced: VCED 可以通过你的文字描述来自动识别视频中相符合的片段进行视频剪辑。该项目基于跨模态搜索与向量检索技术搭建,通过前后端分离的模式,帮助你快速的接触新一代搜索技术。

    • 开营视频介绍:输入关键词就能自动剪视频?我写了一个AI视频搜剪神器?_哔哩哔哩_bilibili

    • 内容属性:跨模态(实践)专题

    • 内容说明:Video Clip Extraction by description ,简称VCED。VCED可以通过你的文字描述来自动识别视频中相符合的片段进行视频剪辑。该项目基于 MLOps 框架 Jina 与 CLIP 模型搭建,通过前后端分离的模式,帮助你快速地接触前沿的多模态 AI 搜索技术。

    • 详细介绍:Jina AI 联合Datawhale,发起学习项目!

    • Jina 开源地址:GitHub - jina-ai/jina: 🔮 Build cross-modal and multimodal applications on the cloud · Neural Search · Creative AI · Cloud Native · MLOps

    • Roadmap:vced/Roadmap.md at main · datawhalechina/vced · GitHub

    1. Task 01 环境搭建

    大部分参考了 frame frame(他是我见过最卷的本科生,没有之一(顺便吐槽一句,为啥网友都这么卷 ))的文章:http://t.csdn.cn/ykgoY ,但还是踩坑了,改成适合自己的 。

    • 目标:完成项目依赖的安装,可以在本地打开 HTML 文档

    1. 在虚拟机中新建终端
    2. 设置root环境:sudo passwd root
    3. 设置一个新的密码:su -
    4. 下载miniconda
        下载安装软件:wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linuxx86_64.sh
        给安装文件添加执行指令:sudo chmod +x Miniconda3-latest-Linux-x86_64.sh
        安装,一直enter:sudo ./Miniconda3-latest-Linux-x86_64.sh
    5. 进入环境变量更改:vim ~/.bashrc
    6. 随便找一个位置添加:export PATH="/root/miniconda3/bin:$PATH"
    7. 并且配置python3.9环境变量:alias python='/usr/bin/python3'

    8. source ~/.bashrc
    9. conda create -n vcde python=3.9
    10. conda activate vcde 或者 source activate vcde
    11. apt install rustc
    12. apt install ffmpeg
    13. 创建一个文件夹,用来放代码:cd ~/vced/
    14. git clone https://gitee.com/473091010/CLIP.git
    15. git clone https://gitee.com/shuangshuang853/vced.git
    16. 启动server:cd code/service、pip install -r requirements.txt、python3 app.py

     17. 启动web:cd code/web、pip install -r requirements.txt、streamlit run app.py

    遇到问题:ConnectionError: failed to connect to all addresses

     后来发现是 启动server 和 cd code/web 要一起启动。

    search的结果:查找一个有树的视频

    2. Task 02 Jina学习

    • 目标:熟悉 Jina 生态与相关操作
    • 成功启动 grpc 服务
    • 在 Jina 的 Docarray 中导入任意模态的数据
    • 代码练习:code/jina_demo

    2.1 概念

    多模态机器学习是一个相对较新的领域,它关注可以从多种数据模态中学习的算法的开发。

    跨模态机器学习是多模态机器学习的一个子领域,它关注算法的开发,这些算法可以从不一定对齐的多种数据模态中学习。例如,从图像和文本中学习,其中图像和文本不一定是同一事物。

    Jina:可以帮助你快速把非结构化数据例如图像,文档视频等,转换为向量数据。

    为什么要转换为同一个向量:将同一个东西的不同模态(视频/文档/图片)转换为同一个向量,实现跨模态搜索。

    Jina 的三个基本概念:

    • Document 是基本的数据类型,它的作用就是可以将非结构化数据与向量数据之间进行映射。

    • Executor 可以理解为一个 Python 类,代表了 Jina 中的算法单元,比如把图像编码成向量、对结果进行排序等算法等都可以用 Executor 来表述。

    • Flow 可以将多个 Executor 连接起来,将他们协调成流水线(pipeline)。

    DocArray:是用于存储非结构化数据的数据结构工具包,是本次我们做跨模态应用的基础,融合了 Json、Pandas、Numpy、Protobuf 的优点,其基本数据类型是Document。DocArray 的亮点在于 Hierarchy + Nested。

    DocArray 有不同的层级结构,分层存储,第一层可以是一个整体的视频,第二层是该视频的不同镜头,第三层可以是镜头的某一帧。也可以是其他模态,比如第四层存储台词段落,第五层存储 ..... 既可以通过某个画面的描述搜索,也可以通过台词的意思去搜索,这样搜索的颗粒度,结构的多样性和结果的丰富度,都比传统文本检索好很多。

    • Document:一种表示嵌套非结构化数据的数据结构,是 DocArray 的基本数据类型。无论是处理文本、图像、视频、音频、3D、表格 或它们的嵌套或组合,都可以用 Document 来表示,从而使得各类数据的结构都非常规整,方便后续处理

    • DocumentArray:用于高效访问、处理和理解多个文档的容器,可以保存多个 Document 的列表

    • Dataclass:用于直观表示多模式数据的高级API

    什么是RPC: 总监又来了,人狠话不多,这篇 gRPC,小弟佩服! - 掘金 

    RPC(Remote Procedure Call Protocol)远程过程调用协议,目标就是让远程服务调用更加简单、透明。

    主要就是将下面的图

    我估计gRPC是一种类似HTTP/WebSocket的通信协议。

     

    2.2 任务过程

    i. 成功启动 grpc 服务

            jina flow --uses toy.yml

    运行client程序:python3 client.py

     最终会打印出一个 “[‘’, ‘foo was here’, ‘bar was here’]” 字符串。

    ii. 在Jina的Docarray中导入任意模态的数据

    创建文本

    1. from jina import Document # 导包
    2. # 创建简单的文本数据
    3. d = Document(text='hello, world.')
    4. print(d.text) # 通过text获取文本数据
    5. # 支持多语言
    6. d = Document(text='👋 नमस्ते दुनिया! 你好世界!こんにちは世界! Привет мир!')
    7. print(d.text)

     乱码,可能是系统对一些字体不支持。

    切割文本

    1. from jina import Document # 导包
    2. d = Document(text='👋 नमस्ते दुनिया! 你好世界!こんにちは世界! Привет мир!')
    3. d.chunks.extend([Document(text=c) for c in d.text.split('!')]) # 按'!'分割
    4. d.summary()

     后面不写了,主要是看demo和另一个博客:

    参考:

    vced/jina.md at main · datawhalechina/vced · GitHub

    http://t.csdn.cn/t8gMV

    frame frame 的 图表画的很好:http://t.csdn.cn/Vz4l1

    3. Task 03 跨模态模型

    • 目标:理解多模态的重要性,初步了解 CLIP 模型
    • 了解其他跨模态模型
    • 在 Document 中导出多模态数据,生成对应 embedding

    learning-for-all: 图像分类/检测/分割的代码基本上传目前在学习自然语言处理,逐步上传中 - Gitee.comhttps://gitee.com/shuangshuang853/learning-for-all/tree/master/image-classification/20_clip一个大佬的Clip学习笔记,赞:  https://blog.csdn.net/qq_56591814/article/details/127421979?spm=1001.2014.3001.5502


    4. Task 04 前端模块

    • 目标:初步掌握 Streamlit,理解项目前端逻辑
    • 使用 Streamlit 将任意数据科学相关内容部署在本地

       依然是frame frame大佬的博文:http://t.csdn.cn/SLhwa   (现在的小孩怎么这么厉害,比不过)

       补充一点就是这个Streamlit包不一定要在前面那一通环境配置下,直接找一个自己Win下的一个环境,只要有Streamlit包就能用。

         这个小老弟也是写的牛牛的:http://t.csdn.cn/p7sDF


    5. Task 05 后端模块

    • 目标:熟悉 Executor 的基础功能,理解项目后端逻辑
    • 实现一个任意功能的 executor,完成封装
    • 使用 Jina Hub 中的任意 executor,通过 flow 的方式引入自己的项目


    6. Task 06 项目拓展练习

    • 目标:完成项目的拓展功能

  • 相关阅读:
    GBase 8c使用DML更新和插入表数据(二)
    智能客服外包服务适用于哪些行业?
    Redis 的特点及命令大全
    SQL排序函数详解+案例实战
    iphone如何使用itunes恢复数据?
    MySQL多表查询操作
    ES 搜索引擎的分片数、副本数分配算法
    驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接
    数据库(mysql)基本概念
    智慧图书馆解决方案-最新全套文件
  • 原文地址:https://blog.csdn.net/weixin_42322991/article/details/127857371
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号