首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >apache beam将spacy模型作为数据流中的侧输入进行广播

apache beam将spacy模型作为数据流中的侧输入进行广播
EN

Stack Overflow用户
提问于 2020-09-01 09:55:06
回答 2查看 280关注 0票数 0

我正在使用python sdk并尝试广播一个spacy模型(~50MB)。作业将在数据流上运行。我是beam的新手,根据我的理解:我们不能在map函数中加载大对象,并且我们不能在提交作业之前加载它们,因为作业大小是有上限的。下面是在worker上“惰性加载”大对象的解决方法。

代码语言:javascript
运行
复制
        ner_model = (
            pipeline
            | "ner_model" >> beam.Create([None])
            | beam.Map(lambda x: spacy.load("en_core_web_md"))
        )

        (
            pipeline
            | bq_input_op
            | beam.Map(use_model_to_extract_person, beam.pvalue.AsSingleton(ner_model))
            | bq_output_op
        )

但是我得到了Workflow failed. Causes: The Dataflow job appears to be stuck because no worker activity has been seen in the last 1h. Please check the worker logs in Stackdriver Logging.,但是根本没有生成堆栈驱动程序日志。我在正确的轨道上吗?

编辑:我正在使用apache-beam 2.23.0

EN

回答 2

Stack Overflow用户

发布于 2020-09-01 16:22:25

问题可能是您的worker没有足够的内存。也许你可以用一个内存更大的worker来解决这个问题。目前,默认工作进程是n1-standard-1,只有3.75 GB内存。

相关的PipelineOption为:

workerMachineType字符串

Dataflow在启动工作VM时使用的计算引擎计算机类型。您可以使用任何可用的计算引擎计算机类型系列以及自定义计算机类型。

有关详细信息,请参阅here

票数 0
EN

Stack Overflow用户

发布于 2020-09-02 06:04:27

如果您有一个大型的静态模型要加载,您可以尝试使用DoFn并在DoFn.setUp中加载它,而不是将其作为辅助输入传递。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63680287

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档