Deep Procedural Intelligence使用的Python实用工具
项目描述
DPU Utilities 

这包含了一系列用于DPU团队项目中的实用工具。
Python
存储在python
子目录中,作为dpu-utils
包发布。
安装
pip install dpu-utils
或者通过社区维护的Conda配方
conda install -c conda-forge dpu-utils
概述
以下您可以找到包括的实用工具概述。详细文档在每个类的docstring中提供。
通用实用工具 dpu_utils.utils
ChunkWriter
提供了一个方便的API,用于分多部分(块)写入输出。RichPath
一个API,用于在代码中抽象本地和Azure Blob路径。*Iterator
可以并行化和洗牌迭代器的包装器。{load,save}_json[l]_gz
便利 API,用于加载和写入.json[l].gz
文件。git_tag_run
对当前工作目录的 git 代码状态进行标记。run_and_debug
当发生异常时,启动调试会话。通常是对__main__
的包装。
通用机器学习工具 dpu_utils.mlutils
Vocabulary
将元素映射到唯一的整数 ID,并反向映射。常用于处理离散数据的机器学习模型(例如 NLP 中的单词)。包含将标记列表转换为整数 ID 的“张量化”形式的转换方法。BpeVocabulary
用于机器学习模型的词汇表,采用 BPE(通过sentencepiece
)。CharTensorizer
将字符序列转换为张量,通常用于输入为字符列表的机器学习模型。
代码相关工具 dpu_utils.codeutils
split_identifier_into_parts()
将标识符在 CamelCase 和 snake_case 上分割成子标记。Lattice
、CSharpLattice
在 Python 中表示格和格上的有用操作。get_language_keywords()
一个 API,用于检索许多编程语言的标记令牌。language_candidates_from_suffix()
一个函数,用于根据文件后缀检索候选语言。deduplication.DuplicateDetector
API 用于检测代码库中的(近似)重复代码。有关命令行工具的更多信息,请参阅此处。treesitter.parser_for
通过语言名称获取 Tree-sitter 解析器。
TensorFlow 1.x 工具 dpu_utils.tfutils
get_activation
通过名称检索激活函数。GradRatioLoggingOptimizer
优化器的包装,记录梯度范数与参数范数的比率。TFVariableSaver
将 TF 变量保存到可 pickled 的对象中。
根据 TensorFlow 的 unsorted_segment_sum
操作进行未排序的段操作
TensorFlow 2.x 工具 dpu_utils.tf2utils
get_activation_function_by_name
通过名称检索激活函数。gelu
GeLU 激活函数。MLP
MLP 层。
根据 TensorFlow 的 unsorted_segment_sum
操作进行未排序的段操作
TensorFlow 模型 dpu_utils.tfmodels
SparseGGNN
稀疏 GGNN 实现。AsyncGGNN
异步 GGNN 实现。
这些模型尚未在 TF 2.0 中测试。
PyTorch 工具 dpu_utils.ptutils
BaseComponent
一个包装抽象类,围绕nn.Module
,处理大多数神经网络组件的基本元素。ComponentTrainer
为BaseComponent
提供训练循环。
命令行工具
近似重复代码检测
您可以使用 deduplicationcli
命令通过调用来检测预处理源代码中的重复内容
deduplicationcli DATA_PATH OUT_JSON
其中 DATA_PATH
是包含分词后的 .jsonl.gz
文件的文件,而 OUT_JSON
是目标输出文件。更多选项请查看 --help
。
此版本的精确(但通常较慢)版本可以在 这里 找到,同时还有将 Java、C#、Python 和 JavaScript 分词成相关格式的代码。
测试
运行单元测试
python setup.py test
生成代码覆盖率报告
# pip install coverage
coverage run --source dpu_utils/ setup.py test && \
coverage html
生成的 HTML 文件将在 htmlcov/index.html
中。
.NET
存储在 dotnet
子目录中。
通用工具
Microsoft.Research.DPU.Utils.RichPath
:在您的代码中使用路径和 Azure 路径的一种方便方法。
代码相关工具
Microsoft.Research.DPU.CSharpSourceGraphExtraction
:从 C# 项目中提取程序图的框架。
贡献
本项目欢迎贡献和建议。大多数贡献需要您同意贡献者许可协议(CLA),声明您有权并且确实授予我们使用您的贡献的权利。有关详细信息,请访问 https://cla.microsoft.com。
当您提交拉取请求时,CLA-bot 将自动确定您是否需要提供 CLA,并相应地装饰 PR(例如,标签、注释)。只需遵循机器人提供的说明即可。您只需在所有使用我们 CLA 的仓库中做一次。
本项目已采用 Microsoft 开源行为准则。有关更多信息,请参阅 行为准则常见问题解答 或通过 opencode@microsoft.com 联系我们,提出任何额外的问题或评论。
项目详情
下载文件
下载适合您平台的文件。如果您不确定要选择哪个,请了解更多关于 安装包 的信息。