<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title>JupyterLab - 태그 - lee's blog</title><link>http://ken-0913.github.io/myblog/tags/jupyterlab/</link><description>JupyterLab - 태그 - lee's blog</description><generator>Hugo -- gohugo.io</generator><language>ko-kr</language><managingEditor>hyeonjae0913@gmail.com (ken-0913)</managingEditor><webMaster>hyeonjae0913@gmail.com (ken-0913)</webMaster><lastBuildDate>Thu, 29 Oct 2026 18:00:00 +0900</lastBuildDate><atom:link href="http://ken-0913.github.io/myblog/tags/jupyterlab/" rel="self" type="application/rss+xml"/><item><title>MLPE 스터디 2주차 - Ch4.1 더 해 보기: EDA 막대그래프 position fill과 stack 비교</title><link>http://ken-0913.github.io/myblog/posts/mlpe/mlpe-04-2-eda-fill-vs-stack/</link><pubDate>Thu, 29 Oct 2026 18:00:00 +0900</pubDate><author><name>ken-0913</name></author><guid>http://ken-0913.github.io/myblog/posts/mlpe/mlpe-04-2-eda-fill-vs-stack/</guid><description><![CDATA[<div class="featured-image">
                <img src="images/banners/mlpe-04-2-eda-fill-vs-stack-97988625.png" referrerpolicy="no-referrer">
            </div><p>EDA run의 막대그래프 인자 <code>position=&quot;fill&quot;</code>을 <code>&quot;stack&quot;</code>으로 바꿔 run을 하나 더 만들고, 두 그래프가 무엇을 보여 주는지 비교한다.</p>
<h2 id="1-무엇을-바꾸나" class="headerLink">
    <a href="#1-%eb%ac%b4%ec%97%87%ec%9d%84-%eb%b0%94%ea%be%b8%eb%82%98" class="header-mark"></a>1. 무엇을 바꾸나</h2><p>책의 EDA 셀은 범주형 컬럼 8개마다 막대그래프를 그린다. 막대 하나가 컬럼의 값 하나(예: Workclass의 Private)이고, 막대 안은 소득 구간 Target(<code>&lt;=50K</code>, <code>&gt;50K</code>)별 색으로 나뉜다. <code>geom_bar</code>의 <code>position</code> 인자가 두 색을 어떻게 쌓을지 정한다.</p>
<table>
	<thead>
			<tr>
					<th><code>position</code></th>
					<th>막대 길이</th>
					<th>읽을 수 있는 것</th>
			</tr>
	</thead>
	<tbody>
			<tr>
					<td><code>&quot;fill&quot;</code> (책 코드)</td>
					<td>모든 막대가 1.0으로 같다</td>
					<td>값마다 고소득(<code>&gt;50K</code>) <strong>비율</strong></td>
			</tr>
			<tr>
					<td><code>&quot;stack&quot;</code> (plotnine 기본값)</td>
					<td>그 값의 사람 수만큼</td>
					<td>값마다 <strong>건수</strong>와 그 안의 고소득 수</td>
			</tr>
	</tbody>
</table>
<h2 id="2-실행" class="headerLink">
    <a href="#2-%ec%8b%a4%ed%96%89" class="header-mark"></a>2. 실행</h2><p>JupyterLab에서 책 노트북 옆에 새 노트북 <code>eda_fill_vs_stack.ipynb</code>를 만들고, 4.1절과 같은 <code>chapter-4</code> 커널로 실행했다. 첫 셀은 데이터를 읽고 실험 <code>income-classifier</code>를 고르며, 둘째 셀이 run 두 개를 만든다. 책 셀과 다른 곳은 <code>position</code>을 바꿔 가며 두 번 돈다는 것과, 어느 쪽인지 알 수 있게 <code>position</code>을 파라미터로 기록한다는 것뿐이다.</p>]]></description></item><item><title>MLPE 스터디 2주차 - Ch4.2 홈랩 Kubernetes에 Feast 피처 스토어 올리고 실습하기</title><link>http://ken-0913.github.io/myblog/posts/mlpe/mlpe-04-mlflow-feast/</link><pubDate>Mon, 26 Oct 2026 20:00:00 +0900</pubDate><author><name>ken-0913</name></author><guid>http://ken-0913.github.io/myblog/posts/mlpe/mlpe-04-mlflow-feast/</guid><description><![CDATA[<div class="featured-image">
                <img src="images/banners/mlpe-04-mlflow-feast-36a0caef.png" referrerpolicy="no-referrer">
            </div><p><a href="../mlpe-04-mlflow-install/" rel="">앞 글</a>에서 만든 홈랩 환경에 피처 스토어 Feast를 올려, 학습과 추론이 같은 피처를 꺼내 쓰는 책 4.2절 실습을 진행한다.</p>
