资讯 文档
技术能力
语音技术
文字识别
人脸与人体
图像技术
语言与知识
视频技术

文心工具代码结构

文本将对文心NLP开发工具包的代码目录结构进行简要介绍。如果您对个别模块有详细的使用需求,可参考后续其他文档。

一级目录

文心工具包内的一级目录结构及其说明如下所示:

.            
├── config.ini                      ## 用户的使用配置,可以使用默认配置即可
├── env.sh						  ## 环境变量配置文档
├── tasks                           ## 各任务入口脚本,通过调用json、自定义textone预置模块实现模型训练。
├── wenxin                          ## 文心开发套件核心代码
└── requirements.txt                ## 文心依赖列表

wenxin目录介绍

wenxin目录为核心代码,其核心结构及其说明如下所示:

  • common:各模块通用部分,包含注册模块、剪切规则、padding规则、超长字符串截断规则及其常量等设置。
  • data:核心数据处理模块,包括数据读取、转id等内容。
  • metrics:评估函数。
  • models:组建网络主干部分,包括前向网络、优化器、metrics等四部分。
  • modules: 子网络部分,一些公用的网络片段,如语义表示部分。
  • training:训练主体部分,封装program、load、save等过程。
  • inference:预测主体部分,封装program、load等过程。
  • utils:辅助工具,包括参数初始化等。

下面将对部分重要代码做概要说明:

.
├── __init__.py                                           
├── common                                                
│   ├── __init__.py
│   ├── args.py                                                           
│   ├── register.py                                         ## 注册模块
│   ├── controler.so                                        ## 核心调度模块
│   ├── controler.cpython-37m-x86_64-linux-gnu.so           ## python3.7专用核心调度模块
│   └── rule.py                                             ## 裁切规则、padding规则、超长字符串截断规则及其常量设置
├── data                                               
│   ├── data.data_set_reader                          ##  数据从文件中读取的过程,并在其中配置不同域(field)的处理方式。
│   ├── data.field_reader                             ##  针对文本域、数值域等不同的数据进行处理。
│   ├── data.tokenizer                                ##  将文本字符串转换成token列表的过程。
│   └── ...           
├── inference                                          
├── metrics                                            ## 预置评估函数
├── models                                             ## 预置网络主干部分,包括前向网络、优化器和metrics。
├── modules                                            ## 子网络部分,一些公用的网络片段,如语义表示等
├── training                                           ## 训练主体部分,封装program、load、save等过程
│   ├── __init__.py
│   ├── custom_trainer.py                             ## 能够覆盖大部分训练和评估的通用流程,如果对自定义训练评估要求不高,可以直接继承该类
│   ├── mrc_trainer.py                                ## 针对阅读理解任务的训练流程   
│   └── trainer_config.py                             ## 训练流程相关参数
└── utils                                              ## 辅助工具类

tasks目录介绍

文心开发套件tasks目录为各任务入口,其结构及其说明如下所示:

.
├── __init__.py                           
├── text_classification                                        ## 文本分类任务
├── text_matching                                              ## 文本匹配任务
├── sequence_labeling                                          ## 序列标注任务
├── text_generation                                            ## 文本生成任务
├── entity_attribute_extraction                                ## 实体属性抽取任务
├── entity_attribute_extraction_many_to_many                   ## 多对多实体属性抽取任务
├── entity_relation_extraction                                 ## 实体关系抽取任务
├── entity_relation_extraction_many_to_many                    ## 多对多实体关系抽取任务
├── few_shot_text_classification                               ## 小样本文本分类任务
├── mrc                                                        ## 阅读理解
├── ernie_slim                                                 ## ERNIE Slim 蒸馏
└── model_files                                                ## 预训练模型相关文件,包括各模型的参数配置、个模型的词典等