Git Product home page Git Product logo

Comments (8)

yangapku avatar yangapku commented on May 18, 2024 1

您好,这个问题我们确实后续需要更好支持下。我们进行Chinese-CLIP预训练时,对于预训练上亿量级图文对的分布式数据读取,其实是采用了集团内部的数据表读取机制(并非LMDB),LMDB这套数据存取逻辑是我们先为开源版本准备的,模型finetune因为数据量级不会很大,问题可能不大,但是处理7000w这种大量级的数据确实还是会有些不便。我们后面看看能否支持一些优化机制(比如支持按机器数/卡数切分成多个LMDB小文件,训练时每台机器/每张卡读取自己的LMDB小文件),但是我们现在人员精力确实相当紧张,所以可能会比较慢一些不太好预估何时完成。您可以先按照这样的思路进行尝试(LMDB本身应该是支持制作时保存在多个小文件中的),更欢迎您为我们提供PR,支持上这个issue哈。

from chinese-clip.

Akon-Fiber avatar Akon-Fiber commented on May 18, 2024 1

非常感谢您真诚的回答与建议,我们也是内部讨论后也是有相似想法:(1)人工制作多节点,先根据机器device进行LMDB切分,避免单device的IO瓶颈,这个方法代码比较简单,但切分比较繁琐;(2)采用分布式缓存数据库Redis去做多机的,虽然网上没有搜索到先例,但感觉值得一试

from chinese-clip.

saicoco avatar saicoco commented on May 18, 2024 1

路过,对于大规模数据读取,LMDB因为是顺序读取,随着数据量的增加io会成为瓶颈。这类问题可以采用类似tfrecord的处理方式,将数据进行分片,在分片内部顺序读取,分片间随机读取。
可使用工具:webdataset,pickle,tar等。
读取工具可以使用torchdata,目前已经可以较好支持webdataset等类似tar的读取。

另外一个问题是大规模数据的准备:可以借助spark等工具加速数据的生成

from chinese-clip.

yangapku avatar yangapku commented on May 18, 2024

明白~ 如果后续尝试有更多问题,欢迎及时沟通同步!

from chinese-clip.

wangpx0906 avatar wangpx0906 commented on May 18, 2024

请问一下把这7000万写入lmdb,速度快吗?

from chinese-clip.

Adenialzz avatar Adenialzz commented on May 18, 2024

各位大佬,把图像buffer存到parquet里的数据形式适合做clip训练吗?

from chinese-clip.

Yangr116 avatar Yangr116 commented on May 18, 2024

有更新嘛

from chinese-clip.

chengjianjie avatar chengjianjie commented on May 18, 2024

您好,这个问题我们确实后续需要更好支持下。我们进行Chinese-CLIP预训练时,对于预训练上亿量级图文对的分布式数据读取,其实是采用了集团内部的数据表读取机制(并非LMDB),LMDB这套数据存取逻辑是我们先为开源版本准备的,模型finetune因为数据量级不会很大,问题可能不大,但是处理7000w这种大量级的数据确实还是会有些不便。我们后面看看能否支持一些优化机制(比如支持按机器数/卡数切分成多个LMDB小文件,训练时每台机器/每张卡读取自己的LMDB小文件),但是我们现在人员精力确实相当紧张,所以可能会比较慢一些不太好预估何时完成。您可以先按照这样的思路进行尝试(LMDB本身应该是支持制作时保存在多个小文件中的),更欢迎您为我们提供PR,支持上这个issue哈。

大佬,请问下最后是怎么解决的, 我也是想训练千万级数据,但是处理成lmdb格式就已经很大了,训不起来

from chinese-clip.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.