<p><a class="lightgallery" href="/myblog/posts/mlpe/mlpe-04-mlflow-feast/feast-pipeline-overview.svg" title="4.1절 MLOps 파이프라인 그림에서 피처 스토어만 강조한 그림. 데이터 웨어하우스 자리의 parquet 3개를 RustFS 오프라인 스토어에 두고, 모델 학습은 get_historical_features 로 시점 기준 피처를, 모델 API 는 materialize 로 Redis 에 옮긴 최신 피처를 get_online_features 와 피처 서버(:6566)로 가져간다. 오른쪽 카드에 오프라인 스토어, 레지스트리, materialize 30,162키, 학습·추론 조회 메서드를 정리했다" data-thumbnail="/myblog/posts/mlpe/mlpe-04-mlflow-feast/feast-pipeline-overview.svg"><img class="tw:inline" loading="lazy" src='/myblog/posts/mlpe/mlpe-04-mlflow-feast/feast-pipeline-overview.svg'   alt="4.1절 MLOps 파이프라인 그림에서 피처 스토어만 강조한 그림. 데이터 웨어하우스 자리의 parquet 3개를 RustFS 오프라인 스토어에 두고, 모델 학습은 get_historical_features 로 시점 기준 피처를, 모델 API 는 materialize 로 Redis 에 옮긴 최신 피처를 get_online_features 와 피처 서버(:6566)로 가져간다. 오른쪽 카드에 오프라인 스토어, 레지스트리, materialize 30,162키, 학습·추론 조회 메서드를 정리했다"  ></a></p>]]></description></item><item><title>MLPE 스터디 2주차 - Ch4.1 홈랩 MLflow로 실험 추적과 모델 레지스트리 실습하기</title><link>http://ken-0913.github.io/myblog/posts/mlpe/mlpe-04-1-mlflow-practice/</link><pubDate>Sun, 25 Oct 2026 20:00:00 +0900</pubDate><author><name>ken-0913</name></author><guid>http://ken-0913.github.io/myblog/posts/mlpe/mlpe-04-1-mlflow-practice/</guid><description><![CDATA[<div class="featured-image">
                <img src="images/banners/mlpe-04-1-mlflow-practice-e05eb6c0.png" referrerpolicy="no-referrer">
            </div><p>책 4.1절(실험 추적과 모델 레지스트리) 노트북을 홈랩 MLflow에서 돌린 기록이다. 실습 환경(MLflow, Postgres, RustFS, JupyterLab)을 Kubernetes에 올린 과정은 <a href="../mlpe-04-mlflow-install/" rel="">앞 글</a>에 있다.</p>
<p>책은 로컬 <code>mlflow ui</code>와 Kubeflow에 딸린 MinIO를 쓰지만 여기서는 Kubernetes 위의 MLflow, Postgres, RustFS를 썼다. RustFS는 홈랩에서 이미 쓰고 있어서 골랐고 다른 이유는 없다.</p>
<h2 id="1-한눈에-보기" class="headerLink">
    <a href="#1-%ed%95%9c%eb%88%88%ec%97%90-%eb%b3%b4%ea%b8%b0" class="header-mark"></a>1. 한눈에 보기</h2><p>아래는 이번 절에서 실습할 파이프라인이다. 초록 칸은 Jupyter 노트북 셀로 직접 실행한 단계이고, 주황 칸은 노트북이 만든 결과를 MLflow에 기록하고 등록한 곳이다.</p>
