Skip to main content

MLflowClient

Struct MLflowClient 

Source
pub struct MLflowClient { /* private fields */ }
Expand description

MLflow client for experiment tracking

Implementations§

Source§

impl MLflowClient

Source

pub fn new(config: MLflowConfig) -> Self

Create a new MLflow client

§Arguments
  • config - MLflow configuration
§Example
use trustformers_debug::{MLflowClient, MLflowConfig};

let config = MLflowConfig::default();
let client = MLflowClient::new(config);
Source

pub fn set_tracking_uri(&mut self, uri: impl Into<String>)

Set the tracking URI

§Arguments
  • uri - MLflow tracking server URI
Source

pub async fn start_experiment( &mut self, name: impl Into<String>, ) -> Result<String>

Start a new experiment.

In TrackingMode::Http this looks the experiment up by name (GET experiments/get-by-name) and creates it (POST experiments/create) if it doesn’t exist yet – a real round trip to tracking_uri, which fails with a real transport/HTTP error if the server is unreachable or rejects the request. In TrackingMode::LocalOnly no request is made and a synthetic local-* id is generated instead, so callers can always tell the two apart.

§Arguments
  • name - Experiment name
§Returns

Experiment ID

Source

pub async fn start_run(&mut self, run_name: Option<&str>) -> Result<String>

Start a new run within the current experiment.

Real POST runs/create in TrackingMode::Http; a synthetic local-* id with no network access in TrackingMode::LocalOnly.

§Arguments
  • run_name - Optional run name
§Returns

Run ID

Source

pub async fn end_run(&mut self, status: RunStatus) -> Result<()>

End the current run: flushes any cached metrics/params/tags, then (in TrackingMode::Http) sets the run’s terminal status via a real POST runs/update call.

§Arguments
  • status - Final run status
Source

pub fn log_param( &mut self, key: impl Into<String>, value: impl ToString, ) -> Result<()>

Log a parameter. Cached locally; delivered to the tracking server by MLflowClient::flush / MLflowClient::end_run (never on every call – a per-call network round trip for every logged value would be prohibitively slow for training loops that log every step).

§Arguments
  • key - Parameter name
  • value - Parameter value
Source

pub fn log_params(&mut self, params: HashMap<String, String>) -> Result<()>

Log multiple parameters at once

§Arguments
  • params - Map of parameter names to values
Source

pub fn log_tag( &mut self, key: impl Into<String>, value: impl ToString, ) -> Result<()>

Log a tag. Cached locally, delivered the same way as parameters.

§Arguments
  • key - Tag name
  • value - Tag value
Source

pub fn log_tags(&mut self, tags: HashMap<String, String>) -> Result<()>

Log multiple tags at once

§Arguments
  • tags - Map of tag names to values
Source

pub fn log_metric( &mut self, key: impl Into<String>, value: f64, step: i64, ) -> Result<()>

Log a metric at a specific step. Cached locally; see MLflowClient::log_param for why this does not hit the network directly.

§Arguments
  • key - Metric name
  • value - Metric value
  • step - Step number
Source

pub fn log_metrics( &mut self, metrics: HashMap<String, f64>, step: i64, ) -> Result<()>

Log multiple metrics at once

§Arguments
  • metrics - Map of metric names to values
  • step - Step number
Source

pub fn log_tensor_stats( &mut self, prefix: &str, tensor: &Tensor, step: i64, ) -> Result<()>

Log tensor statistics as metrics

§Arguments
  • prefix - Metric name prefix
  • tensor - Tensor to analyze
  • step - Step number
Source

pub fn log_array_stats( &mut self, prefix: &str, array: &Array1<f64>, step: i64, ) -> Result<()>

Log array statistics as metrics

§Arguments
  • prefix - Metric name prefix
  • array - Array to analyze
  • step - Step number
Source

pub async fn flush(&self) -> Result<()>

Flush cached metrics, parameters and tags to the MLflow tracking server via a real POST runs/log-batch call (chunked to respect MLflow’s per-request limits of 1000 metrics / 100 params / 100 tags). A no-op in TrackingMode::LocalOnly – the caches themselves are the record in that mode – and a no-op when there is nothing cached or no active run.

Source

pub fn log_artifact( &self, local_path: impl AsRef<Path>, artifact_path: Option<&str>, artifact_type: ArtifactType, ) -> Result<()>

Log an artifact (file) to the local artifact_dir cache.

Unlike Self::log_metric/Self::log_param/Self::log_tag, this method does not upload to the remote MLflow tracking server’s artifact store, even in TrackingMode::Http – MLflow’s artifact storage is backend-dependent (local disk, S3, GCS, Azure Blob, DBFS, …) and there is no single REST endpoint this client can target without knowing which backend the server is configured with. Uploading real artifact bytes to a remote MLflow server is intentionally out of scope for this client; only the experiment/run lifecycle and metrics/params/tags are delivered over HTTP. Callers that need artifacts on the actual tracking server must copy from artifact_dir themselves via whatever channel the server’s artifact backend expects.

§Arguments
  • local_path - Path to local file
  • artifact_path - Optional path within the local artifact cache
  • artifact_type - Type of artifact
Source

pub fn log_model( &self, model_path: impl AsRef<Path>, model_name: Option<&str>, ) -> Result<()>

Log a model artifact

§Arguments
  • model_path - Path to model file
  • model_name - Optional model name
Source

pub fn log_plot( &self, plot_path: impl AsRef<Path>, plot_name: Option<&str>, ) -> Result<()>

Log a plot/visualization

§Arguments
  • plot_path - Path to plot file
  • plot_name - Optional plot name
Source

pub fn log_report(&self, content: &str, filename: &str) -> Result<()>

Log a text report

§Arguments
  • content - Report content
  • filename - Report filename
Source

pub fn get_run_info(&self) -> Option<RunInfo>

Get current run information. The start_time reflects when MLflowClient::start_run was actually called (real wall-clock ms since epoch), not a placeholder.

Source

pub fn get_params(&self) -> HashMap<String, String>

Get all logged parameters

Source

pub fn get_metrics(&self) -> HashMap<String, Vec<MetricPoint>>

Get all logged metrics

Source

pub fn get_tags(&self) -> HashMap<String, String>

Get all logged tags

Trait Implementations§

Source§

impl Debug for MLflowClient

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<SS, SP> SupersetOf<SS> for SP
where SS: SubsetOf<SP>,

Source§

fn to_subset(&self) -> Option<SS>

The inverse inclusion map: attempts to construct self from the equivalent element of its superset. Read more
Source§

fn is_in_subset(&self) -> bool

Checks if self is actually part of its subset T (and can be converted to it).
Source§

fn to_subset_unchecked(&self) -> SS

Use with care! Same as self.to_subset but without any property checks. Always succeeds.
Source§

fn from_subset(element: &SS) -> SP

The inclusion map: converts self to the equivalent element of its superset.
Source§

impl<SS, SP> SupersetOf<SS> for SP
where SS: SubsetOf<SP>,

Source§

fn to_subset(&self) -> Option<SS>

The inverse inclusion map: attempts to construct self from the equivalent element of its superset. Read more
Source§

fn is_in_subset(&self) -> bool

Checks if self is actually part of its subset T (and can be converted to it).
Source§

fn to_subset_unchecked(&self) -> SS

Use with care! Same as self.to_subset but without any property checks. Always succeeds.
Source§

fn from_subset(element: &SS) -> SP

The inclusion map: converts self to the equivalent element of its superset.
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more