숙취가 야속하지만 복습은 해야지
스테이블 오디오의 음악 퀄리티가 아쉽다고 느껴서,
대신 스테이블에서 스템 제작용 사운드를 만들어볼까 생각하던 참이었다.
그런데 아래 영상을 보고 나서 마음이 바뀌었다.
� Stable Audio – Audio to Audio 기능 설명
업로드한 사운드를 원하는 악기로 바꿔주는 기능이라니, 이건 무조건 써봐야지.
정말이지 AI의 발전 속도를 따라가기가 정말 버겁다.
오늘은 숙취도 있었고, 광주 전시팀 회의만 3시간을 했더니 하루가 다 갔음.
그래도 복습은 멈추지 않는다. 내일부터는 다시 본격적으로 열작하기로.
연휴 복습 이틀째.
오늘은 MLOps 프로젝트 당시 내가 설계했던 설정 계층(configs) 과 검증 구조를 다시 정리했다.
CI/CD를 각자 연습해볼 수 있게 우선 동작하는 MVP 스캐폴드를 만들었는데 뭔지 잘 모르는 상태로 어떻게 돌아가게끔은 만들었던 것 같다.
실제 유저/배포 환경을 흉내내는 설정 계층을 마련해 개인화 시뮬레이션용 users.json,
배포 품질 기준용 gates.yaml을 구축하고, 이 두 설정을 기반으로 팀이 평가·배포 판단을 코드 수정 없이 수행하도록 GPT가 설계해줬다.
어쨌거나 팀원들이 바로 받아서 쓸 수 있게 폴더 구조를 표준화하고, 역할 주석을 달아 공유했던 내용을 다시 정리해보자면 아래와 같다.
mlops-cloud-project-mlops-6/
├─ src/
│ ├─ io/ # [Adapter] 외부 I/O 전담(HTTP, 파일, S3/MinIO, Slack 등). 도메인 계산 금지
│ ├─ pipelines/ # [Entry/Orchestration] 단계 실행 스크립트(스냅샷, 임베딩, 평가/등록)
│ ├─ validate.py # [Guard] 스키마/타입/중복 검증 → 깨끗한 DF 반환
│ └─ reco/ # [Domain Logic, PURE] 코퍼스/임베딩/kNN/리랭킹/지표 (I/O 금지)
├─ configs/ # 팀 리뷰/버전관리 대상(users.json, gates.yaml 등)
├─ data/ # 원본 스냅샷(타임스탬프). Git 미추적(README만 추적)
├─ artifacts/ # 임베딩/인덱스/모델/메타/평가 결과. Git 미추적
├─ tests/ # 단위/통합 테스트(작은 픽스처)
├─ requirements.txt
└─ .gitignore
현재 팀 폴더 구조와는 다르지만 일단 초기 단계는 위와 같았다.
1. “폴더 구조를 잘 짜려면?”
→ 임베딩과 문서화는 reco (순수 계산) 에, 입출력은 io, 실행은 pipelines 으로 분리.
→ 테스트·리뷰가 쉬워지고, CI/CD 적용이 매끄럽다.
2. “.gitignore에 왜 data/artifacts?”
→ 팀 리포 용량 초과 방지
각 고객의 데이터 구조는 다음과 같았다:
{ "user_id": "u01",
"pref_styles": {"reds": 0.9},
"pref_regions": {"France": 0.7, "Italy": 0.3},
"adventurousness": 0.2,
"seed_wines": [101,102,103,104,105] }
10명의 가상 사용자 프로필을 생성해 configs/users.json에 저장했다.
adventurousness (0~1): 높을수록 ‘선호 무시 + 다양성 강화’. 리랭커에서 가중치로 작동.
pref_styles / pref_regions: 합이 반드시 1일 필요는 없지만, 0~1로 정규화하면 튜닝이 용이.
seed_wines: 추천·평가·데모 모두에서 재활용 가능한 핵심 필드.
1. 게이트는 기준을 잡는 장치다.
결과가 일정 수준을 넘지 않으면 자동으로 배포가 막히게 해서 실수를 줄인다.
2. adventurousness 값 하나로 추천 결과의 다양성을 조절할 수 있다.
구조가 단순하면서도 효과가 크다.
3. 폴더 역할을 나눠서 처음 해봐서 헤맸지만 유지보수 관리에 좋다고 하니 앞으로도 이렇게 할 생각.
io는 입출력, reco는 계산, pipelines는 실행용으로 구분하니 헷갈리지 않았다.
4. 설정 파일은 코드로 관리하는 게 낫다. 바뀐 내용이 기록으로 남고, 누가 언제 수정했는지도 알 수 있다.
5. 결국 MLOps의 핵심은 자동화와 재현성이다. 언제 돌려도 같은 결과가 나오는 구조가 중요하다.
#AI 부트캠프 #커널아카데미 #커널아카데미부트캠프 #커널아카데미AI부트캠프