某些环境:
核心产品堆栈使用Java,并且由工程师专门维护。数据科学家负责提出算法改进/补充。
数据科学家不是用Java编写代码,而是使用Python进行工作。他们与工程团队合作,将想法表达为在核心Java代码库中实现的Python代码。
问题:
审核新想法取决于工程团队编写新的Java代码。这减慢了整个技术团队的迭代速度。
哪种架构可以缓解此问题?
答案 0 :(得分:0)
我们在某些ML项目中遇到了类似的设置:产品工程师拥有一个核心Java堆栈,该堆栈为存储在NoSQL(MongoDB)中的数据提供了一系列RESTful API,以及数据工程师/数据科学家用Python编写ML脚本以进行培训和功能设计。以下是对我们有帮助的一些内容:
versions
和/或tags
和/或hashes
使用此方法将其还原/跳转到任何已保存的模型状态或纪元(例如,对于神经网络)。from quilt.data.username import my_data_package
exec()
类中的Runtime
方法使用命令行Python脚本(由Python数据工程师创作的批处理文件)来批量处理新数据/新数据。命令行参数(使用正确的训练有素的模型和数据输入)来加载腌制的模型以生成预测。 See this SO answer。我认为这本身不是规范的解决方案或最佳实践,但它帮助我们平衡了Java工程团队和Python DE / DS的需求。
被子的一些好处:
希望对您有所帮助!祝你好运,并想听听它的进展。