| |
| |
| <!DOCTYPE html> |
| <!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]--> |
| <!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]--> |
| <head> |
| <meta charset="utf-8"> |
| |
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> |
| |
| <title>apache_beam.ml.inference.base module — Apache Beam 2.52.0 documentation</title> |
| |
| |
| |
| |
| |
| |
| |
| |
| <script type="text/javascript" src="_static/js/modernizr.min.js"></script> |
| |
| |
| <script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script> |
| <script type="text/javascript" src="_static/jquery.js"></script> |
| <script type="text/javascript" src="_static/underscore.js"></script> |
| <script type="text/javascript" src="_static/doctools.js"></script> |
| <script type="text/javascript" src="_static/language_data.js"></script> |
| <script async="async" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/latest.js?config=TeX-AMS-MML_HTMLorMML"></script> |
| |
| <script type="text/javascript" src="_static/js/theme.js"></script> |
| |
| |
| |
| |
| <link rel="stylesheet" href="_static/css/theme.css" type="text/css" /> |
| <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> |
| <link rel="index" title="Index" href="genindex.html" /> |
| <link rel="search" title="Search" href="search.html" /> |
| <link rel="next" title="apache_beam.ml.inference.huggingface_inference module" href="apache_beam.ml.inference.huggingface_inference.html" /> |
| <link rel="prev" title="apache_beam.ml.inference package" href="apache_beam.ml.inference.html" /> |
| </head> |
| |
| <body class="wy-body-for-nav"> |
| |
| |
| <div class="wy-grid-for-nav"> |
| |
| <nav data-toggle="wy-nav-shift" class="wy-nav-side"> |
| <div class="wy-side-scroll"> |
| <div class="wy-side-nav-search" > |
| |
| |
| |
| <a href="index.html" class="icon icon-home"> Apache Beam |
| |
| |
| |
| </a> |
| |
| |
| |
| |
| <div class="version"> |
| 2.52.0 |
| </div> |
| |
| |
| |
| |
| <div role="search"> |
| <form id="rtd-search-form" class="wy-form" action="search.html" method="get"> |
| <input type="text" name="q" placeholder="Search docs" /> |
| <input type="hidden" name="check_keywords" value="yes" /> |
| <input type="hidden" name="area" value="default" /> |
| </form> |
| </div> |
| |
| |
| </div> |
| |
| <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation"> |
| |
| |
| |
| |
| |
| |
| <ul class="current"> |
| <li class="toctree-l1"><a class="reference internal" href="apache_beam.coders.html">apache_beam.coders package</a></li> |
| <li class="toctree-l1"><a class="reference internal" href="apache_beam.dataframe.html">apache_beam.dataframe package</a></li> |
| <li class="toctree-l1"><a class="reference internal" href="apache_beam.io.html">apache_beam.io package</a></li> |
| <li class="toctree-l1"><a class="reference internal" href="apache_beam.metrics.html">apache_beam.metrics package</a></li> |
| <li class="toctree-l1 current"><a class="reference internal" href="apache_beam.ml.html">apache_beam.ml package</a><ul class="current"> |
| <li class="toctree-l2 current"><a class="reference internal" href="apache_beam.ml.html#subpackages">Subpackages</a><ul class="current"> |
| <li class="toctree-l3"><a class="reference internal" href="apache_beam.ml.gcp.html">apache_beam.ml.gcp package</a></li> |
| <li class="toctree-l3 current"><a class="reference internal" href="apache_beam.ml.inference.html">apache_beam.ml.inference package</a><ul class="current"> |
| <li class="toctree-l4 current"><a class="reference internal" href="apache_beam.ml.inference.html#submodules">Submodules</a></li> |
| </ul> |
| </li> |
| <li class="toctree-l3"><a class="reference internal" href="apache_beam.ml.transforms.html">apache_beam.ml.transforms package</a></li> |
| </ul> |
| </li> |
| </ul> |
| </li> |
| <li class="toctree-l1"><a class="reference internal" href="apache_beam.options.html">apache_beam.options package</a></li> |
| <li class="toctree-l1"><a class="reference internal" href="apache_beam.portability.html">apache_beam.portability package</a></li> |
| <li class="toctree-l1"><a class="reference internal" href="apache_beam.runners.html">apache_beam.runners package</a></li> |
| <li class="toctree-l1"><a class="reference internal" href="apache_beam.testing.html">apache_beam.testing package</a></li> |
| <li class="toctree-l1"><a class="reference internal" href="apache_beam.transforms.html">apache_beam.transforms package</a></li> |
| <li class="toctree-l1"><a class="reference internal" href="apache_beam.typehints.html">apache_beam.typehints package</a></li> |
| <li class="toctree-l1"><a class="reference internal" href="apache_beam.utils.html">apache_beam.utils package</a></li> |
| <li class="toctree-l1"><a class="reference internal" href="apache_beam.yaml.html">apache_beam.yaml package</a></li> |
| </ul> |
| <ul> |
| <li class="toctree-l1"><a class="reference internal" href="apache_beam.error.html">apache_beam.error module</a></li> |
| <li class="toctree-l1"><a class="reference internal" href="apache_beam.pipeline.html">apache_beam.pipeline module</a></li> |
| <li class="toctree-l1"><a class="reference internal" href="apache_beam.pvalue.html">apache_beam.pvalue module</a></li> |
| </ul> |
| |
| |
| |
| </div> |
| </div> |
| </nav> |
| |
| <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"> |
| |
| |
| <nav class="wy-nav-top" aria-label="top navigation"> |
| |
| <i data-toggle="wy-nav-top" class="fa fa-bars"></i> |
| <a href="index.html">Apache Beam</a> |
| |
| </nav> |
| |
| |
| <div class="wy-nav-content"> |
| |
| <div class="rst-content"> |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| <div role="navigation" aria-label="breadcrumbs navigation"> |
| |
| <ul class="wy-breadcrumbs"> |
| |
| <li><a href="index.html">Docs</a> »</li> |
| |
| <li><a href="apache_beam.ml.html">apache_beam.ml package</a> »</li> |
| |
| <li><a href="apache_beam.ml.inference.html">apache_beam.ml.inference package</a> »</li> |
| |
| <li>apache_beam.ml.inference.base module</li> |
| |
| |
| <li class="wy-breadcrumbs-aside"> |
| |
| |
| <a href="_sources/apache_beam.ml.inference.base.rst.txt" rel="nofollow"> View page source</a> |
| |
| |
| </li> |
| |
| </ul> |
| |
| |
| <hr/> |
| </div> |
| <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> |
| <div itemprop="articleBody"> |
| |
| <div class="section" id="module-apache_beam.ml.inference.base"> |
| <span id="apache-beam-ml-inference-base-module"></span><h1>apache_beam.ml.inference.base module<a class="headerlink" href="#module-apache_beam.ml.inference.base" title="Permalink to this headline">¶</a></h1> |
| <p>An extensible run inference transform.</p> |
| <p>Users of this module can extend the ModelHandler class for any machine learning |
| framework. A ModelHandler implementation is a required parameter of |
| RunInference.</p> |
| <p>The transform handles standard inference functionality, like metric |
| collection, sharing model between threads, and batching elements.</p> |
| <dl class="class"> |
| <dt id="apache_beam.ml.inference.base.PredictionResult"> |
| <em class="property">class </em><code class="descclassname">apache_beam.ml.inference.base.</code><code class="descname">PredictionResult</code><a class="reference internal" href="_modules/apache_beam/ml/inference/base.html#PredictionResult"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#apache_beam.ml.inference.base.PredictionResult" title="Permalink to this definition">¶</a></dt> |
| <dd><p>Bases: <a class="reference internal" href="#apache_beam.ml.inference.base.PredictionResult" title="apache_beam.ml.inference.base.PredictionResult"><code class="xref py py-class docutils literal notranslate"><span class="pre">apache_beam.ml.inference.base.PredictionResult</span></code></a></p> |
| <p>A NamedTuple containing both input and output |
| from the inference.</p> |
| </dd></dl> |
| |
| <dl class="class"> |
| <dt id="apache_beam.ml.inference.base.ModelMetadata"> |
| <em class="property">class </em><code class="descclassname">apache_beam.ml.inference.base.</code><code class="descname">ModelMetadata</code><span class="sig-paren">(</span><em>model_id</em>, <em>model_name</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/apache_beam/ml/inference/base.html#ModelMetadata"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#apache_beam.ml.inference.base.ModelMetadata" title="Permalink to this definition">¶</a></dt> |
| <dd><p>Bases: <a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#tuple" title="(in Python v3.12)"><code class="xref py py-class docutils literal notranslate"><span class="pre">tuple</span></code></a></p> |
| <p>Create new instance of ModelMetadata(model_id, model_name)</p> |
| <dl class="attribute"> |
| <dt id="apache_beam.ml.inference.base.ModelMetadata.model_id"> |
| <code class="descname">model_id</code><a class="headerlink" href="#apache_beam.ml.inference.base.ModelMetadata.model_id" title="Permalink to this definition">¶</a></dt> |
| <dd><p>Unique identifier for the model. This can be |
| a file path or a URL where the model can be accessed. It is used to load |
| the model for inference.</p> |
| </dd></dl> |
| |
| <dl class="attribute"> |
| <dt id="apache_beam.ml.inference.base.ModelMetadata.model_name"> |
| <code class="descname">model_name</code><a class="headerlink" href="#apache_beam.ml.inference.base.ModelMetadata.model_name" title="Permalink to this definition">¶</a></dt> |
| <dd><p>Human-readable name for the model. This |
| can be used to identify the model in the metrics generated by the |
| RunInference transform.</p> |
| </dd></dl> |
| |
| </dd></dl> |
| |
| <dl class="class"> |
| <dt id="apache_beam.ml.inference.base.RunInferenceDLQ"> |
| <em class="property">class </em><code class="descclassname">apache_beam.ml.inference.base.</code><code class="descname">RunInferenceDLQ</code><span class="sig-paren">(</span><em>failed_inferences</em>, <em>failed_preprocessing</em>, <em>failed_postprocessing</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/apache_beam/ml/inference/base.html#RunInferenceDLQ"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#apache_beam.ml.inference.base.RunInferenceDLQ" title="Permalink to this definition">¶</a></dt> |
| <dd><p>Bases: <a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#tuple" title="(in Python v3.12)"><code class="xref py py-class docutils literal notranslate"><span class="pre">tuple</span></code></a></p> |
| <p>Create new instance of RunInferenceDLQ(failed_inferences, failed_preprocessing, failed_postprocessing)</p> |
| <dl class="attribute"> |
| <dt id="apache_beam.ml.inference.base.RunInferenceDLQ.failed_inferences"> |
| <code class="descname">failed_inferences</code><a class="headerlink" href="#apache_beam.ml.inference.base.RunInferenceDLQ.failed_inferences" title="Permalink to this definition">¶</a></dt> |
| <dd><p>Alias for field number 0</p> |
| </dd></dl> |
| |
| <dl class="attribute"> |
| <dt id="apache_beam.ml.inference.base.RunInferenceDLQ.failed_preprocessing"> |
| <code class="descname">failed_preprocessing</code><a class="headerlink" href="#apache_beam.ml.inference.base.RunInferenceDLQ.failed_preprocessing" title="Permalink to this definition">¶</a></dt> |
| <dd><p>Alias for field number 1</p> |
| </dd></dl> |
| |
| <dl class="attribute"> |
| <dt id="apache_beam.ml.inference.base.RunInferenceDLQ.failed_postprocessing"> |
| <code class="descname">failed_postprocessing</code><a class="headerlink" href="#apache_beam.ml.inference.base.RunInferenceDLQ.failed_postprocessing" title="Permalink to this definition">¶</a></dt> |
| <dd><p>Alias for field number 2</p> |
| </dd></dl> |
| |
| </dd></dl> |
| |
| <dl class="class"> |
| <dt id="apache_beam.ml.inference.base.KeyModelPathMapping"> |
| <em class="property">class </em><code class="descclassname">apache_beam.ml.inference.base.</code><code class="descname">KeyModelPathMapping</code><span class="sig-paren">(</span><em>keys: List[KeyT], update_path: str, model_id: str = ''</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/apache_beam/ml/inference/base.html#KeyModelPathMapping"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#apache_beam.ml.inference.base.KeyModelPathMapping" title="Permalink to this definition">¶</a></dt> |
| <dd><p>Bases: <a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.Generic" title="(in Python v3.12)"><code class="xref py py-class docutils literal notranslate"><span class="pre">typing.Generic</span></code></a></p> |
| <p>Dataclass for mapping 1 or more keys to 1 model path. This is used in |
| conjunction with a KeyedModelHandler with many model handlers to update |
| a set of keys’ model handlers with the new path. Given |
| <cite>KeyModelPathMapping(keys: [‘key1’, ‘key2’], update_path: ‘updated/path’, |
| model_id: ‘id1’)</cite>, all examples with keys <cite>key1</cite> or <cite>key2</cite> will have their |
| corresponding model handler’s update_model function called with |
| ‘updated/path’ and their metrics will correspond with ‘id1’. For more |
| information see the KeyedModelHandler documentation |
| <a class="reference external" href="https://beam.apache.org/releases/pydoc/current/apache_beam.ml.inference.base.html#apache_beam.ml.inference.base.KeyedModelHandler">https://beam.apache.org/releases/pydoc/current/apache_beam.ml.inference.base.html#apache_beam.ml.inference.base.KeyedModelHandler</a> |
| documentation and the website section on model updates |
| <a class="reference external" href="https://beam.apache.org/documentation/sdks/python-machine-learning/#automatic-model-refresh">https://beam.apache.org/documentation/sdks/python-machine-learning/#automatic-model-refresh</a></p> |
| <dl class="attribute"> |
| <dt id="apache_beam.ml.inference.base.KeyModelPathMapping.model_id"> |
| <code class="descname">model_id</code><em class="property"> = ''</em><a class="headerlink" href="#apache_beam.ml.inference.base.KeyModelPathMapping.model_id" title="Permalink to this definition">¶</a></dt> |
| <dd></dd></dl> |
| |
| </dd></dl> |
| |
| <dl class="class"> |
| <dt id="apache_beam.ml.inference.base.ModelHandler"> |
| <em class="property">class </em><code class="descclassname">apache_beam.ml.inference.base.</code><code class="descname">ModelHandler</code><a class="reference internal" href="_modules/apache_beam/ml/inference/base.html#ModelHandler"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#apache_beam.ml.inference.base.ModelHandler" title="Permalink to this definition">¶</a></dt> |
| <dd><p>Bases: <a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.Generic" title="(in Python v3.12)"><code class="xref py py-class docutils literal notranslate"><span class="pre">typing.Generic</span></code></a></p> |
| <p>Has the ability to load and apply an ML model.</p> |
| <p>Environment variables are set using a dict named ‘env_vars’ before |
| loading the model. Child classes can accept this dict as a kwarg.</p> |
| <dl class="method"> |
| <dt id="apache_beam.ml.inference.base.ModelHandler.load_model"> |
| <code class="descname">load_model</code><span class="sig-paren">(</span><span class="sig-paren">)</span> → ModelT<a class="reference internal" href="_modules/apache_beam/ml/inference/base.html#ModelHandler.load_model"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#apache_beam.ml.inference.base.ModelHandler.load_model" title="Permalink to this definition">¶</a></dt> |
| <dd><p>Loads and initializes a model for processing.</p> |
| </dd></dl> |
| |
| <dl class="method"> |
| <dt id="apache_beam.ml.inference.base.ModelHandler.run_inference"> |
| <code class="descname">run_inference</code><span class="sig-paren">(</span><em>batch: Sequence[ExampleT], model: ModelT, inference_args: Optional[Dict[str, Any]] = None</em><span class="sig-paren">)</span> → Iterable[PredictionT]<a class="reference internal" href="_modules/apache_beam/ml/inference/base.html#ModelHandler.run_inference"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#apache_beam.ml.inference.base.ModelHandler.run_inference" title="Permalink to this definition">¶</a></dt> |
| <dd><p>Runs inferences on a batch of examples.</p> |
| <table class="docutils field-list" frame="void" rules="none"> |
| <col class="field-name" /> |
| <col class="field-body" /> |
| <tbody valign="top"> |
| <tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first simple"> |
| <li><strong>batch</strong> – A sequence of examples or features.</li> |
| <li><strong>model</strong> – The model used to make inferences.</li> |
| <li><strong>inference_args</strong> – Extra arguments for models whose inference call requires |
| extra parameters.</li> |
| </ul> |
| </td> |
| </tr> |
| <tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">An Iterable of Predictions.</p> |
| </td> |
| </tr> |
| </tbody> |
| </table> |
| </dd></dl> |
| |
| <dl class="method"> |
| <dt id="apache_beam.ml.inference.base.ModelHandler.get_num_bytes"> |
| <code class="descname">get_num_bytes</code><span class="sig-paren">(</span><em>batch: Sequence[ExampleT]</em><span class="sig-paren">)</span> → int<a class="reference internal" href="_modules/apache_beam/ml/inference/base.html#ModelHandler.get_num_bytes"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#apache_beam.ml.inference.base.ModelHandler.get_num_bytes" title="Permalink to this definition">¶</a></dt> |
| <dd><table class="docutils field-list" frame="void" rules="none"> |
| <col class="field-name" /> |
| <col class="field-body" /> |
| <tbody valign="top"> |
| <tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">The number of bytes of data for a batch.</td> |
| </tr> |
| </tbody> |
| </table> |
| </dd></dl> |
| |
| <dl class="method"> |
| <dt id="apache_beam.ml.inference.base.ModelHandler.get_metrics_namespace"> |
| <code class="descname">get_metrics_namespace</code><span class="sig-paren">(</span><span class="sig-paren">)</span> → str<a class="reference internal" href="_modules/apache_beam/ml/inference/base.html#ModelHandler.get_metrics_namespace"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#apache_beam.ml.inference.base.ModelHandler.get_metrics_namespace" title="Permalink to this definition">¶</a></dt> |
| <dd><table class="docutils field-list" frame="void" rules="none"> |
| <col class="field-name" /> |
| <col class="field-body" /> |
| <tbody valign="top"> |
| <tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">A namespace for metrics collected by the RunInference transform.</td> |
| </tr> |
| </tbody> |
| </table> |
| </dd></dl> |
| |
| <dl class="method"> |
| <dt id="apache_beam.ml.inference.base.ModelHandler.get_resource_hints"> |
| <code class="descname">get_resource_hints</code><span class="sig-paren">(</span><span class="sig-paren">)</span> → dict<a class="reference internal" href="_modules/apache_beam/ml/inference/base.html#ModelHandler.get_resource_hints"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#apache_beam.ml.inference.base.ModelHandler.get_resource_hints" title="Permalink to this definition">¶</a></dt> |
| <dd><table class="docutils field-list" frame="void" rules="none"> |
| <col class="field-name" /> |
| <col class="field-body" /> |
| <tbody valign="top"> |
| <tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">Resource hints for the transform.</td> |
| </tr> |
| </tbody> |
| </table> |
| </dd></dl> |
| |
| <dl class="method"> |
| <dt id="apache_beam.ml.inference.base.ModelHandler.batch_elements_kwargs"> |
| <code class="descname">batch_elements_kwargs</code><span class="sig-paren">(</span><span class="sig-paren">)</span> → Mapping[str, Any]<a class="reference internal" href="_modules/apache_beam/ml/inference/base.html#ModelHandler.batch_elements_kwargs"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#apache_beam.ml.inference.base.ModelHandler.batch_elements_kwargs" title="Permalink to this definition">¶</a></dt> |
| <dd><table class="docutils field-list" frame="void" rules="none"> |
| <col class="field-name" /> |
| <col class="field-body" /> |
| <tbody valign="top"> |
| <tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">kwargs suitable for beam.BatchElements.</td> |
| </tr> |
| </tbody> |
| </table> |
| </dd></dl> |
| |
| <dl class="method"> |
| <dt id="apache_beam.ml.inference.base.ModelHandler.validate_inference_args"> |
| <code class="descname">validate_inference_args</code><span class="sig-paren">(</span><em>inference_args: Optional[Dict[str, Any]]</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/apache_beam/ml/inference/base.html#ModelHandler.validate_inference_args"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#apache_beam.ml.inference.base.ModelHandler.validate_inference_args" title="Permalink to this definition">¶</a></dt> |
| <dd><p>Validates inference_args passed in the inference call.</p> |
| <p>Because most frameworks do not need extra arguments in their predict() call, |
| the default behavior is to error out if inference_args are present.</p> |
| </dd></dl> |
| |
| <dl class="method"> |
| <dt id="apache_beam.ml.inference.base.ModelHandler.update_model_path"> |
| <code class="descname">update_model_path</code><span class="sig-paren">(</span><em>model_path: Optional[str] = None</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/apache_beam/ml/inference/base.html#ModelHandler.update_model_path"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#apache_beam.ml.inference.base.ModelHandler.update_model_path" title="Permalink to this definition">¶</a></dt> |
| <dd><p>Update the model path produced by side inputs. update_model_path should be |
| used when a ModelHandler represents a single model, not multiple models. |
| This will be true in most cases. For more information see the website |
| section on model updates |
| <a class="reference external" href="https://beam.apache.org/documentation/sdks/python-machine-learning/#automatic-model-refresh">https://beam.apache.org/documentation/sdks/python-machine-learning/#automatic-model-refresh</a></p> |
| </dd></dl> |
| |
| <dl class="method"> |
| <dt id="apache_beam.ml.inference.base.ModelHandler.update_model_paths"> |
| <code class="descname">update_model_paths</code><span class="sig-paren">(</span><em>model: ModelT, model_paths: Union[str, List[apache_beam.ml.inference.base.KeyModelPathMapping], None] = None</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/apache_beam/ml/inference/base.html#ModelHandler.update_model_paths"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#apache_beam.ml.inference.base.ModelHandler.update_model_paths" title="Permalink to this definition">¶</a></dt> |
| <dd><p>Update the model paths produced by side inputs. update_model_paths should |
| be used when updating multiple models at once (e.g. when using a |
| KeyedModelHandler that holds multiple models). For more information see |
| the KeyedModelHandler documentation |
| <a class="reference external" href="https://beam.apache.org/releases/pydoc/current/apache_beam.ml.inference.base.html#apache_beam.ml.inference.base.KeyedModelHandler">https://beam.apache.org/releases/pydoc/current/apache_beam.ml.inference.base.html#apache_beam.ml.inference.base.KeyedModelHandler</a> |
| documentation and the website section on model updates |
| <a class="reference external" href="https://beam.apache.org/documentation/sdks/python-machine-learning/#automatic-model-refresh">https://beam.apache.org/documentation/sdks/python-machine-learning/#automatic-model-refresh</a></p> |
| </dd></dl> |
| |
| <dl class="method"> |
| <dt id="apache_beam.ml.inference.base.ModelHandler.get_preprocess_fns"> |
| <code class="descname">get_preprocess_fns</code><span class="sig-paren">(</span><span class="sig-paren">)</span> → Iterable[Callable[[Any], Any]]<a class="reference internal" href="_modules/apache_beam/ml/inference/base.html#ModelHandler.get_preprocess_fns"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#apache_beam.ml.inference.base.ModelHandler.get_preprocess_fns" title="Permalink to this definition">¶</a></dt> |
| <dd><p>Gets all preprocessing functions to be run before batching/inference. |
| Functions are in order that they should be applied.</p> |
| </dd></dl> |
| |
| <dl class="method"> |
| <dt id="apache_beam.ml.inference.base.ModelHandler.get_postprocess_fns"> |
| <code class="descname">get_postprocess_fns</code><span class="sig-paren">(</span><span class="sig-paren">)</span> → Iterable[Callable[[Any], Any]]<a class="reference internal" href="_modules/apache_beam/ml/inference/base.html#ModelHandler.get_postprocess_fns"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#apache_beam.ml.inference.base.ModelHandler.get_postprocess_fns" title="Permalink to this definition">¶</a></dt> |
| <dd><p>Gets all postprocessing functions to be run after inference. |
| Functions are in order that they should be applied.</p> |
| </dd></dl> |
| |
| <dl class="method"> |
| <dt id="apache_beam.ml.inference.base.ModelHandler.set_environment_vars"> |
| <code class="descname">set_environment_vars</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/apache_beam/ml/inference/base.html#ModelHandler.set_environment_vars"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#apache_beam.ml.inference.base.ModelHandler.set_environment_vars" title="Permalink to this definition">¶</a></dt> |
| <dd><p>Sets environment variables using a dictionary provided via kwargs. |
| Keys are the env variable name, and values are the env variable value. |
| Child ModelHandler classes should set _env_vars via kwargs in __init__, |
| or else call super().__init__().</p> |
| </dd></dl> |
| |
| <dl class="method"> |
| <dt id="apache_beam.ml.inference.base.ModelHandler.with_preprocess_fn"> |
| <code class="descname">with_preprocess_fn</code><span class="sig-paren">(</span><em>fn: Callable[[PreProcessT], ExampleT]</em><span class="sig-paren">)</span> → ModelHandler[PreProcessT, PredictionT, ModelT, PreProcessT]<a class="reference internal" href="_modules/apache_beam/ml/inference/base.html#ModelHandler.with_preprocess_fn"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#apache_beam.ml.inference.base.ModelHandler.with_preprocess_fn" title="Permalink to this definition">¶</a></dt> |
| <dd><p>Returns a new ModelHandler with a preprocessing function |
| associated with it. The preprocessing function will be run |
| before batching/inference and should map your input PCollection |
| to the base ModelHandler’s input type. If you apply multiple |
| preprocessing functions, they will be run on your original |
| PCollection in order from last applied to first applied.</p> |
| </dd></dl> |
| |
| <dl class="method"> |
| <dt id="apache_beam.ml.inference.base.ModelHandler.with_postprocess_fn"> |
| <code class="descname">with_postprocess_fn</code><span class="sig-paren">(</span><em>fn: Callable[[PredictionT], PostProcessT]</em><span class="sig-paren">)</span> → ModelHandler[ExampleT, PostProcessT, ModelT, PostProcessT]<a class="reference internal" href="_modules/apache_beam/ml/inference/base.html#ModelHandler.with_postprocess_fn"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#apache_beam.ml.inference.base.ModelHandler.with_postprocess_fn" title="Permalink to this definition">¶</a></dt> |
| <dd><p>Returns a new ModelHandler with a postprocessing function |
| associated with it. The postprocessing function will be run |
| after inference and should map the base ModelHandler’s output |
| type to your desired output type. If you apply multiple |
| postprocessing functions, they will be run on your original |
| inference result in order from first applied to last applied.</p> |
| </dd></dl> |
| |
| <dl class="method"> |
| <dt id="apache_beam.ml.inference.base.ModelHandler.share_model_across_processes"> |
| <code class="descname">share_model_across_processes</code><span class="sig-paren">(</span><span class="sig-paren">)</span> → bool<a class="reference internal" href="_modules/apache_beam/ml/inference/base.html#ModelHandler.share_model_across_processes"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#apache_beam.ml.inference.base.ModelHandler.share_model_across_processes" title="Permalink to this definition">¶</a></dt> |
| <dd><p>Returns a boolean representing whether or not a model should |
| be shared across multiple processes instead of being loaded per process. |
| This is primary useful for large models that can’t fit multiple copies in |
| memory. Multi-process support may vary by runner, but this will fallback to |
| loading per process as necessary. See |
| <a class="reference external" href="https://beam.apache.org/releases/pydoc/current/apache_beam.utils.multi_process_shared.html">https://beam.apache.org/releases/pydoc/current/apache_beam.utils.multi_process_shared.html</a></p> |
| </dd></dl> |
| |
| <dl class="method"> |
| <dt id="apache_beam.ml.inference.base.ModelHandler.override_metrics"> |
| <code class="descname">override_metrics</code><span class="sig-paren">(</span><em>metrics_namespace: str = ''</em><span class="sig-paren">)</span> → bool<a class="reference internal" href="_modules/apache_beam/ml/inference/base.html#ModelHandler.override_metrics"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#apache_beam.ml.inference.base.ModelHandler.override_metrics" title="Permalink to this definition">¶</a></dt> |
| <dd><p>Returns a boolean representing whether or not a model handler will |
| override metrics reporting. If True, RunInference will not report any |
| metrics.</p> |
| </dd></dl> |
| |
| </dd></dl> |
| |
| <dl class="class"> |
| <dt id="apache_beam.ml.inference.base.KeyModelMapping"> |
| <em class="property">class </em><code class="descclassname">apache_beam.ml.inference.base.</code><code class="descname">KeyModelMapping</code><span class="sig-paren">(</span><em>keys: List[KeyT], mh: apache_beam.ml.inference.base.ModelHandler[~ExampleT, ~PredictionT, ~ModelT][ExampleT, PredictionT, ModelT]</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/apache_beam/ml/inference/base.html#KeyModelMapping"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#apache_beam.ml.inference.base.KeyModelMapping" title="Permalink to this definition">¶</a></dt> |
| <dd><p>Bases: <a class="reference external" href="https://docs.python.org/3/library/typing.html#typing.Generic" title="(in Python v3.12)"><code class="xref py py-class docutils literal notranslate"><span class="pre">typing.Generic</span></code></a></p> |
| <p>Dataclass for mapping 1 or more keys to 1 model handler. Given |
| <cite>KeyModelMapping([‘key1’, ‘key2’], myMh)</cite>, all examples with keys <cite>key1</cite> |
| or <cite>key2</cite> will be run against the model defined by the <cite>myMh</cite> ModelHandler.</p> |
| </dd></dl> |
| |
| <dl class="class"> |
| <dt id="apache_beam.ml.inference.base.KeyedModelHandler"> |
| <em class="property">class </em><code class="descclassname">apache_beam.ml.inference.base.</code><code class="descname">KeyedModelHandler</code><span class="sig-paren">(</span><em>unkeyed: Union[apache_beam.ml.inference.base.ModelHandler[~ExampleT, ~PredictionT, ~ModelT][ExampleT, PredictionT, ModelT], List[apache_beam.ml.inference.base.KeyModelMapping[~KeyT, ~ExampleT, ~PredictionT, ~ModelT][KeyT, ExampleT, PredictionT, ModelT]]], max_models_per_worker_hint: Optional[int] = None</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/apache_beam/ml/inference/base.html#KeyedModelHandler"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#apache_beam.ml.inference.base.KeyedModelHandler" title="Permalink to this definition">¶</a></dt> |
| <dd><p>Bases: <a class="reference internal" href="#apache_beam.ml.inference.base.ModelHandler" title="apache_beam.ml.inference.base.ModelHandler"><code class="xref py py-class docutils literal notranslate"><span class="pre">apache_beam.ml.inference.base.ModelHandler</span></code></a></p> |
| <p>A ModelHandler that takes keyed examples and returns keyed predictions.</p> |
| <p>For example, if the original model is used with RunInference to take a |
| PCollection[E] to a PCollection[P], this ModelHandler would take a |
| PCollection[Tuple[K, E]] to a PCollection[Tuple[K, P]], making it possible |
| to use the key to associate the outputs with the inputs. KeyedModelHandler |
| is able to accept either a single unkeyed ModelHandler or many different |
| model handlers corresponding to the keys for which that ModelHandler should |
| be used. For example, the following configuration could be used to map keys |
| 1-3 to ModelHandler1 and keys 4-5 to ModelHandler2:</p> |
| <blockquote> |
| <div>k1 = [‘k1’, ‘k2’, ‘k3’] |
| k2 = [‘k4’, ‘k5’] |
| KeyedModelHandler([KeyModelMapping(k1, mh1), KeyModelMapping(k2, mh2)])</div></blockquote> |
| <p>Note that a single copy of each of these models may all be held in memory |
| at the same time; be careful not to load too many large models or your |
| pipeline may cause Out of Memory exceptions.</p> |
| <p>KeyedModelHandlers support Automatic Model Refresh to update your model |
| to a newer version without stopping your streaming pipeline. For an |
| overview of this feature, see |
| <a class="reference external" href="https://beam.apache.org/documentation/sdks/python-machine-learning/#automatic-model-refresh">https://beam.apache.org/documentation/sdks/python-machine-learning/#automatic-model-refresh</a></p> |
| <p>To use this feature with a KeyedModelHandler that has many models per key, |
| you can pass in a list of KeyModelPathMapping objects to define your new |
| model paths. For example, passing in the side input of</p> |
| <blockquote> |
| <div>[KeyModelPathMapping(keys=[‘k1’, ‘k2’], update_path=’update/path/1’), |
| KeyModelPathMapping(keys=[‘k3’], update_path=’update/path/2’)]</div></blockquote> |
| <p>will update the model corresponding to keys ‘k1’ and ‘k2’ with path |
| ‘update/path/1’ and the model corresponding to ‘k3’ with ‘update/path/2’. |
| In order to do a side input update: (1) all restrictions mentioned in |
| <a class="reference external" href="https://beam.apache.org/documentation/sdks/python-machine-learning/#automatic-model-refresh">https://beam.apache.org/documentation/sdks/python-machine-learning/#automatic-model-refresh</a> |
| must be met, (2) all update_paths must be non-empty, even if they are not |
| being updated from their original values, and (3) the set of keys |
| originally defined cannot change. This means that if originally you have |
| defined model handlers for ‘key1’, ‘key2’, and ‘key3’, all 3 of those keys |
| must appear in your list of KeyModelPathMappings exactly once. No |
| additional keys can be added.</p> |
| <p>When using many models defined per key, metrics about inference and model |
| loading will be gathered on an aggregate basis for all keys. These will be |
| reported with no prefix. Metrics will also be gathered on a per key basis. |
| Since some keys can share the same model, only one set of metrics will be |
| reported per key ‘cohort’. These will be reported in the form: |
| <cite><cohort_key>-<metric_name></cite>, where <cite><cohort_key></cite> can be any key selected |
| from the cohort. When model updates occur, the metrics will be reported in |
| the form <cite><cohort_key>-<model id>-<metric_name></cite>.</p> |
| <p>Loading multiple models at the same time can increase the risk of an out of |
| memory (OOM) exception. To avoid this issue, use the parameter |
| <cite>max_models_per_worker_hint</cite> to limit the number of models that are loaded |
| at the same time. For more information about memory management, see |
| <cite>Use a keyed `ModelHandler <https://beam.apache.org/documentation/sdks/python-machine-learning/#use-a-keyed-modelhandler>_</cite>. # pylint: disable=line-too-long</p> |
| <table class="docutils field-list" frame="void" rules="none"> |
| <col class="field-name" /> |
| <col class="field-body" /> |
| <tbody valign="top"> |
| <tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple"> |
| <li><strong>unkeyed</strong> – Either (a) an implementation of ModelHandler that does not |
| require keys or (b) a list of KeyModelMappings mapping lists of keys to |
| unkeyed ModelHandlers.</li> |
| <li><strong>max_models_per_worker_hint</strong> – A hint to the runner indicating how many |
| models can be held in memory at one time per worker process. For |
| example, if your worker has 8 GB of memory provisioned and your workers |
| take up 1 GB each, you should set this to 7 to allow all models to sit |
| in memory with some buffer. For more information about memory management, |
| see <cite>Use a keyed `ModelHandler <https://beam.apache.org/documentation/sdks/python-machine-learning/#use-a-keyed-modelhandler>_</cite>. # pylint: disable=line-too-long</li> |
| </ul> |
| </td> |
| </tr> |
| </tbody> |
| </table> |
| <dl class="method"> |
| <dt id="apache_beam.ml.inference.base.KeyedModelHandler.load_model"> |
| <code class="descname">load_model</code><span class="sig-paren">(</span><span class="sig-paren">)</span> → Union[ModelT, apache_beam.ml.inference.base._ModelManager]<a class="reference internal" href="_modules/apache_beam/ml/inference/base.html#KeyedModelHandler.load_model"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#apache_beam.ml.inference.base.KeyedModelHandler.load_model" title="Permalink to this definition">¶</a></dt> |
| <dd></dd></dl> |
| |
| <dl class="method"> |
| <dt id="apache_beam.ml.inference.base.KeyedModelHandler.run_inference"> |
| <code class="descname">run_inference</code><span class="sig-paren">(</span><em>batch: Sequence[Tuple[KeyT, ExampleT]], model: Union[ModelT, apache_beam.ml.inference.base._ModelManager], inference_args: Optional[Dict[str, Any]] = None</em><span class="sig-paren">)</span> → Iterable[Tuple[KeyT, PredictionT]]<a class="reference internal" href="_modules/apache_beam/ml/inference/base.html#KeyedModelHandler.run_inference"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#apache_beam.ml.inference.base.KeyedModelHandler.run_inference" title="Permalink to this definition">¶</a></dt> |
| <dd></dd></dl> |
| |
| <dl class="method"> |
| <dt id="apache_beam.ml.inference.base.KeyedModelHandler.get_num_bytes"> |
| <code class="descname">get_num_bytes</code><span class="sig-paren">(</span><em>batch: Sequence[Tuple[KeyT, ExampleT]]</em><span class="sig-paren">)</span> → int<a class="reference internal" href="_modules/apache_beam/ml/inference/base.html#KeyedModelHandler.get_num_bytes"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#apache_beam.ml.inference.base.KeyedModelHandler.get_num_bytes" title="Permalink to this definition">¶</a></dt> |
| <dd></dd></dl> |
| |
| <dl class="method"> |
| <dt id="apache_beam.ml.inference.base.KeyedModelHandler.get_metrics_namespace"> |
| <code class="descname">get_metrics_namespace</code><span class="sig-paren">(</span><span class="sig-paren">)</span> → str<a class="reference internal" href="_modules/apache_beam/ml/inference/base.html#KeyedModelHandler.get_metrics_namespace"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#apache_beam.ml.inference.base.KeyedModelHandler.get_metrics_namespace" title="Permalink to this definition">¶</a></dt> |
| <dd></dd></dl> |
| |
| <dl class="method"> |
| <dt id="apache_beam.ml.inference.base.KeyedModelHandler.get_resource_hints"> |
| <code class="descname">get_resource_hints</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/apache_beam/ml/inference/base.html#KeyedModelHandler.get_resource_hints"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#apache_beam.ml.inference.base.KeyedModelHandler.get_resource_hints" title="Permalink to this definition">¶</a></dt> |
| <dd></dd></dl> |
| |
| <dl class="method"> |
| <dt id="apache_beam.ml.inference.base.KeyedModelHandler.batch_elements_kwargs"> |
| <code class="descname">batch_elements_kwargs</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/apache_beam/ml/inference/base.html#KeyedModelHandler.batch_elements_kwargs"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#apache_beam.ml.inference.base.KeyedModelHandler.batch_elements_kwargs" title="Permalink to this definition">¶</a></dt> |
| <dd></dd></dl> |
| |
| <dl class="method"> |
| <dt id="apache_beam.ml.inference.base.KeyedModelHandler.validate_inference_args"> |
| <code class="descname">validate_inference_args</code><span class="sig-paren">(</span><em>inference_args: Optional[Dict[str, Any]]</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/apache_beam/ml/inference/base.html#KeyedModelHandler.validate_inference_args"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#apache_beam.ml.inference.base.KeyedModelHandler.validate_inference_args" title="Permalink to this definition">¶</a></dt> |
| <dd></dd></dl> |
| |
| <dl class="method"> |
| <dt id="apache_beam.ml.inference.base.KeyedModelHandler.update_model_paths"> |
| <code class="descname">update_model_paths</code><span class="sig-paren">(</span><em>model: Union[ModelT, apache_beam.ml.inference.base._ModelManager], model_paths: List[apache_beam.ml.inference.base.KeyModelPathMapping[~KeyT][KeyT]] = None</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/apache_beam/ml/inference/base.html#KeyedModelHandler.update_model_paths"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#apache_beam.ml.inference.base.KeyedModelHandler.update_model_paths" title="Permalink to this definition">¶</a></dt> |
| <dd></dd></dl> |
| |
| <dl class="method"> |
| <dt id="apache_beam.ml.inference.base.KeyedModelHandler.update_model_path"> |
| <code class="descname">update_model_path</code><span class="sig-paren">(</span><em>model_path: Optional[str] = None</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/apache_beam/ml/inference/base.html#KeyedModelHandler.update_model_path"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#apache_beam.ml.inference.base.KeyedModelHandler.update_model_path" title="Permalink to this definition">¶</a></dt> |
| <dd></dd></dl> |
| |
| <dl class="method"> |
| <dt id="apache_beam.ml.inference.base.KeyedModelHandler.share_model_across_processes"> |
| <code class="descname">share_model_across_processes</code><span class="sig-paren">(</span><span class="sig-paren">)</span> → bool<a class="reference internal" href="_modules/apache_beam/ml/inference/base.html#KeyedModelHandler.share_model_across_processes"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#apache_beam.ml.inference.base.KeyedModelHandler.share_model_across_processes" title="Permalink to this definition">¶</a></dt> |
| <dd></dd></dl> |
| |
| <dl class="method"> |
| <dt id="apache_beam.ml.inference.base.KeyedModelHandler.override_metrics"> |
| <code class="descname">override_metrics</code><span class="sig-paren">(</span><em>metrics_namespace: str = ''</em><span class="sig-paren">)</span> → bool<a class="reference internal" href="_modules/apache_beam/ml/inference/base.html#KeyedModelHandler.override_metrics"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#apache_beam.ml.inference.base.KeyedModelHandler.override_metrics" title="Permalink to this definition">¶</a></dt> |
| <dd></dd></dl> |
| |
| </dd></dl> |
| |
| <dl class="class"> |
| <dt id="apache_beam.ml.inference.base.MaybeKeyedModelHandler"> |
| <em class="property">class </em><code class="descclassname">apache_beam.ml.inference.base.</code><code class="descname">MaybeKeyedModelHandler</code><span class="sig-paren">(</span><em>unkeyed: apache_beam.ml.inference.base.ModelHandler[~ExampleT, ~PredictionT, ~ModelT][ExampleT, PredictionT, ModelT]</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/apache_beam/ml/inference/base.html#MaybeKeyedModelHandler"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#apache_beam.ml.inference.base.MaybeKeyedModelHandler" title="Permalink to this definition">¶</a></dt> |
| <dd><p>Bases: <a class="reference internal" href="#apache_beam.ml.inference.base.ModelHandler" title="apache_beam.ml.inference.base.ModelHandler"><code class="xref py py-class docutils literal notranslate"><span class="pre">apache_beam.ml.inference.base.ModelHandler</span></code></a></p> |
| <p>A ModelHandler that takes examples that might have keys and returns |
| predictions that might have keys.</p> |
| <p>For example, if the original model is used with RunInference to take a |
| PCollection[E] to a PCollection[P], this ModelHandler would take either |
| PCollection[E] to a PCollection[P] or PCollection[Tuple[K, E]] to a |
| PCollection[Tuple[K, P]], depending on the whether the elements are |
| tuples. This pattern makes it possible to associate the outputs with the |
| inputs based on the key.</p> |
| <p>Note that you cannot use this ModelHandler if E is a tuple type. |
| In addition, either all examples should be keyed, or none of them.</p> |
| <table class="docutils field-list" frame="void" rules="none"> |
| <col class="field-name" /> |
| <col class="field-body" /> |
| <tbody valign="top"> |
| <tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><strong>unkeyed</strong> – An implementation of ModelHandler that does not require keys.</td> |
| </tr> |
| </tbody> |
| </table> |
| <dl class="method"> |
| <dt id="apache_beam.ml.inference.base.MaybeKeyedModelHandler.load_model"> |
| <code class="descname">load_model</code><span class="sig-paren">(</span><span class="sig-paren">)</span> → ModelT<a class="reference internal" href="_modules/apache_beam/ml/inference/base.html#MaybeKeyedModelHandler.load_model"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#apache_beam.ml.inference.base.MaybeKeyedModelHandler.load_model" title="Permalink to this definition">¶</a></dt> |
| <dd></dd></dl> |
| |
| <dl class="method"> |
| <dt id="apache_beam.ml.inference.base.MaybeKeyedModelHandler.run_inference"> |
| <code class="descname">run_inference</code><span class="sig-paren">(</span><em>batch: Sequence[Union[ExampleT, Tuple[KeyT, ExampleT]]], model: ModelT, inference_args: Optional[Dict[str, Any]] = None</em><span class="sig-paren">)</span> → Union[Iterable[PredictionT], Iterable[Tuple[KeyT, PredictionT]]]<a class="reference internal" href="_modules/apache_beam/ml/inference/base.html#MaybeKeyedModelHandler.run_inference"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#apache_beam.ml.inference.base.MaybeKeyedModelHandler.run_inference" title="Permalink to this definition">¶</a></dt> |
| <dd></dd></dl> |
| |
| <dl class="method"> |
| <dt id="apache_beam.ml.inference.base.MaybeKeyedModelHandler.get_num_bytes"> |
| <code class="descname">get_num_bytes</code><span class="sig-paren">(</span><em>batch: Sequence[Union[ExampleT, Tuple[KeyT, ExampleT]]]</em><span class="sig-paren">)</span> → int<a class="reference internal" href="_modules/apache_beam/ml/inference/base.html#MaybeKeyedModelHandler.get_num_bytes"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#apache_beam.ml.inference.base.MaybeKeyedModelHandler.get_num_bytes" title="Permalink to this definition">¶</a></dt> |
| <dd></dd></dl> |
| |
| <dl class="method"> |
| <dt id="apache_beam.ml.inference.base.MaybeKeyedModelHandler.get_metrics_namespace"> |
| <code class="descname">get_metrics_namespace</code><span class="sig-paren">(</span><span class="sig-paren">)</span> → str<a class="reference internal" href="_modules/apache_beam/ml/inference/base.html#MaybeKeyedModelHandler.get_metrics_namespace"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#apache_beam.ml.inference.base.MaybeKeyedModelHandler.get_metrics_namespace" title="Permalink to this definition">¶</a></dt> |
| <dd></dd></dl> |
| |
| <dl class="method"> |
| <dt id="apache_beam.ml.inference.base.MaybeKeyedModelHandler.get_resource_hints"> |
| <code class="descname">get_resource_hints</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/apache_beam/ml/inference/base.html#MaybeKeyedModelHandler.get_resource_hints"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#apache_beam.ml.inference.base.MaybeKeyedModelHandler.get_resource_hints" title="Permalink to this definition">¶</a></dt> |
| <dd></dd></dl> |
| |
| <dl class="method"> |
| <dt id="apache_beam.ml.inference.base.MaybeKeyedModelHandler.batch_elements_kwargs"> |
| <code class="descname">batch_elements_kwargs</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/apache_beam/ml/inference/base.html#MaybeKeyedModelHandler.batch_elements_kwargs"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#apache_beam.ml.inference.base.MaybeKeyedModelHandler.batch_elements_kwargs" title="Permalink to this definition">¶</a></dt> |
| <dd></dd></dl> |
| |
| <dl class="method"> |
| <dt id="apache_beam.ml.inference.base.MaybeKeyedModelHandler.validate_inference_args"> |
| <code class="descname">validate_inference_args</code><span class="sig-paren">(</span><em>inference_args: Optional[Dict[str, Any]]</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/apache_beam/ml/inference/base.html#MaybeKeyedModelHandler.validate_inference_args"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#apache_beam.ml.inference.base.MaybeKeyedModelHandler.validate_inference_args" title="Permalink to this definition">¶</a></dt> |
| <dd></dd></dl> |
| |
| <dl class="method"> |
| <dt id="apache_beam.ml.inference.base.MaybeKeyedModelHandler.update_model_path"> |
| <code class="descname">update_model_path</code><span class="sig-paren">(</span><em>model_path: Optional[str] = None</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/apache_beam/ml/inference/base.html#MaybeKeyedModelHandler.update_model_path"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#apache_beam.ml.inference.base.MaybeKeyedModelHandler.update_model_path" title="Permalink to this definition">¶</a></dt> |
| <dd></dd></dl> |
| |
| <dl class="method"> |
| <dt id="apache_beam.ml.inference.base.MaybeKeyedModelHandler.get_preprocess_fns"> |
| <code class="descname">get_preprocess_fns</code><span class="sig-paren">(</span><span class="sig-paren">)</span> → Iterable[Callable[[Any], Any]]<a class="reference internal" href="_modules/apache_beam/ml/inference/base.html#MaybeKeyedModelHandler.get_preprocess_fns"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#apache_beam.ml.inference.base.MaybeKeyedModelHandler.get_preprocess_fns" title="Permalink to this definition">¶</a></dt> |
| <dd></dd></dl> |
| |
| <dl class="method"> |
| <dt id="apache_beam.ml.inference.base.MaybeKeyedModelHandler.get_postprocess_fns"> |
| <code class="descname">get_postprocess_fns</code><span class="sig-paren">(</span><span class="sig-paren">)</span> → Iterable[Callable[[Any], Any]]<a class="reference internal" href="_modules/apache_beam/ml/inference/base.html#MaybeKeyedModelHandler.get_postprocess_fns"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#apache_beam.ml.inference.base.MaybeKeyedModelHandler.get_postprocess_fns" title="Permalink to this definition">¶</a></dt> |
| <dd></dd></dl> |
| |
| <dl class="method"> |
| <dt id="apache_beam.ml.inference.base.MaybeKeyedModelHandler.share_model_across_processes"> |
| <code class="descname">share_model_across_processes</code><span class="sig-paren">(</span><span class="sig-paren">)</span> → bool<a class="reference internal" href="_modules/apache_beam/ml/inference/base.html#MaybeKeyedModelHandler.share_model_across_processes"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#apache_beam.ml.inference.base.MaybeKeyedModelHandler.share_model_across_processes" title="Permalink to this definition">¶</a></dt> |
| <dd></dd></dl> |
| |
| </dd></dl> |
| |
| <dl class="class"> |
| <dt id="apache_beam.ml.inference.base.RunInference"> |
| <em class="property">class </em><code class="descclassname">apache_beam.ml.inference.base.</code><code class="descname">RunInference</code><span class="sig-paren">(</span><em>model_handler: apache_beam.ml.inference.base.ModelHandler[~ExampleT, ~PredictionT, typing.Any][ExampleT, PredictionT, Any], clock=<module 'time' (built-in)>, inference_args: Optional[Dict[str, Any]] = None, metrics_namespace: Optional[str] = None, *, model_metadata_pcoll: apache_beam.pvalue.PCollection[apache_beam.ml.inference.base.ModelMetadata][apache_beam.ml.inference.base.ModelMetadata] = None, watch_model_pattern: Optional[str] = None, **kwargs</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/apache_beam/ml/inference/base.html#RunInference"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#apache_beam.ml.inference.base.RunInference" title="Permalink to this definition">¶</a></dt> |
| <dd><p>Bases: <a class="reference internal" href="apache_beam.transforms.ptransform.html#apache_beam.transforms.ptransform.PTransform" title="apache_beam.transforms.ptransform.PTransform"><code class="xref py py-class docutils literal notranslate"><span class="pre">apache_beam.transforms.ptransform.PTransform</span></code></a></p> |
| <p>A transform that takes a PCollection of examples (or features) for use |
| on an ML model. The transform then outputs inferences (or predictions) for |
| those examples in a PCollection of PredictionResults that contains the input |
| examples and the output inferences.</p> |
| <p>Models for supported frameworks can be loaded using a URI. Supported |
| services can also be used.</p> |
| <p>This transform attempts to batch examples using the beam.BatchElements |
| transform. Batching can be configured using the ModelHandler.</p> |
| <table class="docutils field-list" frame="void" rules="none"> |
| <col class="field-name" /> |
| <col class="field-body" /> |
| <tbody valign="top"> |
| <tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple"> |
| <li><strong>model_handler</strong> – An implementation of ModelHandler.</li> |
| <li><strong>clock</strong> – A clock implementing time_ns. <em>Used for unit testing.</em></li> |
| <li><strong>inference_args</strong> – Extra arguments for models whose inference call requires |
| extra parameters.</li> |
| <li><strong>metrics_namespace</strong> – Namespace of the transform to collect metrics.</li> |
| <li><strong>model_metadata_pcoll</strong> – PCollection that emits Singleton ModelMetadata |
| containing model path and model name, that is used as a side input |
| to the _RunInferenceDoFn.</li> |
| <li><strong>watch_model_pattern</strong> – A glob pattern used to watch a directory |
| for automatic model refresh.</li> |
| </ul> |
| </td> |
| </tr> |
| </tbody> |
| </table> |
| <dl class="method"> |
| <dt id="apache_beam.ml.inference.base.RunInference.annotations"> |
| <code class="descname">annotations</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/apache_beam/ml/inference/base.html#RunInference.annotations"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#apache_beam.ml.inference.base.RunInference.annotations" title="Permalink to this definition">¶</a></dt> |
| <dd></dd></dl> |
| |
| <dl class="classmethod"> |
| <dt id="apache_beam.ml.inference.base.RunInference.from_callable"> |
| <em class="property">classmethod </em><code class="descname">from_callable</code><span class="sig-paren">(</span><em>model_handler_provider</em>, <em>**kwargs</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/apache_beam/ml/inference/base.html#RunInference.from_callable"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#apache_beam.ml.inference.base.RunInference.from_callable" title="Permalink to this definition">¶</a></dt> |
| <dd><p>Multi-language friendly constructor.</p> |
| <p>Use this constructor with fully_qualified_named_transform to |
| initialize the RunInference transform from PythonCallableSource provided |
| by foreign SDKs.</p> |
| <table class="docutils field-list" frame="void" rules="none"> |
| <col class="field-name" /> |
| <col class="field-body" /> |
| <tbody valign="top"> |
| <tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple"> |
| <li><strong>model_handler_provider</strong> – A callable object that returns ModelHandler.</li> |
| <li><strong>kwargs</strong> – Keyword arguments for model_handler_provider.</li> |
| </ul> |
| </td> |
| </tr> |
| </tbody> |
| </table> |
| </dd></dl> |
| |
| <dl class="method"> |
| <dt id="apache_beam.ml.inference.base.RunInference.expand"> |
| <code class="descname">expand</code><span class="sig-paren">(</span><em>pcoll: apache_beam.pvalue.PCollection[~ExampleT][ExampleT]</em><span class="sig-paren">)</span> → apache_beam.pvalue.PCollection[~PredictionT][PredictionT]<a class="reference internal" href="_modules/apache_beam/ml/inference/base.html#RunInference.expand"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#apache_beam.ml.inference.base.RunInference.expand" title="Permalink to this definition">¶</a></dt> |
| <dd></dd></dl> |
| |
| <dl class="method"> |
| <dt id="apache_beam.ml.inference.base.RunInference.with_exception_handling"> |
| <code class="descname">with_exception_handling</code><span class="sig-paren">(</span><em>*</em>, <em>exc_class=<class 'Exception'></em>, <em>use_subprocess=False</em>, <em>threshold=1</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/apache_beam/ml/inference/base.html#RunInference.with_exception_handling"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#apache_beam.ml.inference.base.RunInference.with_exception_handling" title="Permalink to this definition">¶</a></dt> |
| <dd><p>Automatically provides a dead letter output for skipping bad records. |
| This can allow a pipeline to continue successfully rather than fail or |
| continuously throw errors on retry when bad elements are encountered.</p> |
| <p>This returns a tagged output with two PCollections, the first being the |
| results of successfully processing the input PCollection, and the second |
| being the set of bad batches of records (those which threw exceptions |
| during processing) along with information about the errors raised.</p> |
| <p>For example, one would write:</p> |
| <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">main</span><span class="p">,</span> <span class="n">other</span> <span class="o">=</span> <span class="n">RunInference</span><span class="p">(</span> |
| <span class="n">maybe_error_raising_model_handler</span> |
| <span class="p">)</span><span class="o">.</span><span class="n">with_exception_handling</span><span class="p">()</span> |
| </pre></div> |
| </div> |
| <p>and <cite>main</cite> will be a PCollection of PredictionResults and <cite>other</cite> will |
| contain a <cite>RunInferenceDLQ</cite> object with PCollections containing failed |
| records for each failed inference, preprocess operation, or postprocess |
| operation. To access each collection of failed records, one would write:</p> |
| <blockquote> |
| <div>failed_inferences = other.failed_inferences |
| failed_preprocessing = other.failed_preprocessing |
| failed_postprocessing = other.failed_postprocessing</div></blockquote> |
| <p>failed_inferences is in the form |
| PCollection[Tuple[failed batch, exception]].</p> |
| <p>failed_preprocessing is in the form |
| list[PCollection[Tuple[failed record, exception]]]], where each element of |
| the list corresponds to a preprocess function. These PCollections are |
| in the same order that the preprocess functions are applied.</p> |
| <p>failed_postprocessing is in the form |
| List[PCollection[Tuple[failed record, exception]]]], where each element of |
| the list corresponds to a postprocess function. These PCollections are |
| in the same order that the postprocess functions are applied.</p> |
| <table class="docutils field-list" frame="void" rules="none"> |
| <col class="field-name" /> |
| <col class="field-body" /> |
| <tbody valign="top"> |
| <tr class="field-odd field"><th class="field-name">Parameters:</th><td class="field-body"><ul class="first last simple"> |
| <li><strong>exc_class</strong> – An exception class, or tuple of exception classes, to catch. |
| Optional, defaults to ‘Exception’.</li> |
| <li><strong>use_subprocess</strong> – Whether to execute the DoFn logic in a subprocess. This |
| allows one to recover from errors that can crash the calling process |
| (e.g. from an underlying library causing a segfault), but is |
| slower as elements and results must cross a process boundary. Note |
| that this starts up a long-running process that is used to handle |
| all the elements (until hard failure, which should be rare) rather |
| than a new process per element, so the overhead should be minimal |
| (and can be amortized if there’s any per-process or per-bundle |
| initialization that needs to be done). Optional, defaults to False.</li> |
| <li><strong>threshold</strong> – An upper bound on the ratio of records that can be bad before |
| aborting the entire pipeline. Optional, defaults to 1.0 (meaning |
| up to 100% of records can be bad and the pipeline will still succeed).</li> |
| </ul> |
| </td> |
| </tr> |
| </tbody> |
| </table> |
| </dd></dl> |
| |
| </dd></dl> |
| |
| </div> |
| |
| |
| </div> |
| |
| </div> |
| <footer> |
| |
| <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation"> |
| |
| <a href="apache_beam.ml.inference.huggingface_inference.html" class="btn btn-neutral float-right" title="apache_beam.ml.inference.huggingface_inference module" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a> |
| |
| |
| <a href="apache_beam.ml.inference.html" class="btn btn-neutral float-left" title="apache_beam.ml.inference package" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a> |
| |
| </div> |
| |
| |
| <hr/> |
| |
| <div role="contentinfo"> |
| <p> |
| © Copyright |
| |
| </p> |
| </div> |
| Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/rtfd/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>. |
| |
| </footer> |
| |
| </div> |
| </div> |
| |
| </section> |
| |
| </div> |
| |
| |
| |
| <script type="text/javascript"> |
| jQuery(function () { |
| SphinxRtdTheme.Navigation.enable(true); |
| }); |
| </script> |
| |
| |
| |
| |
| |
| |
| </body> |
| </html> |