blob: 9d6798c6d5398358f9cecf5fb20da49c15361bf1 [file] [log] [blame]
<!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 &mdash; 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> &raquo;</li>
<li><a href="apache_beam.ml.html">apache_beam.ml package</a> &raquo;</li>
<li><a href="apache_beam.ml.inference.html">apache_beam.ml.inference package</a> &raquo;</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> &#x2192; 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> &#x2192; 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> &#x2192; 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> &#x2192; 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> &#x2192; 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> &#x2192; 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> &#x2192; 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> &#x2192; 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> &#x2192; 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> &#x2192; 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> &#x2192; 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> &#x2192; 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>&lt;cohort_key&gt;-&lt;metric_name&gt;</cite>, where <cite>&lt;cohort_key&gt;</cite> can be any key selected
from the cohort. When model updates occur, the metrics will be reported in
the form <cite>&lt;cohort_key&gt;-&lt;model id&gt;-&lt;metric_name&gt;</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 &lt;https://beam.apache.org/documentation/sdks/python-machine-learning/#use-a-keyed-modelhandler&gt;_</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 &lt;https://beam.apache.org/documentation/sdks/python-machine-learning/#use-a-keyed-modelhandler&gt;_</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> &#x2192; 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> &#x2192; 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> &#x2192; 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> &#x2192; 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> &#x2192; 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> &#x2192; 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> &#x2192; 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> &#x2192; 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> &#x2192; 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> &#x2192; 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> &#x2192; 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> &#x2192; 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> &#x2192; 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=&lt;module 'time' (built-in)&gt;, 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> &#x2192; 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=&lt;class 'Exception'&gt;</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>
&copy; 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>