原贴链接

你们中的一些人对我选择在NodeJS而不是Python上构建OmniChain进行了真正的嘲讽。好吧,我屈服了,就像一块果冻在压路机下一样,制作了一个外部Python模块,它将所有的Python内容安全地隐藏在一个单独的项目中,你可以安装它来增强核心应用。现在它还很简单,所以我需要一些想法,看看还有什么可以添加进去,而不是已经通过Ooba等工具轻松获得的东西。也许是通过GPTQ/AWQ的多模态模型。我会考虑的。

好的部分:

  • 它允许你在聊天视图中使用FasterWhisper进行语音识别

  • 你可以通过自定义模块和新的ExtCallPythonModule节点添加任何Python内容,无需额外设置

  • 作为奖励,我添加了对Microsoft Florence2的支持,使用节点可以快速下载、加载和使用这些模型(我需要做一些图像描述,然后我决定可以进行本地集成)

愚蠢的部分(为什么这花了这么长时间):

  • 像往常一样,我*无法*在原生Windows上让flash_attn工作。我想要一个干净的设置。我试过了。我又试了一次。我失败得比威尔·史密斯的婚姻还要惨。因为我需要它来支持FasterWhisper,所以如果你是一个喜欢喂养比尔·盖茨创造的那些不可名状的恐怖的Windows用户,这个模块只能在WSL上使用。

  • 在AMD GPU和macOS上测试——我两者都没有。这取决于你选择的任何神灵,或者GitHub上一些随机开发者的善意。

  • 我试图让设置变得简单

image

接下来我想谈的是:

我不是说我同意Eric Schmid的所有观点,但我确实同意一件事——我已经能感觉到纯粹的仇恨小行星正在向下坠落——Python是如何成为如此流行的语言,尤其是在AI/ML领域,这完全不可思议。

我的意思是,你们中有多少人曾经在没有其他人花费大量时间和精力编写设置脚本的情况下,手动设置一个与AI相关的Python项目,并且感到愉快?

即使它*确实*工作了,事情又能正常工作多少次呢?我承认多年来我一直对NPM有很多抱怨。伙计,我错了。真的错了。我花了大约9/10的时间在这个项目上等待依赖项重新下载以进行下一次测试。

*而我在这里几乎没有使用任何实质性的依赖项。*

只是FasterWhisper、ctranslate2、transformers、pytorch在FastAPI之上。但设置起来仍然是地狱。我不得不通过conda安装CUDA库,以避免强迫用户为了下载cudnn而创建一个愚蠢的Nvidia账户,或者因为与CUDA Toolkit相关的随机不匹配而出现魔法错误。我不得不承认,对于Windows用户来说,与其因为你们太懒而不设置WSL(从用户的角度我有点理解)而恨我,不如让这个东西根本不工作。我还不得不接受这样一个事实:没有任何方法可以确保任何随机的二进制文件都能在我无法测试的系统上工作。

人们究竟期望如何将基于Python的任何东西部署到一个合适的桌面应用程序中?这太疯狂了。这太荒谬了。这就像少了三根薯条的快乐餐。我确信很快就会有一大堆我无法在GitHub上修复的问题。

Python在这个时候真的值得吗,还是它只是在制造混乱?我应该加入一个抵制Python并将所有东西转移到带有Rust增强的NPM模块的TypeScript的运动吗?或者我应该因为浪费了太多时间而破产,去做一些愚蠢的SaaS应用。我的东西虽然不如别人那么令人印象深刻,但至少它是真实的,而且(大部分)能工作。*咳咳* 反思 *咳咳* *咳咳*

在下面的评论中留下大量的仇恨。

https://preview.redd.it/fgirz67mi0od1.jpg?width=480&format=pjpg&auto=webp&s=ff2b0a6b76c34c2b38b4fdccbd7588a648729410

讨论总结

本次讨论主要围绕Python在AI/ML领域的依赖管理问题展开,涉及Python的流行度、依赖管理的复杂性、Docker的使用以及对替代语言如Julia的探讨。讨论中,许多用户分享了他们在使用Python进行AI项目开发时遇到的困难,特别是依赖管理方面的挑战。一些用户提出了使用Docker来简化依赖管理的建议,而另一些用户则对Python的流行度表示质疑,认为Julia等其他语言可能更适合AI/ML领域。总体而言,讨论呈现出对Python依赖管理复杂性的不满和对替代方案的探索。

