[
https://issues.apache.org/jira/browse/BEAM-14255?focusedWorklogId=771974&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-771974
]
ASF GitHub Bot logged work on BEAM-14255:
-----------------------------------------
Author: ASF GitHub Bot
Created on: 18/May/22 15:33
Start Date: 18/May/22 15:33
Worklog Time Spent: 10m
Work Description: TheNeuralBit commented on code in PR #17671:
URL: https://github.com/apache/beam/pull/17671#discussion_r876045980
##########
sdks/python/apache_beam/ml/inference/base_test.py:
##########
@@ -133,14 +133,14 @@ def test_timing_metrics(self):
MetricsFilter().with_name('inference_batch_latency_micro_secs')))
Review Comment:
I think this metric should be renamed if we're changing the precision
##########
sdks/python/apache_beam/ml/inference/base.py:
##########
@@ -150,27 +155,24 @@ def update(
class _RunInferenceDoFn(beam.DoFn):
"""A DoFn implementation generic to frameworks."""
- def __init__(self, model_loader: ModelLoader, clock=None):
+ def __init__(self, model_loader: ModelLoader, clock):
self._model_loader = model_loader
self._inference_runner = model_loader.get_inference_runner()
self._shared_model_handle = shared.Shared()
self._metrics_collector = _MetricsCollector(
self._inference_runner.get_metrics_namespace())
self._clock = clock
- if not clock:
- self._clock = _ClockFactory.make_clock()
self._model = None
def _load_model(self):
def load():
"""Function for constructing shared LoadedModel."""
memory_before = _get_current_process_memory_in_bytes()
- start_time = self._clock.get_current_time_in_microseconds()
+ start_time = _to_milliseconds(self._clock.time())
model = self._model_loader.load_model()
- end_time = self._clock.get_current_time_in_microseconds()
+ end_time = _to_milliseconds(self._clock.time())
Review Comment:
A couple questions here:
- why change the units to milliseconds?
- maybe we should use
[time_ns](https://docs.python.org/3/library/time.html#time.time_ns) instead?
The time docs say time_ns should be preferred to avoid precision loss. It's py
3.7+ only, but we've dropped support for 3.6 now
Issue Time Tracking
-------------------
Worklog Id: (was: 771974)
Time Spent: 1h 50m (was: 1h 40m)
> Drop the clock abastraction and just use time.time for time measurements
> ------------------------------------------------------------------------
>
> Key: BEAM-14255
> URL: https://issues.apache.org/jira/browse/BEAM-14255
> Project: Beam
> Issue Type: Sub-task
> Components: sdk-py-core
> Reporter: Ryan Thompson
> Assignee: Ryan Thompson
> Priority: P2
> Time Spent: 1h 50m
> Remaining Estimate: 0h
>
> Right now the TFX-BSL Runinference library uses an abstract clock class to
> get microsecond precision, but time.time should give an adequate precision.
>
> Investigate removing the clock abstraction and just using time.time.
>
> Alternatively, comment why the abstraction is useful.
--
This message was sent by Atlassian Jira
(v8.20.7#820007)