본문 바로가기

전체 글

(224)
2단계 추천 시스템(Two-stage Recommendation System) vs. two-tower 구조 2단계 추천 시스템 (Two-stage Recommendation System)정의: 추천 시스템에서 효율성과 정확성의 균형을 맞추기 위해, 추천을 두 단계로 나눠서 처리하는 구조.📌 구성1단계 - Retriever (Candidate Generation)→ 전체 수백만 개의 아이템 중에서 수백~수천 개의 후보 아이템을 빠르게 추출→ 빠르고 단순한 방식 사용 (ex. dot product, 유사도 기반 검색 등)2단계 - Ranker (Scoring & Ranking)→ Retriever가 뽑은 후보 아이템을 대상으로 복잡한 모델로 정밀하게 점수 계산→ 사용자 행동 예측 모델 등 사용하여 최종 추천 순서를 결정🏁 왜 2단계로 나눌까?모든 아이템을 정밀하게 평가하는 것은 계산량이 너무 큼따라서 먼저 빠..
Regression task의 Loss: L1, L2, Huber, Log Cosh Loss 각 Loss의 장단점 및 특징1. MSE Loss (L2 Loss)$$L2\ Loss = \frac{1}{N} \sum_{i=1}^{N} (y_i - \hat{y}_i)^2$$- 장점: Convergence(수렴)가 더 빠르다.- b/c 실제값과 치아기 크면 해당 Loss 값은 더욱 크다. (MSE은 Quadratic 하므로)- 단점: Anomaly (Outlier)에 대해서 더 민감하다. 2. MAE Loss (L1 Loss)$$L1\ Loss = \frac{1}{N} \sum_{i=1}^{N} |y_i - \hat{y}_i|$$- 장점: MSE와 비교했을 때 Anomaly에 대해서 비교적 robust하다.- 단점: 0에서 미분가능하지 않다. MSE보다 초반 학습이 느릴 수 있다. 3. Huber Lo..
[MySQL] Concat 여러 문자열 혹은 칼럼 값을 합쳐서 가져와야 하는 경우에 사용한다.입력한 순서대로 합쳐서 반환해준다.문제 예시 - [프로그래머스] 잡은 물고기 중 가장 큰 물고기의 길이 구하기문제FISH_INFO 테이블에서 잡은 물고기 중 가장 큰 물고기의 길이를 'cm' 를 붙여 출력하는 SQL 문을 작성해주세요.이 때 컬럼명은 'MAX_LENGTH' 로 지정해주세요.코드SELECT CONCAT(max(LENGTH),'cm') AS MAX_LENGTHFROM FISH_INFO 참고: https://extbrain.tistory.com/52
[Python] Collections (deque, OrderedDict, defaultdict, Counter) Collections은 자료구조에 대한 기본 모듈을 포함하고 있다.from collections import dequefrom collections import OrderedDictfrom collections import defaultdictfrom collections import Counter1. deque효율적 메모리 구조로 기존 list보다 처리 속도가 빠르다.Deque는 Double-ended Queue이다.Double-ended는 양 끝에 elements를 추가/삭제를 지원한다는 의미이다.내부적으로 deque는 double-lined list로 구현되어 있다. 그래서 양 끝의 요소의 추가/삭제가 O(1)을 만족한다. 덱과 다르게 python의 리스트는 fixed size memory bloc..
AWS EKS에 설치한 Kubeflow Artifact 저장소 크기 늘리기 오전 7시 50분에 회사로부터 전화가 왔다.새벽 1시 임시 메일이 발송이 안된 거 같은데 오전 9시 서비스에 문제가 없는지 물어보셨다.확인해 보니 새벽 12시부터 kubeflow의 모든 pipeline이 다음 에러와 함께 실행되고 있지 않았다.This step is in Error state with this message: failed to save outputs: timed out waiting for the condition failed to save outputs로 유추해 보았을 때 pipeline의 artifact 저장소가 꽉 찬 것이 아닐까 의심해 봤다.df -h로 확인해 보았을 때 data폴더가 60.2G를 사용하고 있었다.# df -hFilesystem Size ..
ray를 활용한 noaa sflux 데이터 수집 파이프라인 디버깅 Background 7월 8일부터 noaa sflux 데이터 수집에 문제가 있었음 이제까지 문제가 발생하지 않았던 이유는 3일치 데이터가 있다면 inference는 가능하기 때문에 Error AttributeError: module 'pydantic.fields' has no attribute 'ModelField' ray가 코드를 수정하면서 같은 이슈를 겪고 있는 사람들이 많음 ray에도 issue가 올라옴 pydantic이 2023-07-06에 release함. 원인 및 해결법 ray에서 pydantic의 버전을 명시하지 않고 있음 이로 인해 pydantic 2.0.2가 release되면서 문제가 발생 따라서 mrxolar-nwp pipeline을 위한 docker image를 빌드함 이때 ray==..
[알고리즘] Disjoint Set (서로소 집합) - Union, Find Disjoint Set (서로소 집합) 두 개 이상의 집합을 형성할 때, 교집합이 공집합이 되도록 구성하는 자료구조 ex) A={1, 2, 3}과 B={4, 5, 6}은 서로소 집합 ex) C={1, 3, 5}과 D={3, 5, 7}은 서로소 집합이 아니다. Disjoint Set은 대개 Tree로 구성한다. 항상 Parent-Child관계와 Root Node가 존재한다. Disjoint Set 연산 Disjoint Set은 두 가지 연산을 지원한다. Union(x, y) x가 속하고 있는 집합과 y가 속하고 있는 집합을 합친다. 이때 x와 y가 같은 집합 내에 있다면 합치지 않는다. Find(x) x가 속하고 있는 집합을 구한다. Python 코드 parent = [p for p in range(v+1..
맥북 M1에서 하둡 설치하기 필요한 프레임워크 다운로드 1. 하둡 3.3.0 다운로드 사이트 - https://hadoop.apache.org/release/3.3.3.html 2. 자바 1.8이상 버전 다운로드 사이트 - https://www.oracle.com/java/technologies/downloads/#jdk20-mac 3. 하이브 다운로드 사이트 - http://apache.mirror.cdnetworks.com/hive/hive-3.1.2/ 하둡 설치 1. 압축풀기 tar xvfz hadoop-3.3.0.tar.gz 2. 하둡 설정 디렉토리로 이동 cd hadoop-3.3.0/etc/hadoop/ 3. 환경파일(hadoop-env.sh) 수정 export JAVA_HOME=/Library/Java/JavaVirtua..