主要观点

  1. 👍 Python在AI/ML领域的流行度令人难以理解

    • 支持理由:许多用户认为Python的流行度与其依赖管理的复杂性不成正比。
    • 反对声音:一些用户认为Python在AI/ML领域的流行度有其历史和技术原因。
  2. 🔥 依赖管理是Python在AI/ML领域的主要痛点

    • 正方观点:许多用户分享了他们在设置和维护Python项目时遇到的依赖问题。
    • 反方观点:一些用户认为依赖问题可以通过使用Docker等工具来缓解。
  3. 💡 Docker是解决Python依赖问题的有效工具

    • 支持理由:Docker提供了透明的依赖管理,易于复制和部署,特别是在不同硬件平台上。
    • 反对声音:对于不熟悉Docker的用户,安装和使用Docker可能仍然是一个障碍。
  4. 💡 Julia作为替代语言的潜力

    • 支持理由:Julia在语法、性能、GPU支持、多线程等方面具有优势,且避免了Python的依赖问题。
    • 反对声音:Julia的流行度不高,可能需要更多时间来推广和接受。
  5. 💡 Python的生态系统存在低门槛和主流化的问题

    • 支持理由:Python生态系统的低门槛和主流化导致了依赖管理的复杂性。
    • 反对声音:主流化也带来了丰富的资源和社区支持。

金句与有趣评论

  1. “😂 I gotta say, this is one of the reasons I only use docker images to deploy my AI apps.. it makes handling python dependencies an absolute dream, I’ve never had a real issue.”

    • 亮点:强调了Docker在处理Python依赖问题上的优势。
  2. “🤔 Python has its rough edges, and the fast-moving ai ecosystem right now is leaning on those for sure, but I don’t think it’s going anywhere in the near future, especially while pytorch reigns supreme.”

    • 亮点:指出了Python在AI生态系统中的重要地位,尤其是在PyTorch主导的情况下。
  3. “👀 The language we should be using for AI/ML is Julia.”

    • 亮点:提出了Julia作为替代Python的建议,强调了Julia的优势。
  4. “😂 Its 2024, there are super smart LLMs as assistants and yet still nobody come up with a real solution for the python dependency hell that still exist until today”

    • 亮点:讽刺了尽管有先进的技术,Python依赖问题仍未得到解决。
  5. “🤔 I 100% agree with you. Python is a particular pain.”

    • 亮点:表达了用户对Python依赖管理问题的强烈不满。

情感分析

讨论的总体情感倾向较为负面,主要集中在对Python依赖管理复杂性的不满。许多用户分享了他们在使用Python进行AI项目开发时遇到的困难,特别是依赖管理方面的挑战。尽管有一些用户提出了使用Docker等工具来缓解问题的建议,但整体上对Python的依赖管理问题持批评态度。讨论中也有一些用户对Python的流行度表示质疑,认为Julia等其他语言可能更适合AI/ML领域。

趋势与预测

  • 新兴话题:Docker在AI/ML项目中的应用可能会成为未来讨论的热点,特别是在依赖管理方面。
  • 潜在影响:Python在AI/ML领域的地位可能会受到挑战,特别是随着Julia等替代语言的推广和接受。此外,依赖管理工具的改进和标准化可能会成为未来的重要趋势。

详细内容:

标题:Python 依赖困境引发的热议

在 Reddit 上,一则题为“(Almost) beaten by Python dependency hell”的帖子引发了广泛关注。该帖作者讲述了在 NodeJS 基础上为项目添加外部 Python 模块的经历,虽然带来了一些便利,如能在聊天视图中使用 FasterWhisper 进行语音处理等,但也遭遇了诸多难题。此帖获得了大量的点赞和众多评论。

帖子引发的主要讨论方向围绕着 Python 在 AI/ML 领域的流行与所带来的依赖问题。

讨论焦点与观点分析:

有人表示自己手动设置 AI 相关的 Python 项目时经历了艰难时刻, porting 一个 ML 训练笔记本到 Docker 图像的过程十分痛苦。

有人指出 Python 包装存在普遍的成长痛点,如不同渠道的 CUDA 库、ABI 兼容性等问题。

还有人认为 Python 在 AI 领域流行可能是因为 PyTorch 的优势,也有人提到其原始的 torch 从 Lua 转移到 Python 是因为 Python 的运算符重载功能。

有人认为尽管 Python 有其粗糙之处,但短期内不会被淘汰,特别是 PyTorch 占据主导地位时。但也有人觉得应该考虑使用其他语言,如 Julia 或 Rust。

一些用户提到使用 Docker 来处理 Python 依赖是个不错的选择,认为 Docker 可以轻松解决依赖问题,避免了重复下载和版本不匹配的困扰。

有人指出 Python 语言本身没问题,但生态系统存在软件脆弱、模块易更新损坏等问题。

总的来说,讨论中对于 Python 在 AI/ML 领域的价值存在争议,一方面认可其在某些方面的优势,另一方面也对其依赖管理问题感到困扰。但目前尚未达成明确的共识。