首页 > 解决方案 > 交互 Python 笔记本/组件的概念(例如,用于多智能体强化学习) - 类似 EJB-bean 的组件?

问题描述

我的目标是构建使用强化学习组件(用于表示 RL 值函数的 Pytorch 或 Tensorflow Python 神经网络,用于计算观察-动作映射(使用此值函数))的新认知架构。

我的目的是从多个交互的 RL 组件构建这种架构,这些组件具有一些特定的专业化(状态空间、动作空间、策略),例如,一个 RL 组件可用于从视觉观察中提取几何表示,另一个 RL 组件可用于将声音输入翻译成自然语言语句,第三个 RL 组件可用于将自然语言语句解析为逻辑语句(使用自然语言处理的形式语义)和另一个组件,用于融合该信息和翻译成高级技能/动作和其他组件 - 将高级点燃的复杂动作编译成运动原语。

这种架构需要并行和交互的 Python 组件。我的问题是——这种设计的概念架构和技术是什么?这些 Python 组件/笔记本之间的通信模式和技术是什么?

如果我确实在 Java EJB 或 Spring 中实现了这一点,那么我可以将每个 RL-Unit 放入单独的 EJB 或 Spring bean 中,EJB 容器或 Spring 容器将成为这些 bean 的生存空间以及在启动(或者也可以由侦听器/发布者实现)。

我是 Pyhon 的新手,我不知道如何在 Python 中实现它。我应该考虑 Django 服务器/框架吗?在我的理解中——Django 用于 CRUD 数据库访问和 API 编程,但仍然——也许我应该将 Python 笔记本/函数包装在 Django 组件中,通过 HTTP API 公开这些 Django 组件,然后使用通常的 HTTP(外部介质)通信进行通信组件之间?

我真的很困惑,想知道这种分布式/组件式 Python 的一些常见概念或模式。

我的理解是——这不是关于 Python 并行化(例如使用 MPI)的问题。这是关于组件类型的架构。如果某些组件增长(例如一些非常大的神经网络),那么我可以使其单独并行。

标签: pythonjupyter-notebookarchitecturepytorchcomponents

解决方案


推荐阅读