57 lines
2.9 KiB
Markdown
57 lines
2.9 KiB
Markdown
# meaning dataset
|
||
|
||
meaning数据集是一个模仿自然语言,以及抽象表达的数据集。
|
||
|
||
## 概念
|
||
|
||
1. token表示最终体现的基本数据表达,类似单词。vocab_size表示代表token的数量。
|
||
2. meaning表示一种语义(符号),所有的meaning都由一个编号表达,编号越大表示语义越复杂
|
||
3. 所有的meaning都可以由更低标号表达
|
||
4. 从0到(vocab_size-1)的编号表示基本meaning,是不能被拆解的,也就是token
|
||
5. meaning通过一层层的向低编号的meaning进行组合替换,最终形成一个最底层是token的树形数据
|
||
6. level表示当前token相对于root meaning的距离
|
||
7. rank
|
||
8. rank_idx表示当前token在不同层的排序编号,每4位表示在一层里面的编号,低4位表示最低层级的rank_idx,高位无用的位用1填充
|
||
9. rank_all表示当前token所在的不同层的总的分支个数,每4位表示在一层里面的个数,低4位表示最低层级的rank_all,高位无用的位用1填充
|
||
10. tree用于存储每个meaning的拆解的数据,使用字典表达一个树形结构
|
||
11. get_rank_mask返回一个sequence每个token在对应level是不是对应的index,level=0:最底层,index=-1:最后一个,index=0:第一个
|
||
12. meaning_height 当前meaning的总高度
|
||
13. meaning_weight 当前meaning的总宽度
|
||
14. val_mask_level val_mask_idx: 表示用于训练的token的mask,val_mask_level=[0, 1, 2] val_mask_idx=[0, 0, -1]表示只有是第0层第0个,而且是第1层第0个,第2层最后一个的token,才参与训练
|
||
15. with_tree 表示每个meaning的拆分都以当前meaning编号结束,sequence会插入很多枝节点,而不仅仅是叶节点
|
||
16. ms_level 大于255表示这个token是tree(level 0用255表示),大于511表示这个token是stride(level 0用511表示),生成val mask的时候是False
|
||
17. ms_map 表示每个meaning拆解的sub meaning
|
||
18. index must < 15,level must < 8
|
||
|
||
## code
|
||
|
||
```
|
||
vocab = config.model_config.vocab_size
|
||
start 数据集的样本开始meaning
|
||
size 数据集的样本个数
|
||
```
|
||
|
||
```
|
||
vocab_size = 256 meaning = 115200
|
||
|
||
115200
|
||
/ | \
|
||
10240 1100 12322
|
||
/ | \ / \ / | \
|
||
512 32 1201 245 233 3214 532 324
|
||
/ \ / \ / \ | / \
|
||
123 42 320 500 1231 23 324 93 176
|
||
/ \ / \ / \ / \
|
||
176 11 255 129 129 99 211 111
|
||
|
||
sequence = 123 42 32 176 11 255 129 245 233 129 99 23 211 111 93 176
|
||
level = 3 3 2 4 4 4 4 2 2 4 4 3 4 4 3 3
|
||
|
||
rank_idx = 0 1 1 0 1 16 17 16 17 0 1 2 0 1 32 33
|
||
idx at0 = 0 1 1 0 1 0 1 0 1 0 1 2 0 1 0 1
|
||
idx at1 = 0 0 0 0 0 1 1 1 1 0 0 0 0 0 2 2
|
||
|
||
rank_all =
|
||
|
||
```
|