您的浏览器禁用了JavaScript(一种计算机语言,用以实现您与网页的交互),请解除该禁用,或者联系我们。[-]:高效与安全并重:AI软件供应链管理策略与最佳实践 - 发现报告

高效与安全并重:AI软件供应链管理策略与最佳实践

信息技术2024-09-18李威-光***
AI智能总结
查看更多
高效与安全并重:AI软件供应链管理策略与最佳实践

李威JFrog高级解决方案架构师 李威 公司职位JFrog高级解决方案架构师 DevOps教练。《软件研发效能权威指南》联合作者。曾就职于京东、烽火等互联网企业及传统企业,十余年一线开发及运维经验,带领团队从零到一实践DevOps转型。 什 么 是A I软 件 供 应 链 目录 A I软 件 供 应 链 引 入 与 管 理 的 实 践 大 模 型 管 理 与 治 理 的 最 佳 实 践 安 全 与 开 源 许 可 证 合 规 管 理 方 案 什么是AI软件供应链,AI软件供应链管理有什么痛点 AI/ML与传统软件研发的异同 角色不同,目标一致,并行“构建”过程与“结果”,带来版本管理的复杂性和ML效率问题 AI/ML对软件供应链的需求 高维护成本 权限管理缺失 难于共享 Models: Python依赖: •HuggingFace代理•私有Model PypiConda 并发性能 DataSets:•HuggingFace代理•私有DataSet Docker镜像: 无法高可用 •Docker•Helmchart 仓库类型缺失 安全扫描缺失 无多中心同步能力 为什么需要PrivateHuggingface Hub “类似于PrivateGithub、PrivateDockerhub,也需要PrivateHuggingfaceHub” https://huggingface.co/blog/introducing-private-hub 通过与ML/DataSci团队的数千次对话,有了对构建ML面临的最常见问题和挑战的独特视角:重复的工作、不良的反馈循环、跨团队协作的高摩擦、非标准流程和工具以及生产模型优化困难。我们不再提供Private Hub本地部署。 如今AI/ML模型版本管理的问题 •使用S3存储桶 这会让数据科学家自行命名每个上传,这通常会导致命名不一致、File_Name_Final_Final_Final难题,甚至丢失文件。 •使用Git 数据科学家和工程师只需在Main分支上堆叠Commit,利益相关者可以看到以前的提交,但没有简单的方法可以知道他们每次提交会得到什么,因为名称只是一组随机字符。 AI软件供应链引入与管理的最佳实践 软件供应链单一可信源 •软件供应链仓库 •操作系统软件供应链(yum、apt)•开发语言依赖组件供应链(开发语言私服)•容器供应链(镜像及helmchart)•AI供应链(Model、pypi、conda、Docker)•传统制品(tar、zip) •企业单一可信制品库是软件供应链仓库,也是企业软件资产仓库。 •低维护成本、高可用、高性能的仓库 •没有统一管理,就无法治理。 JFrog|Qwak一体化ML管理平台 Build, Train, Secure, Serve, and MonitorML Models andGenAIin a Unified Experience AI软件供应链 AI供应链引入与管理方案 Artifactory “多类型”和“大模型”使用场景 1.研发依赖管理(多地同步) 多种语言包的管理能力,Maven、Docker、Python、Conda、Huggingface模型上传下载 2.大文件管理(本地上传下载) 对比FTP具有去重存储和上传,降低存储和传输成本,高可用,灵活权限管理和API集成单机制品库上传速度上限为1000MB/s单机制品库下载速度为880MB/s(客户端数量不足,理论能打满带宽)横向扩展制品库节点,可以倍数提高上传和下载速度 3. E+制品分发(边缘就近下载) 通过Release Bundle分片分发,GPG签名保护下载权限分发制品传输速度为100MB/s(两地互联网带宽限制) 对比FTP/S3-并发下载可打满80-100%带宽 多研发中心场景 大模型版本管理与治理的最佳实践 软件供应链可信管理:元数据 •用于记录软件生命周期信息,解决制品黑盒问题•打破部门墙,在上下游传递制品信息•支持元数据正向、反向查询•可作用于制品筛选、制品清理、制品按需分发等 交付物 依赖包 •代码分支、tag•需求/task信息•开发团队/人员信息•构建流水线信息•代码扫描结果•测试结果•供应链扫描结果•第三方安全、合规检测信息•文档信息•审批记录•发布信息•归档信息 •准入申请、审批信息•生命周期信息 AIModel •Model原始信息•训练数据集信息 嵌入式软件包 •匹配设备型号•目标客户信息•分发同步信息 JFrog AI/ML模型版本管理方式 1.更好的存储和性能,替换FTP/S32.模型管理版本化3.元数据可视化4.存储空间可清理5.易于分享模型6.晋级模型,而无额外存储成本7.同步模型到生产环境,而无额外网络成本8.模型安全扫描 模型版本管理 DEMO 与MLFlow集成 删除实验后,一旦MLflow的垃圾收集器运行,它也会默认从其相应的JFrogArtifactory存储库中删除。也可以配置永久保留。此功能可有效管理您的存储资源。 JFrog AISecOps与Qwak集成 例如JFrog与Qwak集成的完整AISecOps解决方案,可实现团队之间的无缝交叉协作。 1.将所有模型、制品集中在唯一可信源中2.减少外部服务中断或消除公共存储库中模型或包版本的潜在风险3.管理和限制对外部私有或公共存储库的访问,确保用户只能使用经过批准的源4.为利益相关者提供有关公司内部使用的内容的全面透明度 JFrog AISecOps与Qwak集成 例如JFrog与Qwak集成的完整AISecOps解决方案,可实现团队之间的无缝交叉协作。 1.将所有模型、制品集中在唯一可信源中2.减少外部服务中断或消除公共存储库中模型或包版本的潜在风险3.管理和限制对外部私有或公共存储库的访问,确保用户只能使用经过批准的源4.为利益相关者提供有关公司内部使用的内容的全面透明度 开源大模型安全扫描与开源许可证合规管理方案 利用ChatGPT的供应链幻觉攻击 供应链防火墙 ●Curation隔离仓库○隔离阻断高危漏洞开源组件○漏洞包无法进入内网 ●内网JFrog仓库○连接到隔离区的JFrogCuration隔离仓库○持续漏洞扫描 JFrogCuration能帮开发者节省多少时间? 加载ML模型如何导致代码执行? 某些模型使用“pickle”格式,这是序列化Python对象的常见格式。但是,pickle文件还可以包含加载文件时执行的任意代码。 使用Huggingface的数据科学家成为攻击目标 JFrog安全研究团队开发了扫描环境,每天多次严格检查上传到Huggingface的每个新模型 https://jfrog.com/blog/data-scientists-targeted-by-malicious-hugging-face-ml-models-with-silent-backdoor/ JFrog对HuggingFace的安全监控 PyTorch模型的流行率最高,紧随其后的是TensorflowKeras模型。需要强调的是,当我们提到“恶意模型”时,我们特指那些包含真实、有害有效负载的模型。 PyTorch模型(大幅)和TensorflowKeras模型(H5或SavedModel格式)构成执行恶意代码的最高潜在风险,因为它们是流行的模型类型,具有已发布的已知代码执行技术。 HuggingFace安全措施 •HuggingFace实施了多种安全措施,例如恶意软件扫描、pickle扫描和秘密扫描。 •HuggingFace开发了一种用于安全存储模型数据的新格式,称为safetensors。 •虽然Hugging Face对pickle模型进行扫描,但它不会完全阻止或限制它们的下载。 •不仅基于pickle的模型容易执行恶意代码。例如,Hugging Face上第二流行的模型类型TensorflowKeras模型也可以通过其Lambda层执行代码。 JFrog在本地扫描模型风险 JFrogXray可以在本地环境完成模型风险的扫描,并给出修复建议 在与Qwak集成中也可以将模型的安全扫描信息同步展示 JFrogMLSecOps解决方案 高效运维社区DevOps时代荣誉出品 感谢大家观看