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协议授权。在使用本软件时,请确保您遵守了该协议的相关条款。
请仔细阅读上述内容,并根据实际需要采取适当的安全措施和风险控制策略。如果您有任何疑问或发现潜在的问题,请联系技术支持团队获取进一步的帮助。