因此,我正在考虑编写一些小软件,用于在集群或任意抽象执行器上运行/执行 ML 实验,然后保存它们以便我可以有效地实时查看它们。执行器软件将有权写入数据库并将实时推送指标。现在,我没有过多地使用数据库,因此我不确定什么是正确的方法。以下是系统应存储的内容的描述:
每个实验将由一段代码/代码存档组成,以便可以在远程机器上执行。现在我们假设允许依赖项等安装在那里。该代码将接受命令行参数。该实验还将包含一个定义命令行参数的 YAML 方案。在代码中本身将指定将登录的内容(例如,我将提供一个用于注册频道的语言库)。现在在记录方面,您可以记录数值、数组、文本等相当多的类型。每个通道将被允许一个单一的规范(例如 2 列,第一个 int 迭代,第二个 float 错误)。该代码还将在实验结束时提供参数的特殊副本。
提交实验时,需要提供其唯一的组名+执行参数。这将启动实验并记录所有内容。
对我来说,使用平面文件系统最容易实现这一点。每个项目都有一个唯一的名称。每个新实验都会在项目中获得一个唯一的 ID 和文件夹。我可以在那里存储代码。每个通道都有一个文件,为简单起见,它可以是一个 csv 分隔符,其中包含一个特殊的模式文件,描述了存储在那里的值的类型,以便我可以在那里加载它们。最终参数也可以复制到文件夹中。
但是,由于我可以通过多种方式执行此操作,而且每个实验可能需要一个单独的“表”,我不知道这在任何数据库系统中是否可行?此外,也许我正在监督一些非常明显的事情,或者可能不是,如果您对此有任何经验,任何建议/建议都非常受欢迎。主要目标是最终能够将其提供给 Web 界面。也许 noSQL 可以适应这种情况,也许不能(我不知道它们是如何工作的)?