<p><a class="lightgallery" href="/myblog/posts/mlpe/mlpe-04-1-mlflow-practice/pipeline-6-1-overview.svg" title="MLOps 파이프라인에서 데이터 수집·준비, 모델 학습, 모델 평가·검증을 Jupyter 노트북 셀로 직접 실행하고, 결과를 MLflow 실험 추적에 기록하고 1등 모델을 모델 레지스트리에 등록한 이 글의 전체 범위. 점선 오케스트레이션 자리의 자동화는 5장 Kubeflow Pipelines 몫이다" data-thumbnail="/myblog/posts/mlpe/mlpe-04-1-mlflow-practice/pipeline-6-1-overview.svg"><img class="tw:inline" loading="lazy" src='/myblog/posts/mlpe/mlpe-04-1-mlflow-practice/pipeline-6-1-overview.svg'   alt="MLOps 파이프라인에서 데이터 수집·준비, 모델 학습, 모델 평가·검증을 Jupyter 노트북 셀로 직접 실행하고, 결과를 MLflow 실험 추적에 기록하고 1등 모델을 모델 레지스트리에 등록한 이 글의 전체 범위. 점선 오케스트레이션 자리의 자동화는 5장 Kubeflow Pipelines 몫이다"  ></a></p>]]></description></item><item><title>MLPE 스터디 2주차 - Ch4~5 홈랩 Kubernetes에 MLflow, Feast, Kubeflow Pipelines 설치하기</title><link>http://ken-0913.github.io/myblog/posts/mlpe/mlpe-04-mlflow-install/</link><pubDate>Sat, 24 Oct 2026 20:00:00 +0900</pubDate><author><name>ken-0913</name></author><guid>http://ken-0913.github.io/myblog/posts/mlpe/mlpe-04-mlflow-install/</guid><description><![CDATA[<div class="featured-image">
                <img src="images/banners/mlpe-04-mlflow-install-01f7e9a6.png" referrerpolicy="no-referrer">
            </div><p><code>Machine Learning Platform Engineering</code> 4장은 MLflow로 실험과 모델을 추적하고 Feast로 피처를 관리하며, 5장은 둘을 Kubeflow Pipelines로 이어 배치 추론 파이프라인을 만든다. 2주차 실습은 1주차에 설치한 홈랩 Kubernetes 클러스터 위에서 그대로 진행한다. 이번에는 Kubernetes 클러스터에 MLflow, Feast, Kubeflow Pipelines를 올린다.</p>
<h2 id="1-전체-구성" class="headerLink">
    <a href="#1-%ec%a0%84%ec%b2%b4-%ea%b5%ac%ec%84%b1" class="header-mark"></a>1. 전체 구성</h2><p><a class="lightgallery" href="/myblog/posts/mlpe/mlpe-04-mlflow-install/homelab-platform.svg" title="홈 LAN 안의 홈랩 Kubernetes 클러스터(v1.36.5)에 올린 2주차 실습 플랫폼 전체 구성. mlflow 네임스페이스에 JupyterLab(192.168.0.239), MLflow 3.16.0(192.168.0.238), Postgres 18, Secret 4개, RustFS 1.0.3(192.168.0.237, 버킷 6개)이 있고, feast 네임스페이스에 Feast 서버·UI(192.168.0.240, 241), apply·materialize Job, Redis 8.10.2 가, kubeflow 네임스페이스에 ml-pipeline UI·API 2.17.3(192.168.0.242), 실행 Pod, MySQL 8.4 가 있다. 기존 argo 네임스페이스의 workflow-controller v4.1.4 가 KFP Workflow 를 받아 실행 Pod 를 만들고 cert-manager 가 cache-server 인증서를 준다. 노트북은 MLflow 에 run 과 지표를, RustFS 에 아티팩트를 직접 올리고, Feast Job 은 RustFS 에 parquet 와 레지스트리를, Redis 에 키 30,162개를 쓴다. KFP 실행 Pod 는 MLflow 에서 Production 모델을 받고 RustFS 에 Dataset 과 로그를 쓴다" data-thumbnail="/myblog/posts/mlpe/mlpe-04-mlflow-install/homelab-platform.svg"><img class="tw:inline" loading="lazy" src='/myblog/posts/mlpe/mlpe-04-mlflow-install/homelab-platform.svg'   alt="홈 LAN 안의 홈랩 Kubernetes 클러스터(v1.36.5)에 올린 2주차 실습 플랫폼 전체 구성. mlflow 네임스페이스에 JupyterLab(192.168.0.239), MLflow 3.16.0(192.168.0.238), Postgres 18, Secret 4개, RustFS 1.0.3(192.168.0.237, 버킷 6개)이 있고, feast 네임스페이스에 Feast 서버·UI(192.168.0.240, 241), apply·materialize Job, Redis 8.10.2 가, kubeflow 네임스페이스에 ml-pipeline UI·API 2.17.3(192.168.0.242), 실행 Pod, MySQL 8.4 가 있다. 기존 argo 네임스페이스의 workflow-controller v4.1.4 가 KFP Workflow 를 받아 실행 Pod 를 만들고 cert-manager 가 cache-server 인증서를 준다. 노트북은 MLflow 에 run 과 지표를, RustFS 에 아티팩트를 직접 올리고, Feast Job 은 RustFS 에 parquet 와 레지스트리를, Redis 에 키 30,162개를 쓴다. KFP 실행 Pod 는 MLflow 에서 Production 모델을 받고 RustFS 에 Dataset 과 로그를 쓴다"  ></a></p>]]></description></item></channel></rss>