README.md

Rec SDK 示例统一说明文档

功能说明

Rec SDK(mxrec)提供了一系列推荐系统模型训练的示例代码,涵盖多种推荐算法和应用场景。这些示例旨在帮助开发者快速上手并利用Rec SDK进行模型训练。

支持的模型

  • DCNv2: Deep & Cross Network v2,用于处理高维稀疏特征并自动学习特征交互。
  • WideDeep: 结合了宽模型的记忆能力和深度模型的泛化能力。
  • DLRM: 专为点击率预测设计的深度学习推荐模型。
  • MMoE: Multi-gate Mixture-of-Experts 模型,适用于多任务学习场景。
  • xDeepFM: 扩展的因子分解机模型,能够自动学习特征间的高阶交互。
  • demo: 提供了简单的示例模型,适合初学者了解如何使用Rec SDK。
  • dlrm: 包含Criteo TB Dataset数据集的处理和训练示例。
  • mmoe: 多任务学习模型示例。
  • xDeepFM: 特征交互模型示例。
  • rec_model_zoo: 包含行为和多任务模型、特征交互模型等。注:该目录下的模型未适配RecSDK功能,基于TFA和CANN基础能力开发。
  • rec_infer: 推理服务示例。

数据集支持

  • Criteo TB Dataset: 用于广告点击率预测的大规模数据集。
  • Synthetic Data: 生成的数据集,适合测试和快速体验Rec SDK的功能。

安全说明

在使用Rec SDK的过程中,请注意以下安全事项:

网络安全风险

  • 模型训练过程中,可能会生成临时文件,这些文件可能会保存敏感信息,如训练数据集。请务必对临时文件进行权限控制,并定期清理。
  • rec_infer网络监听地址和网络端口仅为参考配置,请根据实际需求进行修改,避免暴露在公网中。

文件读取安全

  • 在执行文件操作前检查文件是否存在及是否可读。
  • 对于从网络或其他不可信来源获取的数据文件,在加载前应进行合法性校验。
  • 使用pickle模块进行加载时可能存在恶意构造文件的风险,在反序列化时请确保文件是可信的。

参数合法性检查

  • 所有输入参数必须进行有效性验证,包括但不限于类型、范围和格式。
  • 特别是在处理来自外部的配置值时,应确保它们不会超过物理限制(如embedding维度应为4的倍数以避免硬件兼容性问题)。

异常捕获规范

  • 不要捕获通用异常(Exception),而应该明确捕获特定异常类型(如ValueError或IndexError)。
  • 文件操作需增加权限检查和异常处理逻辑。

免责声明

本软件及文档按“现状”提供,华为不对软件的适用性、无错误或满足用户需求做出任何保证。使用本软件可能涉及一定的风险,包括但不限于性能下降、数据丢失或损坏等问题。因此,在生产环境中使用前,建议进行全面测试,并自行评估潜在风险。

技术限制

  • Rec SDK仅支持昇腾平台(Atlas 200T A2 Box16、Atlas 800T A2、Atlas 900 A3 SuperPoD)。
  • 依赖特定版本的CANN、TensorFlowAdapter、驱动和固件。
  • 源码编译需使用指定版本的Python、GCC、CMake等工具。

已知问题与风险

  • 开发分支可能包含未完成或不稳定的功能。
  • C++测试用例中部分依赖emock,在aarm64环境下可能失败。
  • Lcov覆盖率统计工具若未安装,会导致覆盖率报告生成失败。

性能与安全要求

  • 支持大规模稀疏表训练,适用于高性能计算场景。
  • 要求正确设置Ascend环境变量,否则可能导致运行失败。
  • 不建议在生产环境中使用开发分支代码。

许可证协议

Rec SDK所有样例使用Apache License 2.0协议授权。在使用本软件时,请确保您遵守了该协议的相关条款。

请仔细阅读上述内容,并根据实际需要采取适当的安全措施和风险控制策略。如果您有任何疑问或发现潜在的问题,请联系技术支持团队获取进一步的帮助。