본문 바로가기

전체 글

(36)
머신러닝 시스템 디자인 패턴 - 02. 모델 만들기 2.1 모델 작성 모델 개발의 흐름 데이터 분석과 수집 가장 긴 시간과 인력이 투입되어야할 수 있음 데이터 간의 관계 정리 필요 주의할 점 - 같은 칼럼일지라도 실제 의미하는 바가 다를 수 있음 - 갱신되는 주기가 다를 수 있음 - 타입이 일치하지 않을 수 있음 데이터 어노테이션 필요. 잘못된 지시나 재작업이 발생하면 박대한 손실과 프로젝트의 지연으로 이어짐 모델 선정과 파라미터 정의 평가 결과가 좋은 모델과 실제 시스템에서 사용할 수 있는 모델은 다름 유저-인터랙티브한 어플리케이션에서 모델의 정확도가 높아도 추론 시간이 오래걸리면 좋은 모델이 아님 전처리 이 시점부터 자동화 가능 학습 처음부터 복잡한 모델로 학습하지 않아야함. 복잡한 모델일수록 정확도는 높지만, 연산량이 많고 학습에 소모되는 비용도 커..
머신러닝 시스템 디자인 패턴 - 01. 머신러닝 시스템이란 1.1 머신러닝, ML옵스 및 시스템 머신러닝에 필요한 시스템 컴포넌트 머신러닝 시스템 워크플로 머신러닝에 초첨을 맞췄을 때는 학습 페이즈와 추론 페이즈로 나눌 수 있음 학습 페이즈와 추론 페이즈 학습 페이즈 : - 데이터 수집 - 데이터 정제(클렌징) - 모델 학습 - 실험 및 검증 - 목적에 맞는 알고리즘 선택 - 파라미터 튜닝 - 모델 평가 추론 페이즈(소프트웨어 엔지니어링 요소) - 인프라 구축 - 외부 시스템과의 네트워크 설계 - 보안 - 입출력 인터페이스 정의 - 코딩 - 각종 테스트 로그 수집 - 감시 통보의 설정 - 운용체제 머신러닝 모델은 실제로 활용되어야 가치가 생김. 1.2 사용자 중심의 머신러닝 1.3 머신러닝 시스템에 필요한 요소 머신러닝이 운용되는 시스템 워크플로 배포~활용 단계..
로컬터미널(TSX)에서 gcp ssh 접속 1. ssh-keygen을 이용한 ssh key 생성 ssh-keygen -t rsa -b 4096 -f gcp_rsa_4096 -C "${GCP 메일 주소}" (패스워드 입력하라고 나오는데 필수는 아님) 2. gcp_rsa_4096(개인키), gcp_rsa_4096.pub(공개키) 파일 생성된 것 확인 3. GCP 콘솔에서 메타데이터 접속 4. ssh키에 gcp_rsa_4096.pub파일 전체 복사 후 추가 5. 명령어 접속 ssh -i gcp_rsa_4096 ${USERNAME}@${IP} 6. TSX를 이용한 credential 등록 후 자동 접속 credentials -> specify username and password 에서 계정 입력 credentials -> private key file..
실행중인 docker container에 restart 옵션 추가 이미 실행된 컨테이너에 --restart=always 옵션을 추가하는 법 docker update --restart=always ${CONTAINER}
인증 오픈소스 vault vault의 핵심 컨셉 https://learn.hashicorp.com/tutorials/vault/getting-started-intro?in=vault/getting-started What is Vault | Vault - HashiCorp Learn What is HashiCorp Vault and where does it fit in your organization? learn.hashicorp.com - credentials 세트를 관리 - credentials : username, password, api tokens, TLS certificates 등 identity확인 - vault의 핵심 : 중앙에서 관리, 모든 정보를 암호화 (vault 내부 및 client 모두) - 특징 1. 저장..
fastapi context 주입 fastapi 실행 커맨드 : uvicorn main:app --host 0.0.0.0 --port 8000 현재 실행 경로의 main.py을 가지고 실행함 현재 경로의 main.py가 아닌 다른 경로의 모듈을 실행하고 싶다면 --app-dir 옵션을 사용 어느 위치에서 명령어를 입력하던 /workdir의 의존성을 주입해 /workdir/main.py를 실행하고 싶을 때 : uvicorn --app-dir /workdir main:app --host 0.0.0.0 --port 8000
service 생성 후 systemd에 등록 ex) /home/run-server.sh 스크립트를 서비스로 등록해서 재부팅 시에도 항상 서비스가 뜰 수 있게 하고자 함 1. service 파일 생성 기본 서비스 위치 : /etc/systemd/system root 권한으로 실행 sudo su cd /etc/systemd/system vi ${SERVICE_NAME} 예제 : /etc/systemd/system/example.service Requires : 필요한 타겟 After : 의존성이 있는 타겟 (이 타겟들이 실행된 후에, 서비스를 띄움) ExecStart : 등록할 스크립트 위치를 기입 (ex- /home/run-server.sh) [Unit] Description= ${서비스 설명} Requires=network.target After=..
로깅 시스템 및 로그 설계 중앙 집중식 로깅 MSA에서는 각각의 마이크로서비스가 분산 환경에서 운영됨 각 서비스에서 발생한 로그 파일들은 파편화되어, 트랜잭션을 처음부터 끝까지 순서대로 추적하는 것이 불가능해짐 로그의 출처에 상관없이 모든 로그를 중앙 집중적으로 저장, 분석해야함 -> 서비스 실행 환경에서 분리하여 관리 장점) 로컬 장비의 디스크 공간을 사용하지 않음, 로컬 I/O나 디스크 쓰기 블로킹이 없음 로그 스트림 마이크로서비스가 만들어내는 로그 메시지의 스트림 ex) Log4j(메세지 스트리밍), DB 로그, Network 로그 등 로그 적재기 로그 메시지의 수집 수집된 로그를 다른 종단점으로 보냄 ex) Logstash, Fluentd, Logspout 로그 스트림 처리기 신속한 의사 결정에 필요한 실시간 로그 이벤트 ..