{"componentChunkName":"component---src-templates-post-template-js","path":"/posts/mlflow-trackingapi-quickstart","result":{"data":{"markdownRemark":{"id":"9744d8da-f215-547e-9fb2-b5710628ea0a","html":"<p>MLFlow を少しさわってみようと思い、特に気になった TrackingAPI をさわってみつつ、データがどう保存されるのかを覗いてみました。</p>\n<h2 id=\"環境\" style=\"position:relative;\"><a href=\"#%E7%92%B0%E5%A2%83\" aria-label=\"環境 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>環境</h2>\n<ul>\n<li>Ubuntu 20.04.3 LTS</li>\n<li>Python 3.8.3</li>\n<li>mlflow 1.20.0</li>\n</ul>\n<h2 id=\"mlflow-のインストール\" style=\"position:relative;\"><a href=\"#mlflow-%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB\" aria-label=\"mlflow のインストール permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>MLFlow のインストール</h2>\n<p>MLFlow 自体は <code class=\"language-text\">pip install mlflow</code> で簡単に導入できます。</p>\n<h2 id=\"サンプルコードの実行\" style=\"position:relative;\"><a href=\"#%E3%82%B5%E3%83%B3%E3%83%97%E3%83%AB%E3%82%B3%E3%83%BC%E3%83%89%E3%81%AE%E5%AE%9F%E8%A1%8C\" aria-label=\"サンプルコードの実行 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>サンプルコードの実行</h2>\n<p><a href=\"https://mlflow.org/docs/latest/quickstart.html#using-the-tracking-api\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">公式ドキュメントの Quickstart</a> に書かれている以下の内容のファイルを作成します。</p>\n<blockquote>\n<div class=\"gatsby-highlight\" data-language=\"python\"><pre class=\"language-python\"><code class=\"language-python\"><span class=\"token keyword\">import</span> os\n<span class=\"token keyword\">from</span> random <span class=\"token keyword\">import</span> random<span class=\"token punctuation\">,</span> randint\n<span class=\"token keyword\">from</span> mlflow <span class=\"token keyword\">import</span> log_metric<span class=\"token punctuation\">,</span> log_param<span class=\"token punctuation\">,</span> log_artifacts\n\n<span class=\"token keyword\">if</span> __name__ <span class=\"token operator\">==</span> <span class=\"token string\">\"__main__\"</span><span class=\"token punctuation\">:</span>\n    <span class=\"token comment\"># Log a parameter (key-value pair)</span>\n    log_param<span class=\"token punctuation\">(</span><span class=\"token string\">\"param1\"</span><span class=\"token punctuation\">,</span> randint<span class=\"token punctuation\">(</span><span class=\"token number\">0</span><span class=\"token punctuation\">,</span> <span class=\"token number\">100</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span>\n\n    <span class=\"token comment\"># Log a metric; metrics can be updated throughout the run</span>\n    log_metric<span class=\"token punctuation\">(</span><span class=\"token string\">\"foo\"</span><span class=\"token punctuation\">,</span> random<span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span>\n    log_metric<span class=\"token punctuation\">(</span><span class=\"token string\">\"foo\"</span><span class=\"token punctuation\">,</span> random<span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">+</span> <span class=\"token number\">1</span><span class=\"token punctuation\">)</span>\n    log_metric<span class=\"token punctuation\">(</span><span class=\"token string\">\"foo\"</span><span class=\"token punctuation\">,</span> random<span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">+</span> <span class=\"token number\">2</span><span class=\"token punctuation\">)</span>\n\n    <span class=\"token comment\"># Log an artifact (output file)</span>\n    <span class=\"token keyword\">if</span> <span class=\"token keyword\">not</span> os<span class=\"token punctuation\">.</span>path<span class=\"token punctuation\">.</span>exists<span class=\"token punctuation\">(</span><span class=\"token string\">\"outputs\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">:</span>\n        os<span class=\"token punctuation\">.</span>makedirs<span class=\"token punctuation\">(</span><span class=\"token string\">\"outputs\"</span><span class=\"token punctuation\">)</span>\n    <span class=\"token keyword\">with</span> <span class=\"token builtin\">open</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"outputs/test.txt\"</span><span class=\"token punctuation\">,</span> <span class=\"token string\">\"w\"</span><span class=\"token punctuation\">)</span> <span class=\"token keyword\">as</span> f<span class=\"token punctuation\">:</span>\n        f<span class=\"token punctuation\">.</span>write<span class=\"token punctuation\">(</span><span class=\"token string\">\"hello world!\"</span><span class=\"token punctuation\">)</span>\n    log_artifacts<span class=\"token punctuation\">(</span><span class=\"token string\">\"outputs\"</span><span class=\"token punctuation\">)</span></code></pre></div>\n</blockquote>\n<p>python コマンドで実行します。</p>\n<div class=\"gatsby-highlight\" data-language=\"console\"><pre class=\"language-console\"><code class=\"language-console\">$ python mlflow_tracking.py</code></pre></div>\n<p>上記のサンプルコードが実行され、<code class=\"language-text\">log_metric</code>、<code class=\"language-text\">log_param</code>、<code class=\"language-text\">log_artifacts</code> で指定した内容が保存されました。</p>\n<p>保存された内容は、<code class=\"language-text\">mlflow ui</code> コマンドで起動した Web UI で可視化できます。</p>\n<h2 id=\"できたファイルの一覧\" style=\"position:relative;\"><a href=\"#%E3%81%A7%E3%81%8D%E3%81%9F%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%AE%E4%B8%80%E8%A6%A7\" aria-label=\"できたファイルの一覧 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>できたファイルの一覧</h2>\n<p>デフォルトでは ./mlruns ディレクトリ以下にデータが出力されるようなので、それを見ていきます。</p>\n<p>まず、tree コマンドで、出力されたファイルの一覧を見てみます。</p>\n<div class=\"gatsby-highlight\" data-language=\"console\"><pre class=\"language-console\"><code class=\"language-console\">$ tree\n.\n├── mlflow_tracking.py\n├── mlruns\n│   └── 0\n│       ├── d0b221068a7147afb0177cd3fb9fb5cf\n│       │   ├── artifacts\n│       │   │   └── test.txt\n│       │   ├── meta.yaml\n│       │   ├── metrics\n│       │   │   └── foo\n│       │   ├── params\n│       │   │   └── param1\n│       │   └── tags\n│       │       ├── mlflow.source.name\n│       │       ├── mlflow.source.type\n│       │       └── mlflow.user\n│       └── meta.yaml\n└── outputs\n    └── test.txt\n\n8 directories, 10 files</code></pre></div>\n<h2 id=\"各ファイルの中身\" style=\"position:relative;\"><a href=\"#%E5%90%84%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%AE%E4%B8%AD%E8%BA%AB\" aria-label=\"各ファイルの中身 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>各ファイルの中身</h2>\n<p>それでは、各ファイルについて見ていきます。</p>\n<h3 id=\"mlruns0-ディレクトリ\" style=\"position:relative;\"><a href=\"#mlruns0-%E3%83%87%E3%82%A3%E3%83%AC%E3%82%AF%E3%83%88%E3%83%AA\" aria-label=\"mlruns0 ディレクトリ permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>mlruns/0 ディレクトリ</h3>\n<h4 id=\"metayaml\" style=\"position:relative;\"><a href=\"#metayaml\" aria-label=\"metayaml permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>meta.yaml</h4>\n<div class=\"gatsby-highlight\" data-language=\"text\"><pre class=\"language-text\"><code class=\"language-text\">artifact_location: file:///home/oshima/mlflow_tracking/mlruns/0\nexperiment_id: &#39;0&#39;\nlifecycle_stage: active\nname: Default</code></pre></div>\n<p>「0」という experiment に対するメタデータのようです。</p>\n<h3 id=\"mlruns0d0b221068a7147afb0177cd3fb9fb5cf-ディレクトリ\" style=\"position:relative;\"><a href=\"#mlruns0d0b221068a7147afb0177cd3fb9fb5cf-%E3%83%87%E3%82%A3%E3%83%AC%E3%82%AF%E3%83%88%E3%83%AA\" aria-label=\"mlruns0d0b221068a7147afb0177cd3fb9fb5cf ディレクトリ permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>mlruns/0/d0b221068a7147afb0177cd3fb9fb5cf ディレクトリ</h3>\n<h4 id=\"metayaml-1\" style=\"position:relative;\"><a href=\"#metayaml-1\" aria-label=\"metayaml 1 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>meta.yaml</h4>\n<div class=\"gatsby-highlight\" data-language=\"text\"><pre class=\"language-text\"><code class=\"language-text\">artifact_uri: file:///home/oshima/mlflow_tracking/mlruns/0/d0b221068a7147afb0177cd3fb9fb5cf/artifacts\nend_time: 1629894186654\nentry_point_name: &#39;&#39;\nexperiment_id: &#39;0&#39;\nlifecycle_stage: active\nname: &#39;&#39;\nrun_id: d0b221068a7147afb0177cd3fb9fb5cf\nrun_uuid: d0b221068a7147afb0177cd3fb9fb5cf\nsource_name: &#39;&#39;\nsource_type: 4\nsource_version: &#39;&#39;\nstart_time: 1629894186647\nstatus: 3\ntags: []\nuser_id: oshima</code></pre></div>\n<p>「d0b221068a7147afb0177cd3fb9fb5cf」という run に対するメタデータのようです。</p>\n<h4 id=\"artifactstesttxt\" style=\"position:relative;\"><a href=\"#artifactstesttxt\" aria-label=\"artifactstesttxt permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>artifacts/test.txt</h4>\n<div class=\"gatsby-highlight\" data-language=\"console\"><pre class=\"language-console\"><code class=\"language-console\">$ cat test.txt\nhello world!</code></pre></div>\n<p>artifacts ディレクトリ以下には、log_artifact で指定したファイルが出力されるようです。</p>\n<h4 id=\"metricsfoo\" style=\"position:relative;\"><a href=\"#metricsfoo\" aria-label=\"metricsfoo permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>metrics/foo</h4>\n<div class=\"gatsby-highlight\" data-language=\"text\"><pre class=\"language-text\"><code class=\"language-text\">1629894186651 0.10226160404903561 0\n1629894186652 1.4250551980391988 0\n1629894186652 2.904784967403418 0</code></pre></div>\n<p>log_metric で指定したログが、UNIX 時間とともに記録されています。</p>\n<h4 id=\"paramsparam1\" style=\"position:relative;\"><a href=\"#paramsparam1\" aria-label=\"paramsparam1 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>params/param1</h4>\n<div class=\"gatsby-highlight\" data-language=\"text\"><pre class=\"language-text\"><code class=\"language-text\">16</code></pre></div>\n<p>log_param で指定した値です。</p>\n<h4 id=\"tagsmlflowsourcename\" style=\"position:relative;\"><a href=\"#tagsmlflowsourcename\" aria-label=\"tagsmlflowsourcename permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>tags/mlflow.source.name</h4>\n<div class=\"gatsby-highlight\" data-language=\"text\"><pre class=\"language-text\"><code class=\"language-text\">mlflow_tracking.py</code></pre></div>\n<h4 id=\"tagsmlflowsourcetype\" style=\"position:relative;\"><a href=\"#tagsmlflowsourcetype\" aria-label=\"tagsmlflowsourcetype permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>tags/mlflow.source.type</h4>\n<div class=\"gatsby-highlight\" data-language=\"text\"><pre class=\"language-text\"><code class=\"language-text\">LOCAL</code></pre></div>\n<h4 id=\"tagsmlflowuser\" style=\"position:relative;\"><a href=\"#tagsmlflowuser\" aria-label=\"tagsmlflowuser permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>tags/mlflow.user</h4>\n<div class=\"gatsby-highlight\" data-language=\"text\"><pre class=\"language-text\"><code class=\"language-text\">oshima</code></pre></div>\n<p>tags 以下は、実行されたファイルや実行環境についての記録のようです。</p>\n<h2 id=\"感想\" style=\"position:relative;\"><a href=\"#%E6%84%9F%E6%83%B3\" aria-label=\"感想 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>感想</h2>\n<p>以上、MLFlow の TrackingAPI で出力されるデータを覗いてみました。</p>\n<p>ここまでさわってみて、MLFlow の TrackingAPI は、非常に簡単に導入できる素晴らしいツールだなと思いました。</p>\n<p>パラメータなどを記録したいというユースケースは非常によくあることで、そういった際に、独自実装せずに MLFlow というライブラリで解決できるのは、とても便利だと思います。</p>\n<p><a href=\"https://mlflow.org/docs/latest/tracking.html#automatic-logging\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Automatic Logging</a> を使うことで、対応するライブラリのパラメータは自動的に保存されるとのことで、これもとても便利そうです。</p>\n<h2 id=\"保存先について\" style=\"position:relative;\"><a href=\"#%E4%BF%9D%E5%AD%98%E5%85%88%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6\" aria-label=\"保存先について permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>保存先について</h2>\n<p><a href=\"https://mlflow.org/docs/latest/tracking.html#id12\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">ドキュメント</a> を見たところ、データの保存先としては RDB やオブジェクトストレージなどを組み合わせて使えるようです。</p>\n<p>チームで利用する際は、RDS などの DBaaS と S3 などを組み合わせて使うことになるのだと思います。</p>\n<p>とはいえ、まずは今回試したように、ローカルのファイルに出力するところからでも気軽に使い始められそうです。</p>","fields":{"slug":"/posts/mlflow-trackingapi-quickstart","tagSlugs":["/tag/mlops/"],"autoRecommendPosts":["what-is-executing-a-command-on-bash","best-way-to-setup-docker-volume","cicd-conference-2021","linux-kernel-build-install"]},"frontmatter":{"date":"2021-08-25T12:55:21.713Z","description":"MLFlow を少しさわってみようと思い、特に気になった TrackingAPI をさわってみつつ、データがどう保存されるのかを覗いてみました。","tags":["mlops"],"title":"MLFlow の TrackingAPI を Quickstart して保存されたデータを覗いてみる","socialImage":null,"recommendPosts":["https://www.kanzennirikaisita.com/posts/software-developer-books-index"]}}},"pageContext":{"slug":"/posts/mlflow-trackingapi-quickstart"}},"staticQueryHashes":["251939775","3942705351","401334301"]}