gpt4 book ai didi

python - 生产环境中的 NLTK?

转载 作者:太空狗 更新时间:2023-10-29 19:26:46 25 4
gpt4 key购买 nike

我在 python nltk 中开发了一些用于聚类、数据抽象等的算法。现在,问题是,在向 VC 展示之前,我要把它做大。 NLTK 有它自己的优势,比如快速开发等。但是当我一开始选择时,这对我来说很有意义。现在我已经足够成熟了,并且发现了它的一些局限性,比如缺乏可扩展性。对 Mahout 做了一些研究,但那也是为了集群/分类和搭配。 Open NLP 是一个选项,但我不确定我可以使用它多久。有什么适合大规模 nlp 的吗?

请注意 - 这个问题与我之前的问题无关 - How can I improve the performance of NLTK? alternatives? .我已经读过 NLTK on a production web application完全地。

最佳答案

NLTK 确实是一个很好的学习平台,但并非旨在为数百万客户提供可靠的服务。

您可以通过两种不同的方式解决可扩展性问题:

  • 第一种“大数据”方法:使您的算法适应 MapReduce 并在 MongoDB/Hadoop/Google MapReduce/.../li>
  • 第二种“自己动手”的方法:使用常见的托管解决方案或您自己的数据中心。

“大数据”方法

这意味着重新考虑您的算法。需要良好的数学背景和对算法的深刻理解。也许您甚至会替换算法,因为执行时间与工作量的相关性较小。

因此,就实现您的想法而言,这可能是最困难(甚至可能是不可能)的解决方案,具体取决于您的技能。对于部署和 future yield ,这是迄今为止最简单的解决方案。

“自己动手”的方法

对于可伸缩性,您可以有不同的含义:

  • 更大的训练集
  • 更多客户
  • 更多算法和应用
  • 增加训练集可能意味着重新训练或适应
  • ...

可扩展性有不同的数量级:您想扩展 10 倍、100 倍、1000 倍,...?

有不同的方法来克服可伸缩性问题:

  • 并行化:添加服务器的精确副本并进行负载平衡
  • 流水线:在不同服务器上进行的不同步骤中拆分处理
  • 更昂贵的硬件、更快的 CPU、RAM、磁盘、总线、ASIC……
  • 客户端处理
  • 缓存请求
  • 软件性能调优,解决 C/C++ 中的瓶颈
  • 使用更好的算法
  • 更智能地分离离线发生的事情(例如使用 cron 作业)和每个请求完成的事情。
  • ...

无论可伸缩性是什么类型,也无论您使用什么方法来克服它,请进行负载测试以查看您可以处理什么。由于您无法立即购买所有硬件,因此可以通过不同的方式对扩展的基础架构进行负载测试:

  • 每小时租用处理器、内存、磁盘空间……,刚好足以进行负载测试和退出。这样,您就无需购买设备。
  • 风险更大:在比生产设备更少、更便宜的设备上进行负载测试,并推断结果。也许你有一个关于你的算法如何扩展的理论模型,但要注意副作用。布丁的证明在于吃。

接近 VC(就可扩展性而言)

  • 创建一个可以清楚地 self 解释您的想法的原型(prototype)(不一定可扩展)
  • 向自己证明在未来的某个时刻一切都会好起来的,代价是什么(最小/预期/最大一次性/持续成本)
  • 从私有(private)测试版开始,这样可扩展性从一开始就不是问题。没有结束测试版的最后期限。估计是可以的,但没有截止日期。不要在这一点上妥协!

祝你好运!

关于python - 生产环境中的 NLTK?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15788084/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com