返回首页
最新
大家好!我们是Vaibhav和Marcello,Plexe的创始人(<a href="https://www.plexe.ai">https://www.plexe.ai</a>)。我们从自然语言描述中创建可用于生产的机器学习模型。只需告诉Plexe您想解决的机器学习问题,指向您的数据,它就会处理从特征工程到部署的整个流程。
<p>这里有一个演示视频:<a href="https://www.youtube.com/watch?v=TbOfx6UPuX4" rel="nofollow">https://www.youtube.com/watch?v=TbOfx6UPuX4</a>。</p>
机器学习团队在通用的繁重工作上浪费了太多时间。每个项目遵循相同的模式:20%用于理解目标,60%用于处理数据和工程特征,20%用于模型实验。大部分过程是公式化的,但却消耗了数月的工程时间。仅仅使用大型语言模型(LLMs)并不是解决方案,因为这只是将工程时间转化为计算成本,并且准确性更差。Plexe自动化了这80%的重复工作,让您的团队能够更快地专注于真正有价值的事情。
<p>您可以用简单的英语描述您的问题(例如“交易欺诈检测模型”或“搜索的产品嵌入模型”),连接您的数据(Postgres、Snowflake、S3、直接上传等),然后Plexe会:
- 自动分析数据并进行特征工程
- 在多种架构上运行实验(从逻辑回归到神经网络)
- 生成全面的评估报告,包括错误分析、鲁棒性测试和优先推荐,以提供可操作的指导
- 部署最佳模型并进行监控和自动重训练</p>
五个月前,我们为我们的开源库做了一个Show HN(<a href="https://news.ycombinator.com/item?id=43906346">https://news.ycombinator.com/item?id=43906346</a>)。自那时以来,我们推出了商业平台,提供交互式优化、生产级模型评估、重训练管道、数据连接器、分析仪表板,以及在线和批量推理的部署。
<p>我们使用多代理架构,专门的代理处理不同的管道阶段。每个代理专注于其领域:数据分析、特征工程、模型选择、部署等。该平台跟踪所有实验并生成可导出的Python代码。</p>
我们的开源核心(<a href="https://github.com/plexe-ai/plexe" rel="nofollow">https://github.com/plexe-ai/plexe</a>,Apache 2.0)仍然可以免费用于本地开发。对于付费产品,我们的定价基于使用,最低充值为10美元。企业可以自托管整个平台。您可以在<a href="https://console.plexe.ai">https://console.plexe.ai</a>上注册。使用优惠码`LAUNCHDAY20`可以获得20美元以试用该平台。
<p>我们期待听到您对这个问题的看法以及对平台的反馈!</p>
嗨,HN!我是Vince。我构建了Nallely,这是一个模块化的反应式Python框架,用于通过将信号处理模块连接在一起来创建自定义MIDI乐器,就像一个控制系统的模块化合成器。Nallely专注于实时、线程隔离的反应式行为,让你可以实验新兴的行为。
<p>演示视频:<a href="https://www.youtube.com/watch?v=rbMnKAdqAVI" rel="nofollow">https://www.youtube.com/watch?v=rbMnKAdqAVI</a>,展示了从零开始构建一个补丁,并在最后进行热调试。</p>
<p>主要特点:
* 连接反应式模块(神经元)的可视化补丁界面,
* 通过Python API、WebSocket和/或代码生成进行扩展,
* 集成任何输入源(MIDI、网络摄像头等)以控制合成器。</p>
<p># 是的,但为什么?
现有的软件/库虽然在MIDI操作方面功能强大,但不利于实时实验。它们是低级的,难以动态重连,且通常对于嵌入式或无头设置来说负担较重。我希望有一个系统能够动态演变,模块可以实时补丁、热插拔和调试。</p>
<p># 架构
该系统围绕一个没有共享数据的反应式线程模型构建:每个神经元都在自己的线程中运行,并通过通道发送消息进行通信。不再有CC……在神经元级别,一切都是信号(一个简单的整数/浮点值随时间变化)。没有全局时钟,每个神经元都在自己的时间上工作。由于每个神经元都是反应式的,它们大部分时间处于休眠状态。该系统深受“系统如生命体”哲学和Smalltalk的启发,将每个线程视为一个小的生命实体,而不仅仅是一个处理单元。以下是如何编写一个简单的采样保持模块:</p>
```python
class SampleHold(VirtualDevice):
input_cv = VirtualParameter(name="input", range=(0, 127))
trigger_cv = VirtualParameter(name="trigger", range=(0, 1), conversion_policy=">0")
@on(trigger_cv, edge="rising")
def hold_value(self, value, ctx):
return self.input
```
<p>控制层使用一个小型WebSocket协议,反应式的Web UI利用它来控制和检查会话。一个WebSocket总线神经元允许外部应用程序自动注册,以发送/接收信号:网络中的另一个神经元可以提供从任何源捕获的信号。它们对于在不同机器上分配计算负载非常有用。</p>
<p># 到目前为止我学到了什么
在MIDI/音乐上下文中,简单的线程模型可以非常强大:
* 你可以停止/恢复一个线程,毫无缝隙地停止处理链的一部分;
* 溢出的神经元可以减轻压力,而不会影响整个会话;
* 如果一个线程崩溃,它会被暂停,以便你能够调试该实例,并恢复它;
* 简单的WebSocket具有可接受的吞吐量。</p>
<p>我原本以为一个完全基于Python线程的系统会非常低效,但结果出乎意料地合理。根据经验,我发现每个线程的CPU使用率约为1-2%。一个20线程的经典会话(约45个补丁)在CPython 3.13 GIL下大约使用21%的CPU和45MB的内存。CPython 3.14无GIL显示出类似的CPU使用率,但内存约为65MB。反馈循环会提高使用率(约38%)。有趣的是,在CPython 3.13中,负载分布在多个核心上,我想线程足够休眠,能够频繁释放GIL。</p>
<p># 尝试一下!
你可以在最新的GitHub Actions构建的工件中获取预编译的PyInstaller二进制文件。文档链接在自述文件中,深入文章可以在这里找到:<a href="https://dr-schlange.github.io/nallely-midi/posts" rel="nofollow">https://dr-schlange.github.io/nallely-midi/posts</a>。</p>
<p># 我希望得到反馈
* 有什么可以改进的地方,以便让人更容易上手?
* 是否存在盲点或设计选择,可能在长期内造成问题?
* 尽管它是以MIDI为导向,但系统实际上是信号无关的,有什么非音频使用案例的想法吗?(例如视觉等)</p>
我很欣赏关于“谁在招聘 / 谁想被招聘”的帖子。我想知道我们是否可以稍微改变一下这个模式,讨论一下人们是如何找到他们现在的工作,或者那些在他们职业生涯中有意义和影响力的工作的。
定位:你是如何找到这份工作的?是这份工作找到你的?
面试:你做过什么让你脱颖而出的事情吗?有没有一些可能不太直观的不同策略?
生存:每份工作都有其缺陷,你是如何在面对让之前的工作变得困难 / 不愉快 / 无法忍受的问题时,维持自己的收入能力的?
我目前失业,早些时候辞去了在美国某州工作的职位,因为他们没有将软件开发视为一项重要工作。当你无法进行任何测试,得不到基础设施或项目管理的支持,所有事情都必须自己在一个封闭的环境中完成时,完成工作是非常困难的。还得在一个储藏室里的服务器上运行应用程序。
这是我人生中第一次“选择自己”,辞去了对我的心理健康产生非常负面影响的工作。找到一种方法重新回到职场很困难,因为我需要面对对敌对和有毒工作环境的恐惧。
希望能得到一些想法或方向,给我一些新的尝试,而不是一遍又一遍地做那些失败的事情。