oneflow-documentation
oneflow-documentation copied to clipboard
增加一篇 one_embedding 的 howto guide
trafficstars
基于 https://github.com/Oneflow-Inc/OneCollections/blob/a67287b649b39fd2bc29a17afeefbd9d241e73b1/OneEmbedding/one_embedding_tutorials.md
写一篇 howto guide
大纲
- 简要说明 Embedding 现在算基操,非常简单代码展示下 flow.Embedding 的使用(创建 Embedding,查Embedding表)
- 过渡到OneEmbedding ,说实际工业需要更强大的 embedding,然后概述说明 OneEmbedding:和现有的内容差不多。需要注意:是否可以更精简,去掉与 howto 无关的部分(即无法操作感知的部分);以及:是否要调换顺序,使得概要的各个功能点的顺序,和后文中的正文介绍的顺序一致
- 使用 OneEmbedding 创建一个 Embedding 的示例。只需要展示最基本的功能(展示 make tables(设定表、行)、设定列、store_options 使用最普通的(GPU?)、查表(因为必需使用 Graph,可能还需要定义个极简的Graph))。然后说明下代码,哪里的代码设置了 embedding 的大小(行),哪里的代码设定了列(好像是动态扩容的不需要特别设置,这个根据实际情况调整),哪里是实例化 embedding ,哪里是查表。然后过渡到更细致更高级的功能
- 介绍OneEmbedding提供了三种存储选项,分别的意义。介绍如何做选择的依据(现有文章中有)。然后一个或多个具体的可以运行的代码例子,并对参数的设置做解释。最后说明更详细的使用参考,可查 API DOCS
- 动态扩容示例(即如何在运行时给 embedding table 插入特征,我在现有文章中还没看到)
- Embedding table 的存储和加载。配置可以运行的代码即可
- 实例进阶:以上的展示的词表并不大,现在以 DLRM 为例,展示一个更贴近工业实际的例子(现有文章中有相关代码,不过好像格式残缺了)
关于第 5 点我不是很确定。用户做什么操作时,可能会导致 OneEmbedding Table 动态扩容呢?应该是插入新特征时,但是现有文章和 API DOCS 中我好像没看到相关的代码例子。
@guo-ran