본문 바로가기

ML/MLops

(11)
[MLOps] Triton을 활용한 모델 배포 스마일게이트에서 제공한 데이터를 기반으로 욕설분류 bert 모델을 만들었다. 기본 소스는 다음과 같다.https://colab.research.google.com/drive/1NKYYVSex__vde-lnYCmsRmyHjJhV6cKt?usp=sharing#scrollTo=Wi1qd6i8__Jl[위의 설명은 이전 포스팅인 https://uiandwe.tistory.com/1395 에 있다]  1.Triton Inference Server  Triton Inference Server는 GPU 장비를 효과적으로 사용하면서 리소스 비용을 절약하기 위해 일종의 GPU전용 서버를 하나 만들어서 다양한 모델들을 서빙할수 있도록 돕는 추론 서버 역활을 맡은 고성능 추론에 최적화된 오픈소스 소프트웨어입니다. 다양한 모델..
ml를 쉽게 쓰기 위한 프론트 작업 몇주전 위의 영상을 보고 충격을 받았었다.내가 원하는건 "신기술을 통한 제품"을 만드는게 아니라 "사용자가 사용하기 쉬운 서비스"가 목표였었는데 말이다."너무 기술에만 매몰되어 있었을까?"하는 생각과 함께 누구나 접근하기 쉽게 하자는 생각이 들었다. 현재 팀에서는 LLM에 대한걸 내가 주도적으로 만들고, 기획자나 라벨러분들의 의견을 코딩하고, 결과값만 보여주는 형식으로 진행되고 있었다.결국 요청한 결과값을 보기위해서는 "내가 코딩하고 결과값까지 시간이 걸린다.""기획자와 라벨러가 바로 볼수 있게 만들면 되지 않아?" 이 쉬운 작업을 왜 안하고 있었을까? 하는 생각과 함께 오랜만에 프론트를 들여다 보았다. 지금 팀에서는 react를 프론트로 하고 있어서, react+zustand 조합으로 공부했다. (대충..
[system design] 이벤트 추천 시스템 1. 목표 - 사용자에게 개인화된 이벤트 목록을 표시하는 이벤트 추천 시스템을 설계 - 이벤트 : 이벤트 설명 / 가격 / 위치 / 날짜 / 시작과 종료가 있는 기간 으로 구성됨 - 다른 사용자를 이벤트에 초대하고 친구 관계를 형성 할 수 있다. - 주요 목표는 사용자에게 개인화된 이벤트 목록을 표시하는 이벤트 추천 시스템을 설계해야 한다. 이벤트의 정의는 일반 사이트의 특정 상품 / 특정 회사 제품에 대한 이벤트 일수도 / 게임 상점에서의 아이템 판매에 대한 이벤트등 다양한 계열을 볼수 있다. 일반적으로 표현하자면 특정한 기간안에 특정한 상품을 판매하는 행위로 정의할수 있다. 2. 랭킹 모델 LTR(Learning to Rank)는 지도 학습을 적용하여 순위 문제를 해결하는 알고리즘 기법의 하나로, '..
[system design] 이미지 검색 서비스 1. 요구사항 - 플랫폼에 1000억개의 이미지가 있다. 사용자가 이미지를 업로드하면 가장 유사한 이미지들을 검색해야 한다. - 이미지에는 메타데이터가 없으며, 오직 픽셀 데이터만 사용해야 한다. 2. 문제 구조화 먼저 쿼리에 해당하는 입력값은 이미지다. 사용자는 이미지를 입력하면 출력으로 이미지 리스트가 나와야 한다. 출력되는 이미지들은 쿼리 이미지와 유사한 이미지 세트를 출력한다. 먼저 해당 이미지들에 대한 분류(classification)가 되어야 한다. 특정 사물에 대한 분류를 통한 출력 세트를 만들수 있다. 혹은 특정 유사도를 통해서도 분류를 할 수 있다. 개와 고양이의 분류가 물체에 대한 인식이라면, 유사도는 비슷한 모든것을 지칭할수 있다. 표현학습은 이미지와 같은 입력 데이터를 임베딩이라는 ..
[system design] 유해 콘텐츠 감지 커뮤니티에 유해한 특정 사용자 행동, 활동 및 콘텐츠에 대한 유해한 콘텐츠와 악의적인 행위자를 식별할수 있는 시스템을 구축하는것을 목표로 하며 판별해야 할 데이터는 다음과 같다. - 유해한 콘텐츠 : 폭력, 노출, 자해, 혐오 발언등이 포함된 게시물 - 나쁜 행위/ 나쁜행위자 : 가짜 계정, 스팸, 피싱, 조직적인 비윤리적 활동 및 기타 안전하지 않은 행동 1. 요구사항 명확화 - 게시물의 콘텐츠는 텍스트, 이미지, 동영상 등이 있다. - 게시물을 등록한 사용자의 데이터가 있으며, 게시물에 대한 부가 정보도 포함되어 있다 (댓글/좋아요/싫어요/공유/신고수 등등) - 해당 플랫폼에는 매일 5억개의 게시물이 등록된다. 그 중 사람이 컨텐츠를 유해 컨텐츠로 판별 할 수 있는 라벨링은 10000개이다. - 사용..
onnx model Quantization 모델을 생성하고 단순히 배포만 하는게 아닌 서빙시에는 당연히 메모리가 적게 들어가면서 똑같은 성능을 발휘할수 있다면 최적의 결과를 얻을 수 있습니다. (성능은 똑같은데 비용은 준다고?!) 물론 모델을 어디에 배포하느냐, 어떤 모델을 사용했느냐에 따라서 상황이 달라지지만, 이번 포스팅에서는 onnx를 이용해서 배포시 모델을 양자화하는 방법입니다. onnx에 대한 설명은 예전 포스팅에서 확인하실수 있습니다. : https://uiandwe.tistory.com/1401 1. 양자화란? 모델의 인퍼런스시 가장 중요한것은 서버의 메모리를 어떻게 줄이느냐입니다. 메모리 사용량을 줄이기 위해 벡터 양자화 및 프로덕트 양자화 같은 다양한 최적화 방법을 사용합니다. 양자화는 모델 매개변수를 구성하는 32비트 크기의 실..
ONNX ONNX는 Open Neural Network Exchange의 줄인 말로 다른 DNN 프레임워크 환경(ex Tensorflow, PyTorch, etc..)에서 만들어진 모델들을 서로 호환되게 사용할 수 있도록 만들어진 공유 플랫폼입니다. ONNX를 사용하는 이유는 다음과 같습니다. 모델의 호환성을 높일 수 있습니다. 예를 들어, PyTorch로 학습한 모델을 TensorFlow Serving에서 서빙할 수 있습니다. 모델의 개발과 유지보수를 쉽게 할 수 있습니다. ONNX는 모델의 구조와 파라미터를 명시적으로 저장하기 때문에, 모델의 개발과 유지보수를 쉽게 할 수 있습니다. 모델의 성능을 향상시킬 수 있습니다. ONNX 모델을 TensorFlow Serving에서 실행하면, TensorFlow Ser..
파이프라인 구축 (with NES / notebook exceute system) 해당 글은 아래의 시스템 구조를 참고하여 만든 예제 입니다. https://devocean.sk.com/vlog/seminar/20220728_Data_Engineering_in_SKT.pdf https://netflixtechblog.com/scheduling-notebooks-348e6c14cfd6 Part 2: Scheduling Notebooks at Netflix by Matthew Seal, Kyle Kelley, and Michelle Ufford netflixtechblog.com 완성 코드 (gihtub 링크) https://github.com/uiandwe/nes/tree/main GitHub - uiandwe/nes Contribute to uiandwe/nes development ..