python date range list 만들기 (w. pandas)
```python import pandas as pd
```python import pandas as pd
해당 기능은 PyCharm professional에서 제공되는 기능입니다.
설명을 위해 아래 텍스트 파일로 설명하겠습니다.
함수에서 list 혹은 dictionary를 인자로 받을 때 [], {} 값을 default로 사용할 수 없기 때문에 일반적으로 none값을 많이 사용합니다. 이 때 함수 안의 if문에서 list, dictionary의 빈값([], {})을 none으로 처리하는 경우, 일반적으로 ...
dictionary 추가
Python에서 dictionary item을 하나씩 loop 돌 때 값을 찾는 방법으로 1) item(key, value), 2) key, 3) value 각각 가능합니다.
```python import pandas as pd
Python은 indexing과 slicing을 이용해서 list에서 일부만 추출할 수 있습니다. 사용 방법이 매우 간단하고 pandas에서 더 활용되기도 하니 잘 알아두면 좋습니다.
Python의 math 모듈은 내장 함수로 import 없이 사용 가능한 것이 있고, import해서 사용하는 함수가 있습니다. 아래 설명에서 import 부분을 참고해서 확인하면 됩니다.
Python은 스크립트 언어이기 때문에 빈 함수나 변수를 미리 정의하는 경우가 다른 언어에 비해 드문 편입니다. 하지만 제대로 구조를 갖추고 코드를 작성하다보면 필요한 경우가 종종 발생합니다. 이럴 때 FM으로 한다면 함수는 raise NotImplementedError로 처리해야...
우선 zip을 사용하지 않을 경우 index 값을 이용해서 처리가 가능합니다.
enumerate를 이용하면 for loop에서 index를 사용할 수 있습니다.
Python의 print는 기본적으로 개행을 해주기 때문에 여러 개의 print를 사용하면 아래와 같이 출력됩니다.
Python에서 print는 file 객체를 받아 stdout을 바꿀 수 있기 때문에 write 함수를 사용하지 않고 print 그대로 파일에 쓸 수 있습니다.
Python의 main 함수는 고작 한줄에 불과하지만, 종종 기억나지 않아 찾아보거나 입력하기 귀찮은 경우가 많습니다.
random
Python에는 datetime 내장 모듈을 이용해 날짜 관련 기능을 사용할 수 있습니다.
Python에서 asterisk(*)은 일반적인 값의 곱하기 외에 여러 기능을 포함하고 있습니다.
dictionary는 python에서 제공되는 자료형 중 하나로, key/value 쌍으로 데이터를 저장할 수 있습니다.
for loop을 이용해서 코드를 작성하다보면 아래와 같은 상황을 종종 보게됩니다.
TEXT 읽기/쓰기
csv는 comma-separated values의 약자로, 말 그대로 comma(,)로 데이터를 구분하는 포맷을 말합니다. 예를 들어 아래 표 처럼 데이터가 있을 때 아래와 같이 표현됩니다.
현재 경로 (os.getcwd)
Python은 기본적으로 변수를 사용할 때 자료형을 명시하지 않고 사용할 수 있습니다. 때문에 함수를 사용할 때도 파라미터나 반환의 자료형을 정의하지 않아도 동작합니다. 이것은 빠르고 가볍게 개발하는 입장에서 장점처럼 느껴지지만, 협업이나 유지보수 측면에서는 단점이 될 수 있습니다...
Python에서는 tqdm을 이용하면 loop의 진행 현황을 확인할 수 있습니다. 간단하게 for 문을 예시로 확인해보겠습니다.
Python에서 윈도우 경로를 문자열로 저장하기 위해서 일반적으로 아래와 같이 사용합니다.
Python에서 lambda를 사용하면 함수를 추가 작성하지 않아도 돼서 편리합니다. 아래 대표적인 sort와 map 예시로 lambda 동작을 확인해 볼 수 있습니다.
Python에서 문자열 안에 변수 값을 넣는 다양한 방법을 확인해보겠습니다.
Python과 개발툴 설치 과정
update_by_query Elasticsearch에 저장된 document의 값을 일괄적으로 수정할 때 update_by_query를 사용하게 됩니다. 아래는 update_by_query를 사용해서 document의 field 이름을 변경하는 예시입니다.
Elasticsearch에서 특정 키워드로 검색할 때 조건에 따라 적절한 방법을 사용해야합니다. 아래에서 검색할 때 대표적으로 많이 사용되는 term, match, match_phrase, string_query을 설명하겠습니다.
특정 단어 제거하기
Tag Cloud에서 일정 횟수 이상 등장한 단어만 보여주거나, 일정 횟수 이하의 단어는 보여주지 않고 싶을 때 Kibana에서 관련 설정을 UI에서 제공하지 않기 때문에 직접 설정을 추가해야합니다.
Elasticsearch에는 Scroll API를 사용하면 대량의 데이터를 조회할 수 있는데, 이 부분을 python에서 elasticsearch.helpers.scan을 이용해 사용 가능합니다.
Elasticsearch 기능을 테스트하면서 reindex를 종종 사용하고있는데, 원본 index의 document가 아무래도 많다보니까 그냥 reindex를 하면 불필요하게 많은 document가 복제되었습니다. 이 부분을 reindex 시 query로 filtering해서 일부...
Elasticsearch에서 데이터를 검색하면 최대 10,000개까지 검색이 되는 것을 볼 수 있습니다. 10,000개 이상 검색이 필요한 경우에는 Scroll API(공식 문서)를 사용하는게 맞지만, 성능 상관없이 검색만 필요한 경우 아래와 같이 limit를 수정하면 10,000...
Elasticsearch에서 그냥 search를 하면 analyzer가 적용된 내용을 확인할 수 없습니다. 이때 termvectors로 확인이 가능합니다.
Elasticsearch index를 그대로 복사할 때 reindex를 사용합니다.
Kibana에서 tag cloud로 시각화를 진행할 때 nori와 같은 analyzer를 많이 이용합니다. 실사용 하다보면 tokenizing되지 말아야할 단어가 생기거나 불필요한 단어가 생기게 됩니다. 아래 시각화 예시를 보면, 최근, 코로나와 같은 단어는 매 번 자주 등장하는 ...
Elasticsearch에 데이터를 적재할 때 동일한 id가 존재하면 update하고 없으면 insert하고 싶을 때 upsert를 사용하면 가능합니다. update query에 "doc_as_upsert": true를 입력하면 됩니다.
Kibana에서는 dashboard의 시각화에 사용된 index를 변경하는 것이 어렵습니다. 이 때문에 초기 구축 단계에서 dashboard를 다 만들었는데 index 명을 변경하게되면 dashboard를 처음부터 다시 구축하는 참사가 일어날 수 있습니다.
7.x 이하 버전을 사용할 때, index에 새로 추가한 field로 Visualize(시각화)를 추가하려하면 추가된 field가 보이지 않습니다. 이는 index pattern의 mapping에 반영되지 않았기 때문인데, 아래와 같이 index pattern으로 가서 refres...
Elasticsearch에서 document update 시 아래 그림처럼 업데이트할 document를 쓰되 기존 document를 바로 삭제하지는 않습니다.
Query
ELK Stack 마지막 구축 과정으로 Word Cloud 시각화를 진행해보겠습니다. 데이터로 사용한 기사의 내용에서 사용된 단어의 빈도로 시각화하기 위해서는 전부 단어로 tokenizing 해야합니다. 이를 위해 형태소 분석기 플러그인을 사용해야합니다.
윈도우에서 WSL을 사용하거나 분산 서버 환경을 구축했을 경우, elasticsearch에 접근하기 위해서는 network 설정이 필요(default host가 127.0.0.1이기 때문)합니다. 따라서 외부에서 접근 가능한 IP로 변경이 필요한데, IP를 변경하면 producti...
앞의 포스트에서는 편의를 위해 security 옵션을 비활성화하고 진행했는데, 추후 실사용에서는 반드시 적용해야하는 부분입니다. 그리고 Elastic Stack 8.0이 release되면서 빠르게 8.1이 release됐고, major 변경에 따른 필수 설정이 많이 변경된 것으로 ...
이번엔 Kibana Dashboard를 이용해서 수집한 데이터를 시각화해보겠습니다.
이번엔 Logstash를 이용해서 Elasticsearch에 데이터를 적재해보겠습니다.
ELK Stack이란
이번에 새로 구매한 노트북에 Ubuntu 22.04를 설치하면서 Kubernetes 환경을 구축한 내용을 정리해봤습니다. 목표는 아래와 같습니다.
금방 할 줄 알았던 Minikube 설치에서 삽질하는 과정이 너무 길어져서 기록으로 남깁니다.. 비슷한 이슈가 있는 분들에게 참고가 됐으면 좋겠습니다.
K3s 설치 ```bash $ curl -sfL https://get.k3s.io | sh -
Kubernetes에서 각 Service와 통신할 때 IP를 일일이 확인하고 입력하지 않습니다. 각 Service를 IP로 직접 연결하면 아래 단점이 있기 때문입니다.
Kubernetes에서 NodeAffinity를 적용하기 위해 반드시 필요한 내용이 바로 Node에 적용된 Label 목록 확인 혹은 추가입니다.
Ingress를 적용할 때 path만 설정할 경우, 외부에서 서비스로 접근하는 URI와 내부에서 실제 서비스로 요청하는 URI가 달라지면서 오류가 발생하는 경우를 볼 수 있습니다. 여기서 아래와 같이 설정하면 위 두 URI를 일치시킬 수 있습니다.
DCGM-Exporter에서 기본적으로 제공되는 metric으로는 수집할 수 없는 항목들이 있습니다. (버전마다 metric 수집 항목의 차이가 있습니다.) 저는 2.4.0 버전을 사용중인데, DCGM_FI_DEV_GPU_UTIL(GPU utilization(%))과 DCGM_FI...
Deployment에 NodeSelector 혹은 NodeAffinity를 설정하면 Pod를 배포할 때 특정 Node에 할당시킬 수 있습니다. NodeSelector는 반드시 특정 노드에만 할당시킬 때, NodeAffinity는 조건에 따라 특정 노드에 할당시킬 때 사용됩니다. 아...
Kubernetes에서 사용중인 자원 사용량을 Lens를 사용하면 클릭만으로 쉽게 볼 수 있습니다. Lens는 Kubernetes 전용 관리도구로, 관리에 필요한 기능과 다양한 플러그인을 함께 지원합니다.
Kubernetes GPU 할당 상태는 krew(Kubernetes Plugin Manager)로 view-allocations plugin을 설치해서 확인할 수 있습니다.
local to pod
Kubernetes에서 image 혹은 설정값이 바뀌어 재시작이 필요한 경우가 있는데, 이때 아래 명령어로 재시작이 가능합니다.
Kubernetes에서 하나의 서비스를 운영할 때 일반적으로 Pod와 Service, Deployment가 운영되는 것을 확인할 수 있습니다. 아래서 각각 역할의 차이에 대해 가볍게 설명하겠습니다.
Controller 설명 Deployment - 내부에서 Replicaset으로 pod를 관리하는 컨트롤러- Rollback, 무중단 배포 가능 ReplicaSet ...
Kubernetes에서 node가 scheduling을 하지 못하는 경우 아래와 같이 uncordon으로 해결 가능합니다.
Kubernetes에서 Node가 NotReady 상태에 빠지는 경우는 여러 종류가 있습니다. 여기서는 아래 에러의 해결 방법만 소개하겠습니다.
Airflow 파이프라인에서 kubectl을 이용해서 deployment rollout을 해야할 상황이 생겼습니다. 여러 방법을 고민해보다 KubernetesPodOperator와 Secret을 이용하면 쉽게 할 수 있어서 그 방법을 정리합니다.
병렬처리 고려 대상 Airflow에서 병렬차리할 때 고려해야할 대상이 크게 5가지 있습니다.
평소처럼 KubernetesPodOperator를 잘 활용하다 아래와 같은 오류 메세지가 발생했습니다.
S3에 있는 파일을 디스크에 저장 후 작업을 진행하면 파일을 삭제하기 전에 예외 상황이 발생할 수 있고, 이렇게 되면 파일이 삭제되지 않고 디스크에 남아버립니다. 때문에 특별한 경우가 아니라면 디스크에 저장하지 않고 바로 가져와서 사용하는 것이 좋습니다.
Airflow에서 MongoDB에 연결하기 위해 사용하는 MongoDB Provider에는 PyMongo에 없는 replace_many 함수가 있습니다. PyMongo에서 지원되는 관련 함수 목록은 아래와 같습니다.
Helm으로 설치한 Airflow에 MongoDB connection을 추가하려했는데 MongoDB는 없었습니다. 공식 문서(링크)를 찾아보면 pip로 추가하라고 되어있지만 Helm으로 설치한 Airflow에 추가하려면 image를 새로 build해야합니다. 아래는 그 과정과 Mo...
Airflow Variables를 이용하면 Kubernetes의 ConfigMap, Secret와 유사하게 key, value를 관리할 수 있습니다.
Airflow Web UI에서도 task를 clear할 수 있지만, task의 양이 많거나 명령어를 이용해서 자동화하고 싶은 경우 아래 명령어를 이용해서 clear가 가능합니다.
DockerOperator나 KubernetesPodOperator는 다른 Operator와 XCOM을 사용하는 방식이 조금 다릅니다. 여기서는 KubernetesPodOperator 기준으로 XCOM push와 pull 방법을 설명하겠습니다.
Airflow는 특정 Task에서 조건에 따라 skip하거나 멈추게하는 등의 동작을 하기 어렵습니다. 이를 해결하기 위해 branch로 분리해서 기존 flow가 진행되지 않도록 할 수 있는데, 이때 DummyOperator를 활용할 수 있습니다.
BranchPythonOperator를 사용하면 여러 개의 Task 중 하나를 선택해서 flow를 진행할 수 있습니다. 조건에 따라 하나를 선택해서 사용하는 경우에 적용하면 유지 관리 측면에서도 효과를 볼 수 있습니다.
Airflow는 스트리밍 솔루션이 아니기 때문에 한 시간 이하의 주기로 동작시키는 경우를 많이 볼 수 없습니다. 그러나 주기만 줄여서 사용하고 싶다면 분 단위까지 낮춰서 사용할 수 있습니다.
Airflow에서 딥러닝 서비스나 학습 파이프라인을 구축할 경우 필요한 만큼의 GPU만 할당해서 사용할 수 있도록 해야합니다. 그냥 사용하면 서버에 있는 전체 GPU를 잡아서 사용할 수 있습니다. 멀티 GPU 서버에서 단일 GPU만 할당받아서 사용하는 방법은 아래와 같습니다.
Airflow를 Kubernetes에 올려놓고 사용중인데, PyTorch를 사용하기 위한 패키지들을 Airflow에 설치하고 싶지 않아 알아보던 중 KubernetesPodOperator를 이용해서 해결했습니다. Kubernetes에 설치하지 않았다면 DockerOperator를 ...
기존에 Airflow에서 schedule 처리를 진행할 때 execution_date, next_execution_date과 같은 변수를 사용해왔는데, 2.2버전부터 좀 더 명확한 용어로 변경되었습니다. 현재 최신 버전인 v2.3을 이용해도 호환성을 위해 아직 사용이 가능하지만, ...
Airflow가 아직 윈도우를 지원하지 않기 때문에 WSL을 이용해서 설치하는 방법을 설치하는 겸 Ubuntu에서 설치하는 방법과 큰 차이는 없기 때문에 두 가지 방법을 비교하면서 설명하겠습니다.
MLflow를 사용하다 반복되는 실험으로 S3에 artifact가 쌓이고있어 삭제 방법을 찾게 되었습니다. Tracking Server의 Web UI에서는 delete가 hide로 동작하기 때문에 S3에 쌓인 artifact와 PostgreSQL에 쌓인 metadata를 지우기 위...
Kubernetes MLflow ingress 적용을 위해 일반적으로 나와있는 방법을 사용하면 UI는 사용 가능하지만 API 사용이 불가능합니다. API 호출 경로가 ingress path와 상관없이 서비스 상대경로로 적용되기 때문입니다. 따라서 서비스에서 ingress path를...
Airflow로 학습 및 배포 스케줄링을 하는데 단지 모델의 버전 확인, Stage 변경과 같은 단순 작업에 MLflow 패키지를 설치해야하는 과정이 발생했습니다. MLflow 패키지는 생각보다 무겁고, Airflow에서 관리상 PythonVirtualenvOperator를 사용하...
MLflow 가이드를 보면 Production 모델을 가져오는 방법(mlflow.pyfunc.load_model)에 대한 설명이 있지만, 모델을 통채로 가져와서 load하기 때문에 속도도 느리고 리소스 낭비가 발생합니다.
MLflow를 이용해서 transformer 모델을 학습시키는 중 RestException: INVALID_PARAMETER_VALUE...관련 에러가 발생하였습니다.
MLflow UI를 보면 Experiments와 Models 2가지 메뉴를 확인할 수 있는데, 실험 관점과 배포 관점을 나누어 관리하는 부분이라고 생각하면 됩니다. 따라서 MLflow에 등록된 모델을 배포할 때는 Models에서 진행하는게 좋습니다.
본 설치는 MLflow 설계 시나리오 5 기반으로 작성하였습니다.
MLflow는 git에 저장된 코드를 가져와서 바로 실행할 수 있습니다. git clone 과정 정도를 생략할 수 있다고 보면 될 것 같습니다.
본 예제는 Anaconda 없이 pip requirements를 가지고 MLflow pytorch example을 진행하는 방법에 대해 작성하였습니다.
일부 작성한지 오래된 튜토리얼의 CLI에서 pyfunc, rfunc를 사용하고 있습니다. 해당 명령어가 v1.0 정식 버전이 출시되면서 models로 통일되었기 때문에 해당 부분을 공유합니다.
책 소개
https://www.codingfont.com/
거버넌스는 비즈니스에 대한 일련의 통제로, 금융·법률·윤리적 의무가 있습니다. 대표적인 예시로 개인정보 보호법이 있습니다. MLOps에서의 거버넌스는 데이터, 프로세스, 모델 3가지로 구분할 수 있습니다.
출처: Introducing MLOps - End-to-end ML process를 위한 CD(Continuous Delivery)
자동차 주행 데이터로 예를 들어, 평소 도심에 인구가 밀집되어있다가 특정 이벤트(집값 폭등, 원격근무 확대 등)로 인해 지방, 시골에 이동했다고 가정해봅시다. 초기엔 주로 건물, 도로 등을 위주로 데이터가 수집됐었겠지만 나중엔 점점 자연 풍경의 데이터가 수집되기 시작할 것입니다. ...
MLOps level 0: Manual process
MLOps는 엔터프라이즈 AI 전략의 핵심이며, 이를 위해 맡는 역할은 직무 전문가, 데이터 과학자, 데이터 엔지니어, 소프트웨어 엔지니어, DevOps 엔지니어, 모델 리스크 관리자/감리인, 머신러닝 아키텍트 7가지가 있습니다.
하나의 서비스에 AI를 도입하는데 있어 사용되는 모델이 다수인 경우가 많습니다. 추천 서비스만 도입하더라도 추천 종류별로 관점이 다르기 때문에 각각의 모델이 생기게 됩니다. 이렇게 다수의 모델을 리스크 측정 없이 도입할 경우 동시 다발적으로 문제가 생기거나 큰 효과를 볼 수 없습니...
BentoML v0.13.1이 release된지 정확히 1년이 지난 2022년 7월 13일 v1.0이 release되었습니다. v1.0이 release되면서 기존 사용법이 조금 변경되었는데, 이에 따른 v0.13.1에서 v1.0으로 넘어가는 과정을 살펴보겠습니다.
BentoML은 Yatai를 이용해서 모델을 관리할 수 있습니다. 실행 방법은 아래와 같이 2가지가 있지만, 저는 node.js를 설치하기 귀찮아서 docker를 사용했습니다.
BentoML에서 저장한 Artifact를 찾아서 특정 위치에 저장
딥러닝 성능을 올리기 위해서는 성능 재현 및 실험이 필수입니다. PyTorch는 다른 프레임워크에 비해 비교적 쉽게 seed 고정이 가능했습니다.
sklearn의 confusion_matrix와 classification_report를 사용하면 confusion matrix 출력과 함께 precision, recall, f1-score를 쉽게 계산할 수 있습니다.
CUDA 버전 확인
이 글을 작성하기 약 한달 전인 2022년 4월 27일 Nvidia에서 보안상의 이유로 CUDA 관련 GPG key가 변경되었습니다. (https://forums.developer.nvidia.com/t/notice-cuda-linux-repository-key-rotation/2...
모델 성능 실험 script를 작성하면서 코드의 특정 값을 반복적으로 치환해야할 경우가 생겼습니다. python을 사용하면 command line arguments로 주입할수도 있지만 여기서는 grep과 sed로 특정 값을 치환하는 방법을 설명하겠습니다.
모델 성능 실험을 하게되면서 반복적인 실험을 할 일이 많아졌습니다. 수동으로 하다보니 실수도 잦고 시간도 많이뺏겨 script를 작성하게 되었습니다.
ubuntu 서버 사용중에 session이 너무 자주 끊기는게 불편해서 timeout을 수정했습니다. /etc/profile에서 직접 수정해도 되지만, 안전하게 개인 계정만 적용하는 방법은 아래와 같습니다.
1. GitHub Repository 생성 및 clone
Tistory 플러그인에서 highlight.js 기반의 코드 문법 강조(Syntax Highlight)를 제공하지만, 단 7개 테마밖에 제공하지 않습니다. 저는 플러그인 테마가 별로여서 VS 2015 테마를 직접 적용했는데, 적용하는 방법을 알려드리겠습니다.
이 전에 Selenium으로 데이터를 수집하는 방법을 확인해봤습니다. 이렇게하면 모든 데이터를 다 수집할 수 있을 것 같지만, 이 Selenium에도 단점이 있습니다. 이럴 때 일부 사이트에서 사용 가능한 방법을 소개하겠습니다.
앞의 게시글에서 설명했던 BeautifulSoup만 사용했을 때 데이터가 수집되지 않는 경우가 있습니다. 이럴 때 사용하는 프레임워크인 Selenium을 이용한 수집 방법을 소개하겠습니다.
빅데이터 분석 시스템을 구축할 때 가장 중요한 부분은 데이터 수집입니다. 데이터 수집 방법으로는 DB에 저장되어있는 주기적으로 수집하거나, 제공되는 API를 사용해서 수집할 수 있습니다. 하지만 이러한 방법으로의 수집이 어려울 때, 우리가 웹사이트에서 육안으로 확인할 수 있는 데이...
일반적으로 Docker는 Public(ex. DockerHub) 혹은 Private(ex. Harbor) Registry에서 Image를 가져오기 때문에 파일로 Docker Image를 옮길 일은 거의 없습니다. 하지만 아래와 같은 경우에 파일로 옮겨야할 경우가 생기게 됩니다.
로컬 환경에서 만든 Docker image를 Horbor에 업로드하려면 tag를 변경하고 업로드하면 됩니다.
Docker를 사용하다보면 <none> 이미지들이 쌓이는걸 볼 수 있습니다. 똑같은 이름:태그의 이미지를 올리거나, container가 있는 상태에서 image를 강제로 삭제한다거나 할 경우 쌓이게 되는데, 용량이나 관리하는 측면에서 정리가 필요합니다. 이럴 때 아래 명...
외부 데이터를 그대로 저장하다보니 timestamp를 string type 그대로 저장하는 경우가 발생했습니다. 이때 integer type으로 변경하지 않아도 아래와 같이 조회가 가능합니다.
7월 19일 MongoDB 6.0 버전이 release 되었습니다. 기존엔 MongoDB가 설치되면 mongo로 테스트를 했었는데 6.0이 되면서부터 mongo 대신 mongosh를 사용해야해서 여기에 정리합니다.
2023년도 간단한 회고
블로그를 약 1년 정도 운영하던 중 글또를 알게되면서 참여하게 되었습니다. 👏
2021년 12월. 새로운 회사로 이직하면서 2022년을 맞이했다. 때문에 2022년의 목표는 주로 새로운 회사에서의 목표와도 같았다. 목표와는 다르게 흘러간 부분이 있었지만, 오히려 달라진 부분에서 더 만족했던 해였다.
카파 아키텍처(Kappa Architecture)
웹에 있는 데이터를 수집하다보면 보이는 텍스트와 달리 태그나 특수문자 코드 등이 그대로 함께 수집되는 경우가 있습니다. 예를 들면 아래와 같은 형태로 수집될 수 있습니다.
데이터 제공 Layer는 데이터 소스(Data Lake, Data Warehouse) 내부의 데이터를 가공해서 서비스 애플리케이션, 분석 애플리케이션, 각종 데이터 분석 도구 등에 제공하는 Layer입니다. 이 Layer에서 데이터를 제공하기 위해 사용하는 방법으로 크게 세 가지(...
Redash Metabase Tableau Superset 지원 DB BigQueryElasticsearchDruidHiveImpalaMongoDBMySQLO...
https://github.com/metabase/metabase
FastAPI를 ingress에 연결해서 사용하고 싶은 경우 추가 경로 설정이 필요합니다.
Yarn의 등장 배경 Hadoop의 초기 버전(1.0)은 MapReduce를 기반으로 분산 데이터 처리를 수행하는데 중점을 두었습니다. 이러한 구조는 MapReduce 작업이 많은 양의 리소스를 소모하여 여러 작업이 동시에 실행되기 어려웠고, 다양한 유형의 작업을 처리하기 어렵고,...
Hadoop을 설치하는 과정은 크게 1) Java 설치와 2) Hadoop 설치로 나뉩니다.
Feature Engineering을 하는데 있어 결측값 처리는 굉장히 중요합니다. 이 결측값이 무엇이고 어떻게 처리할 수 있는지 그 방법에 대해 이야기하겠습니다.
1. tritonclient의 InferenceServerClient를 사용 $ pip install tritonclient[grpc]
일반적인 PyTorch 혹은 Transformers 모델 배포 성능을 극대화하기 위해 모델 포맷을 ONNX, TensorRT로 변환하고 Triton Inference Server로 배포하는 과정을 정리해봤습니다.
REST API를 적용하기 위해 아래 python package를 설치합니다. (작성일 기준 0.14.2 버전 입니다.)
집에서 4k 모니터 해상도를 1920x1080로 사용중이였는데, 1920x1080 해상도를 사용중인 pc에 원격으로 접속하면 접속이 바로 끊기는 현상이 발생했습니다.
MinIO는 Amazon S3와 호환되는 API를 제공하는 오픈소스 오브젝트 스토리지입니다. 일반적으로 S3와 같은 오브젝트 스토리지가 필요할 때 대용으로 가장 많이 사용되는 오픈소스입니다. 영어 그대로 미니오(Minimal Object Storage를 의미하기 때문)라고 읽기도 ...
Google Cloud를 이용해서 데이터 수집 파이프라인을 구축해본 과정을 정리해봤습니다. 클라우드를 사용하지만 초기 비용은 100원도 안나오는 걸로 확인했기 때문에 비용 걱정 없이 따라해보셔도 좋을 것 같습니다.
ArgoCD는 쿠버네티스를 위한 대표적인 선언적, GitOps 기반의 CD(Continuous Delivery) 도구입니다. 배포할 쿠버네티스 서비스의 deployment, service, ingress 등을 정의하고 서비스 Repository에서 GitOps 기반의 배포 파이프라...