Pytest basic
·
인공지능/Python
우리는 왜 pytest를 사용해야하는가?Intuitive Syntex : pytest offers readable, expressive way to write tests.Powerful Fixtures : Easily set up and tear down test environments with fixturesRich Plugin Ecosystem : Extend pytest's capabilities with a wide range of plugins 사용법설치 : pip install pytest테스트 파일 명명 : *_test.py or test_*.py (*은 문구)테스트 함수 명명 : test_*  라는 이름으로 명명 (*은 문구)클래스 이름 명명 : Test* 라는 이름으로 명명 (*은 문구)..
Python 프로그래밍 시 필요한 개념
·
인공지능/Python
Virutal Environment를 활용하여 독립적인 환경을 구축하고, 해당 환경 내에서 Package를 구성할 것. Packages DefintionSelf-contained collections of Python modules, libraries, and other resources that provide reusable functionality for your projects ModularityPackages break down complex code into manageable units, making projects easier to organize and maintain. CollaborationPackage facilitate code sharing and collaboration, sav..
LSTM & GRU
·
인공지능/기초
LSTM (Long Short Term Memory)LSTM은 Hochreiter & Schmidhuber (1997)  에서 처음 소개되었다. RNN에서 발생할 수 있는 Vanishing Gradient Problem을 해결하기 위해 Cell gate를 활용한다. 이는 장기기억 즉, 과거의 먼 시점의 input을 기억할 수 있도록 한다.RNN은 총 2개의 input, hidden state $h_{t-1}$ 과 현재 시점의 input $X_t$ 를 활용하지만LSTM은 이전 시점에서 오는 hidden state $h_{t-1}$ , Cell state $C_{t-1}$ 그리고 현재 시점의 input $X_t$ 총 3개를 Input으로 활용한다. LSTM의 단게별 설명Forget gate layerInpu..
(Scaled) Dot-Product Attention
·
인공지능/기초
좌측의 사진을 보면, 이전 글에서 설명한 Sequence-to-sequence와 같은 구조를 가지고 가는 것을 알 수 있다. 하지만, RNN(또는 LSTM)을 사용하게 되면 발생하는 Vanishing Gradient Problem이 발생할 수 밖에 없다. 만약, Encoder의 첫 Input이 영향을 크게 줘야한다면 영향을 주기 어렵다는 뜻이 된다. 이를 해결하기 위해, 좌측의 사진처럼 Encoder Section의 값을 모두 검토하는 방식을 채택하게 된다.단계별 분석Step1. Attention score 구하기하지만 $score(s_{t}, h_{i}) = s_{t}^{T}h_{i}$$s_t$ : t 시점 decoder 셀의 hidden state$h_i$ : i 시점 encoder 셀의 hidden..
Sequence-to-sequence(seq2seq) & Teacher-forcing
·
인공지능/기초
기본 개념RNN(LSTM)으로 이루어진 인코더와 디코더를 가지는 구조. 논문 상에서는 번역을 위해 사용.코드로 구현 시 인코더와 디코더는 같은 형태를 가짐(같은 계층 수와 해당 계층 내에 같은 크기의 hidden size) 모델 구조주요 수식$(x_1 , ..., x_{T})$ : Input sequence$(y_1 , ..., y_{T'})$ : Input sequence에 해당하는 Output sequence(Input sequence와 같은 길이가 아닐 수 있음)$v$ : input sequence의 마지막 input으로 부터 나온 마지막 hidden state 값 추가적으로 설명하면,input sequence를 인코딩해서 hidden state로 넘겨준다.해당 hidden state의 값을 활용하..
MLOps 구성요소(2)
·
MLOps/이론
배포 프로세스Continuous Deployment프로덕션 테스트 필요, 배포 전략 설정(카나리, Shadow, etc.)모델 추론 서비스 배포된 모델이 실제로 사용자에게 결과를 추론해주는 서비스서비스 방식 - Online serving(API), Batch serving, Streaming어플리케이션 형태로도 제공 가능Pre/Post-processing 로직이 필요한 경우 있음.Kserve, Seldon core, TorchServe, Triton inference server, etc.모니터링프로덕션 테스트 포함(실제 데이터에 대한 성능 분석)데이터 모니터링(Data drift 현상 추적)알람 기능Prometheus, Grafana, Elastic, etc.스케쥴러특정 조건에 의해 머신러닝 파이프라인..