Zac*_*ner 1 javascript reactjs tensorflow tensorflow.js
我正在开发一个基于 React 的 Web 应用程序,该应用程序使用 Tensorflow.js 在浏览器的客户端上实时运行 AI 模型。我从头开始训练这个 AI 模型,我想保护它不被拦截并用于其他项目。是否有任何保护措施可以做到这一点(混淆、DRM 等)?
从业务角度来看,我只希望该模型适用于我的网络应用程序,而不是其他任何地方。
我在这方面找到的讨论 ( 1 2 3 ) 更适合本机应用程序,而不是 Web 应用程序。
这是一个使用 Tensorflow.js 的开源 Web 应用示例。这些权重是我希望在我的应用程序中保护的示例。
客户端代码混淆永远不会完全阻止它。改用服务器。
如果您的客户端应用程序包含模型,那么用户将能够以某种方式提取它。你可以让用户更难,但它永远是可能的。一些使它更难的技术是:
model.predict函数处设置断点并从那里调试代码会相当容易。通过混淆库及其 API,这将变得更加困难。即使您的代码被完全混淆并受到良好保护,您的客户端代码仍然在某处包含您的模型。使用这些方法总是可以以某种方式提取您的模型。
为了使您的模型无法获得,您需要一种不同的方法。只把你的“愚蠢的逻辑”放在客户端上。排除要保护的代码部分。相反,您在服务器上提供一个 API 来执行代码的“受保护部分”。
这样,您无需model.predict在客户端运行,而是向后端发出 AJAX 请求(带有参数),然后返回结果。这样用户只能看到输入和输出,而不能提取模型本身。
请记住,这意味着更多的工作,因为您不仅需要为客户端应用程序编写代码,还需要为服务器端应用程序编写代码,包括 API。根据您的应用程序的外观(例如:它有登录名吗?),这可能需要更多的代码。
| 归档时间: |
|
| 查看次数: |
1047 次 |
| 最近记录: |