분류 전체보기 176

Kubeflow를 이용한 Vertex Pipeline 만들기 (Intro)

TFX를 사용해서 ml pipeline을 만드는 법에 대한 피드백을 저번 글에서 했었는데, 이번에는 Kubeflow를 사용해서 ml pipeline 을 만드는 방법을 공유하고자 합니다. 약간의 삽질(?)이 필요하지만, 꾸준히 하다보면 감을 잡으실 수 있을거라고 생각합니다. 오늘 소개할 내용은 codelabs.developers.google 에서 제공하는 tutorial을 따라가는 내용이고, 그 전에 gcp에 대한 경험이 좀 있으면 좋을 것이라고 생각합니다.  일단 Vertex Pipeline을 실행(?)이라고 해야되나 만든다고 해야되나.. 하기 위해서는 여러가지 방법이 있습니다. 그 중 하나는 google console에 들어가서 vertex pipeline에 들어가서 코드를 올리는 방법이 있고, 또 j..

Machine Learning 2024.04.29

ML Pipeline - TensorFlow Extended 억울해서 올리는 후기

Machine Learning 관련해서 Cloud에 pipeline을 올리는 일을 하려고 하는데, TFX를 사용해서 하고싶다는 욕구가 강하게 들었습니다. 그 이유는 W&B Seminar를 갔었는데, TFX를 사용하는 게 좋다고 말을 많이 들었기 때문이죠. Etri의 박찬성 연구자분이 하시는 세미나를 듣고, 잘 모르지만 써보고 싶다는 욕구가 강하게 들어서, 한번 사용해 보았습니다. 하지만.. 현실은.. 좋지 않았습니다. 그럼 TFX가 무엇인가? 에 대해서 간단하게 말씀드리자면, TFX 는 프로덕션 ML 파이프라인을 배포하기 위한 End to End platform입니다. 한 마디로, 코드 component 들을 모아놓은 라이브러리들의 합 (그래서 플랫폼) 이라고 할 수 있습니다. 결국 로컬에서 사용할 수도..

Machine Learning 2024.04.23

gcp vertex ai 에서 python version 안맞을 때

제 포스트에서 https://walkaroundthedevelop.tistory.com/127 Anaconda 가상환경을 jupyter notebook에서 사용하기 Jupyter Notebook은 여러 개의 파이썬 스크립트를 순차적으로 실행하고 디버깅 해볼 수 있도록 가능하게 하는 좋은 툴입니다. 하지만 항상 머신러닝에서 그러듯이, 가상환경과 라이브러리 인스톨하 walkaroundthedevelop.tistory.com python conda 환경을 kernel에서 어떻게 사용하는지 포스팅을 썼습니다. gcp vertex ai 에서 이렇게 했는데도 python version이 바뀌지 않는 것을 발견했습니다. !python3 --version !which python3 !which jupyter Pytho..

환경설정 2024.03.25

3071. Minimum Operations to Write the Letter Y on a Grid

콘테스트 3번 문제로 나온 문제인데, 이 문제도 그렇게 어려운 편은 아니었던 것 같습니다. Y자의 위에까지부분을 iterate하고, 그 다음 부분을 iterate 합니다. 가짓수가 그렇게 많지는 않기 때문에 모든 경우의 수를 다 해버렸습니다. 나중에 결과 보니깐 시간 복잡도 측면에서는 좀 안좋게 나왔네요. class Solution: def minimumOperationsToWriteY(self, grid: List[List[int]]) -> int: n = len(grid) def ttry(x, y): count = 0 for i in range((n // 2)): for j in range(n): if i == j: if grid[i][j] != x: count += 1 elif n-j-1 == i:..

3070. Count Submatrices with Top-Left Element and Sum Less Than k

사실 그렇게 어려운 문제는 아니었습니다. weekly contest에서 두번째로 나왔던 문제로, prefix sum을 사용해서, 각 row의 합을 저장해서 새로운 list에 저장하고, 새로운 row에서 iterate할 때는 새로운 row에서 그 row의 합들과 지금까지 더한 위의 row의 합을 더해주는 방식으로 해서 몇 번의 시행착오 끝에 풀어낼 수 있었습니다. class Solution: def countSubmatrices(self, grid: List[List[int]], k: int) -> int: m, n = len(grid[0]), len(grid) new_matrix = [[0 for _ in range(m)] for _ in range(n)] # print(new_matrix) count ..

metric learning / deep metric learning에 관하여

Metric learning은 Machine learning 의 한 분야로, object 간의 거리 함수를 학습하는데 초점을 맞춘다고 합니다. 이 거리 함수는 metric 공간에서의 similarity 또는 dissimilarity 를 결정하는데 사용된다고 합니다. k-nn(nearest neighbor 나, clustering 등의 방법에도 이용이 된다고 합니다. Deep Metric learning이란, 앞에서 설명한 Metric Learning을 Deep learning 에 적용시킨 것이라고 볼수 있을 것입니다. 각각의 데이터들의 거리를 임베딩 공간 측정해서, 유사한 객체는 서로 가깝게, 그렇지 않은 객체는 멀게 배치 합니다. 이미지 인식, 얼굴 검증, 추천 시스템 등의 작업에 유용하다고 합니다. ..

Machine Learning 2024.01.31

RAG란? 그리고 Langchain 을 이용한 구현까지

RAG란, Retrieval-Augmented Generation의 약자로, retriever(검색기) 파트와 generator(생성기) 파트로 나눠져 있습니다. retriever는 관련 정보를 Database에서 검색하고, 생성기는 이 정보를 사용하여서 최종 응답을 생성합니다. 관련 링크 : https://python.langchain.com/docs/use_cases/question_answering/ Q&A with RAG | 🦜️🔗 Langchain Overview python.langchain.com Indexing 이후에, (load -> split -> store)이후에, Vector Database 또는 Embedding model 에 저장한 후에, Retrieval 과 Generation..

Deep Learning/NLP 2024.01.23

git fetch 이후 merge 하기

보통 git pull할 때 가장 두려운 상황은 conflict나는 상황일 것입니다. 물론 clean하게 유지한다는 가정하에 git pull이 실패할 리는 없겠지만, 그래도 conflict를 피할 수 없는 상황은 무조건 나오기 마련입니다. 그걸 막기 위해서 생겨난 커맨드는 git fetch 입니다. ChatGPT에서 말해주는 fetch 이후 merge 방법입니다. 더보기 Q) what should I do after git fetch to merge? 1. Check Out the Branch You Want to Update: Make sure you're on the branch that you want to update with changes from the remote. Use git checkou..

Utils/Git 2023.12.15

augmentation을 통해서 data imbalance 맞춰주기

학습할 때, 가장 중요한 것 중 하나가 data balance를 맞춰 주는 것일 겁니다. 만약 두 개의 클래스가 한 개의 클래스는 100장, 한 개의 클래스는 1000장이 있다고 하면, 두 개의 클래스의 밸런스를 맞춰주기 위해서는 1000장을 100장으로 맞춰주기보다는 100장을 1000장으로 맞춰주는게 나을 것입니다. import os from tensorflow.keras.preprocessing.image import ImageDataGenerator, img_to_array, load_img import numpy as np from PIL import Image, ImageEnhance ​ # Directory containing the images to augment input_dir = 'c..