구글 61

Vertex.AI로 파이프라인과 metadata 구현하기

Vertex.AI Pipeline(Kubeflow pipeline) & metadata 조대협 (http://bcho.tistory.com) 이 글은 google developer codelab의 Using Vertex ML Metadata with Pipeline 예제를 기반으로 한다. . (코드 소스 : https://codelabs.developers.google.com/vertex-mlmd-pipelines) 예제 코드의 실행은 위의 링크를 참고하면, step by step으로 진행할 수 있다. Vertex.AI는 구글 클라우드의 AI 플랫폼 솔루션으로 여러가지 컴포넌트를 가지고 있다. 이 예제에서는 데이터를 읽어서 학습하고, 모델을 만들어서 배포하는 파이프라인에 대해서 설명한다. 파이프라인의 개..

40대 중반에 새로운 여행을 떠납니다.

근 20년이 넘게 한국에서 IT 업종에서 일해왔습니다. 작은 병특회사에서 시작해서, 외국계 벤더에서 서포트,컨설턴트 여러가지 일도 해보고, 국내 인터넷 회사에도 들렀다가, 잘 다니던 대기업을 그만두고 스타트업 CTO로 가면서 도전을 했고, 성공하지 못했습니다. 몸도 많이 힘들고 잃은 것도 많지만 경험적으로 얻은 것도 많았습니다. 그리고 좋은 분들의 도움으로 구글에서 엔지니어로써 일해오고 있습니다. 그러다가 재 작년에 가족들과 미국에 여행을 갔을때, 아이들이 자유롭게 놀고 창의적으로 공부하는 모습이 눈에 많이 들어오더군요. 한국에서는 어린 나이부터 대학 입학을 위해서 선행 학습을 해야 하고 늦게 까지 주입식 교육을 해야 하는데.... 정말 이건 아니다 싶더군요. 그래도 서울시내에 있는 대학이라도 갈려면 최..

사는 이야기 2021.05.28

머신러닝 파이프라인에서 데이터 전처리 방법

Data Preprocessing in ML Pipeline 본글은 구글 클라우드 블로그에 포스팅한 글을, 재 포스팅 허가를 받은 후 포스팅한 글입니다. 다른 좋은 글들도 많으니 아래 출처 링크를 참고해 주새요출처 링크 머신러닝 파이프라인에서, 데이터는 모델 학습 및 서빙의 입력에 알맞게 가공되어야 한다. 이를 전처리라고 하는데, 이번 글에서는 전처리에 대한 개념과 이에 대한 구현 옵션등에 대해서 알아보도록 한다.처리 단계별 데이터 분류머신러닝에서 데이터 전처리는 모델 학습에 사용되는 데이터 형태로 데이터를 가공하는 과정을 이야기한다.데이터 전처리는 여러 단계로 이루어지는데, 단계별로 처리된 데이터에 대해서 다음과 같이 명명한다. Raw data초기에 수집된 원본 데이터로 분석이나, 머신러닝 학습 용도로..

쿠버네티스 #27 - 쿠버네티스 애플리케이션을 위한 IDE 설정하기 - IntelliJ

쿠버네티스 애플리케이션을 위한 개발환경#1 IntelliJ조대협 (http://bcho.tistory.com)일반적인 경우에는 로컬 환경에서 개발하고, 로컬에서 톰캣등을 띄워서 테스트하면 되지만, 만약 부가적으로 레디스나, DB등 복잡한 개발/테스트 환경이 필요한 경우에는 결국에는 컴파일된 애플리케이션을 서버로 올려서 테스트해야 한다. 쿠버네티스를 이용해서 개발된 애플리케이션을 컨테이너로 패키징하는 개발 환경을 꾸미게 되면 개발을 조금 더 효율적으로 할 수 있다. 그렇지만 반대로, 컨테이너로 패키징해서 매번 쿠버네티스 개발용 클러스터에 배포해야 하기 때문에 복잡성이 증대하는 단점이 있다. 아래 그림은 쿠버네티스 기반의 애플리케이션을 개발할는 일반적인 개발 과정이다. 코드 작성이 끝나면, 컴파일을 해야 하..

SRE #6 - 운영에서 반복적인 노가다 Toil

SRE #6-운영에서 반복적인 노가다 Toil조대협 (http://bcho.tistory.com)ToilToil의 사전적인 뜻은 “노역"이라는 뜻을 가지고 있는데, 비속어를 사용해서 표현하자면 운영 업무에서의 “노가다" 정도로 이해하면 된다. Toil 에 대한 정의를 잘 이해해야 하는데, Toil은 일종의 반복적인 쓸모없는 작업 정도로 정의할 수 있다.경비 처리나, 회의, 주간 업무 보고서 작성과 같은 어드민 작업은 Toil에 해당하지 않는다. Toil은 운영상에 발생하는 반복적인 메뉴얼 작업인데, 다음과 같은 몇가지 특징으로 정의할 수 있다.메뉴얼 작업이고 반복적이어야함Toil의 가장 큰 특징은 사람이 직접 수행하는 메뉴얼 작업이라는 것이다. 그리고 어쩌다 한번이 아니라 지속적으로 발생하는 반복적인 작..

SRE - #1 SRE/DEVOPS의 개념과 SRE는 무엇을하는가?

Site Reliability Engineering(SRE)#1 SRE/DEVOPS의 개념조대협 (http://bcho.tistory.com)배경Devops는 운영팀과 개발팀을 하나의 팀으로 묶어놓고 전체적인 개발 사이클을 빠르게 하고자 하는 조직 구조이자 문화이다. 이 Devops라는 컨셉이 소개된지는 오래되었지만, Devops의 개념 자체는 명확하지만 이 Devops를 어떻게 실전에 적용할것인 가는 여전히 어려운 문제였다.(예전에 정리한 Devops에 대한 개념들 1 , 2) 예전 직장들에 있을때 Devops의 개념이 소개되었고 좋은 개념이라는 것은 이해하고 있었지만, 여전히 운영팀은 필요하였고, 그 역할이 크게 바뀌지 않았다. 심지어 Devops를 하는 기업들도 보면 기존 개발팀/운영팀이 있는데, ..

구글의 Devops 운영 모델 SRE (Site Reliability Engineering)

SRE는 구글의 Devops의 프랙티스 로 구글의 서비스에 대한 배경과 철학을 읽을 수 있다.SRE의 기본 사상중의 하나는 서비스의 안정성이 완벽할 수 없으며, (아니 완벽하지 않게 만들며) 장애를 허용하는 모델이다.고 가용/고 성능 시스템을 만들기 위해서는 그만큼 많은 개발에 대한 노력이 소요되는데, 이로 인해서 기능 개발에 대한 속도가 느려지기 때문에, 사용자가 납득할만한 수준의 가용성을 제공하되 개발의 속도를 유지하는 철학이다.배경을 살펴보면 구글은 모바일을 기반으로 한 B2C 서비스를 주력으로 하기 때문에, 서비스가 99.999%의 가용성을 제공하더라도, 스마트폰과 통신망 자체가 그정도의 안정성을 제공하지 않기 때문에, 백앤드 서비스가 높은 가용성을 제공하더라도 사용자가 느끼는 가용성은 그 정도 ..

로깅 시스템 #7-스택드라이버로 로그 백앤드 구축하기

스택 드라이버 로그로 로그 백앤드 구축하기조대협 (http://bcho.tistory.com) 앞의 글에서까지 로그를 남기는 방법에 대해서 알아보았다. 이번 글에서는 로컬에 남긴 로그를 중앙으로 수집하여 모니터링할 수 있는 도구에 대해서 알아보고자 한다.보통 로그 시스템은 오픈소스 기반의 ELK (Elastic search + Logstash + Kibana)를 많이 사용한다. 좋은 시스템이기는 하지만 러닝 커브가 있고, 구축과 운영에 노력이 들어간다. 대안으로는 클라우드 기반의 매니지드 서비스를 사용하는 방안이 있는데, 구글 클라우드의 스택드라이버 로깅이 사용이 편리하기 때문에 스택드라이버를 소개하고자 한다.구글 클라우드의 스택드라이버는 로깅뿐만 아니라 모니터링, 에러 리포팅등 다양한 기능을 제공하는 ..