본문 바로가기
MLOps - 14. FastAPI 출처 : 변성윤님 블로그. 출처 : 부스트캠프 AI Tech. 1. FastAPI 익숙해지기 1.1 Event Handler 이벤트가 발생했을 때, 그 처리를 담당하는 함수 FastAPI에선 Application이 실행할 때, 종료될 때 특정 함수를 실행할 수 있음 @app.on_event(“startup”) @app.on_event(“shutdown”) 예시 startup 할 때 머신러닝 모델 Load shutdown 할 때 로그 저장 @app.on_event(“startup”) @app.on_event(“shutdown”) 1.2 API Router API Router는 더 큰 애플리케이션들에서 많이 사용되는 기능 API Endpoint를 정의 Python Subpackage APIRouter는 Mi.. 2022. 5. 29.
MLOps - 13. FastAPI 출처 : 변성윤님 블로그. 출처 : 부스트캠프 AI Tech. 1. FastAPI 기본 지식 1.1 Path Parameter, Query Parameter 웹에서 GET Method를 사용해 데이터를 전송할 수 있음 ID가 402인 사용자 정보를 가져오고 싶은 경우 방식 Path Parameter 방식 /users/402 서버에 402라는 값을 전달하고 변수로 사용 Query Parameter 방식 (Query String) /users?id=402 API 뒤에 입력 데이터를 함께 제공하는 방식으로 사용 Query String은 Key, Value의 쌍으로 이루어지며 &로 연결해 여러 데이터를 넘길 수 있음 네이버에서 검색할 경우 https://search.naver.com/search.naver?wh.. 2022. 5. 28.
MLOps - 12. FastAPI 출처 : 변성윤님 블로그. 출처 : 부스트캠프 AI Tech. 1.백엔드 프로그래밍 1.1 Server 구성 Use Case 앱/웹 서비스의 서버가 존재 머신러닝 서비스의 서버가 존재 서비스 서버에서 머신러닝 서버에 예측 요청하며 통신함(혹은 서비스 서버의 한 프로세스로 실행) 1.2 Server의 형태 1.2.1 Monolithic Architecture 하나의 큰 서버 = 종업원, 요리사, 서랍, 계산 등을 모두 하나에서 처리하는 경우(큰 범주로 모두 서버) 모놀리식 아키텍처(Monolithic Architecture) 1.2.2 Mircroservice Architecture - MSA 종업원, 요리사, 서랍, 계산 등을 각각의 개별 서버로 구성하고 서로 통신하도록 하는 경우 마이크로서비스 아키텍처.. 2022. 5. 27.
MLOps - 11. CI/CD, Github Action 출처 : 변성윤님 블로그. 출처 : 부스트캠프 AI Tech. 1. CI/CD 1.1 현업 개발 프로세스 Local 각자의 컴퓨터에서 개발 각자의 환경을 통일시키기 위해 Docker 등을 사용 Dev Local에서 개발한 기능을 테스트할 수 있는 환경 Test 서버 Staging Production 환경에 배포하기 전에 운영하거나 보안, 성능 측정하는 환경 Staging 서버 Production 실제 서비스를 운영하는 환경 운영 서버 개발 환경을 나누는 이유 Dev = Staging = Production인 경우 - 소스 코드를 저장하면 바로 반영 PyCharm이 SSH로 서버에 바로 붙어있고, 자리비운 상황에 만약 고양이가 코드를 치고 ctrl + s를 했다면? 1.2 CI/CD 개념 서버에 코드를 보.. 2022. 5. 26.
MLOps - 10. Cloud 출처 : 변성윤님 블로그. 출처 : 부스트캠프 AI Tech. 1. Cloud 1.1 Cloud 서비스를 사용하는 이유 웹, 앱 서비스를 만드는 경우 자신의 컴퓨터(localhost)로 서비스를 만들 수도 있음 IP로 누구나 접근할 수 있게 수정하고, IP를 공유하기 등 그러나 이런 경우 자신의 컴퓨터가 종료되면 웹, 앱 서비스도 종료됨 물리적 공간, 확장성을 고려한 서버실을 만들고 운영 - 전통적인 접근 방법 IDC(Internet Data Center) 서버 컴퓨터를 넣을 공간 + 추후 서버를 추가할 때 즉각적으로 확장할 수 있는지 전기, 에어컨 등 서버가 급작스럽게 종료되지 않도록 준비가 필요함 갑자기 트래픽이 몰릴 경우, 컴퓨터 10대를 설치하기 어려움(자재 수급 이슈 등) 반대로 트래픽이 적어서.. 2022. 5. 25.
MLOps - 9. Linux & Shell Command 출처 : 변성윤님 블로그. 출처 : 부스트캠프 AI Tech. 1.Linux 1.1 Linux를 알아야 하는 이유 서버에서 자주 사용하는 OS Mac, Window도 서버로 활용은 가능하나 유료 Free, 오픈소스 여러 버전이 존재 => 여러분들의 버전을 만들 수도 있음 안정성, 신뢰성. 유닉스라 Stability, Reliability 쉘 커맨드, 쉘 스크립트 1.2 CLI, GUI CLI : Terminal Command Line Interface GUI : Desktop Graphic User Interface 1.3 대표적인 Linux 배포판 Debian 온라인 커뮤니티에서 제작해 배포 Ubuntu 영국의 캐노니컬이라는 회사에서 만든 배포판으로 쉽고 편한 설치 - 초보자들이 쉽게 접근할 수 있도록.. 2022. 5. 24.
MLOps - 8. Streamlit 실습 출처 : 변성윤님 블로그. 출처 : 부스트캠프 AI Tech. ref : https://stackoverflow.com/questions/70274841/streamlit-unhashable-typeerror-when-i-use-st-cache 출처 : https://github.com/philhoonoh/Boostcamp-AI-Tech-Product-Serving/blob/main/part2/02-streamlit/app_mrc.py import streamlit as st import time from transformers import pipeline import copy import tokenizers import os from predict import load_model, get_predict.. 2022. 5. 23.
MLOps - 7. Streamlit 출처 : 변성윤님 블로그. 출처 : 부스트캠프 AI Tech. streamlist run app.py --server.port 30002 2022. 5. 23.
MLOps - 6. Streamlit 출처 : 변성윤님 블로그. 출처 : 부스트캠프 AI Tech. 1. Streamlit 1.1 웹 서비스를 만드는 과정 데이터 분석가(또는 데이터 사이언티스트 등)가 웹 서비스를 작업하는 Flow 데이터 Product로 중요하게 된다면 프론트엔드/PM 조직과 협업 단, 프론트엔드/PM 조직은 다른 웹도 만들고 있어서 빠르게 이터레이션이 어려움 다른 조직의 도움 없이 빠르게 웹 서비스를 만드는 방법이 무엇일까? 이런 문제를 해결하기 위해 등장한 것이 Streamlit 주의할 점 : 툴이나 라이브러리에 집착하지 말고, 점진적으로 문제를 해결하는 과정에 집중하기! 현재 사용하는 도구의 장단점은 어떤 것이고 새로운 대안이 있을지 항상 생각해보기! 강의에선 Voila - Streamlit 순서로 했지만, 추후엔 S.. 2022. 5. 22.