전체 글 51건

모델 서빙 •

Triton Inference Server로 옮겼더니 30% 빨라졌다, 그런데 Triton 덕분이 아니었다 (멀티모델 비전 파이프라인 마이그레이션 실측기)

FastAPI 단일 컨테이너에서 돌던 멀티모델 비전 파이프라인(모델 6~7개)을 NVIDIA Triton Inference Server로 옮겼고, E2E 지연이 약 30% 줄었습니다 (H100 1장, warmup 후 측정). 그런데 개선의 대부분은 Triton 자체가 아니라 OpenMMLab(MMEngine) inferencer의 파이프라인 오버헤드를 걷어낸 데서 나왔습니다. 가장 무거운 단계만 1,031ms → 567ms(-45%)였습니다.Triton의 진짜 이점은 속도보다 운영에 있었습니다. 모델별 독립 배포, GPU 메모리 40GB+ → 18.6GB가 그 예입니다.TensorRT 변환, 인스턴스 늘리기, 배치 키우기는 오히려 느려지거나 정확도가 깨진 경우가 많았습니다. 아래에 실패 사례와 에러 메시..

카테고리 없음 •

아리까리사시내험

1️⃣ 데이터/파일 처리 중심Q1. CSV → dict 변환 def load_scores(filename: str) -> dict: scores = {} with open(filename, "r", encoding="utf-8") as f: for line in f: name, score = line.strip().split(",") scores[name] = int(score) return scoresQ2. 평균 & 최고점def stats(scores: dict) -> dict: values = list(scores.values()) return { "avg": sum(values) / len(values), ..

GraphQL •

GraphQL 페이지네이션

GraphQL Topic: Pagination in GraphQL Introduction Pagination is a common feature in APIs that return large amounts of data. In GraphQL, pagination can be achieved using a combination of arguments and return types. Main Content There are several ways to implement pagination in GraphQL, including using cursors, offsets, and limit/offset combinations. One approach is to use cursor-based pagination,..

CS/언어 •

Logging 전략

Python에서는 logging 모듈을 기본적으로 제공 1-1. Log Level Python의 기본 레벨 = WARNING https://docs.python.org/3.7/howto/logging.html#when-to-use-logging 1-2. Root Logger import logging logging.warning('This is a warning message') # 아래와 같은 메시지가 콘솔에 출력됩니다 # WARNING:root:This is a warning message logging.info('This is an info message') # 아무 것도 프린트 되지 않습니다 import logging logging.basicConfig(level=logging.INFO) logg..

CS/데이터베이스 •

transaction

transaction의 음침한 면 트랜잭션을 건다는 것 → 그 Connection Pool을 DB서버에서 잡고 있는 것이다. 즉 트랜잭션이 많으면 많을수록 서버가 잡아야하는 Pool 개수도 많아져서 부담이 많이 되는 것이다. 그러므로 킬링 서비스가 아닌 이상 트랜잭션을 하는 것을 권장하지는 않는다. 물론 써야할 때는 써야한다. 근데 '돈', '개인정보' 같이 비즈니스적으로 매우 중요한 곳에만. 트랜잭션 서비스 내부에서 트랜잭션 서비스를 쓰는 경우 어떤 경우인가? - 전체를 롤백하지 않을 서비스인 경우. 그 내부 서비스가 롤백되더라도 전체에선 커밋하는 경우이다. 이 개념이 중요 전체 롤백이 필요한 경우, 상위 트랜잭션에서 try-catch로 잡아야한다.

GraphQL •

Schema Merge vs Federation(=join)

어느 요청이든 같은 api gateway를 바라본다. 이를 위해서는 gateway에서 여러 graphql 스키마를 합쳐야 한다. 결국 모든 스키마가 gateway에 합쳐진다. 이 과정이 바로 schema merge. 모든 스키마가 합쳐지기 때문에 네이밍이 중요하다. A라는 api서버에서 설계한 스키마에 `Slot`이라는 타입이 존재하고 B라는 api서버에서 설계한 스키마에도 `Slot` 이라는 타입이 존재한다면 어떻게 될까 충돌로 판단 gateway에서 두 타입이 충돌이라고 판단했다면 이는 결국 빌드가 되지 않고 에러를 리턴한다 충돌로 판단하지 않는 경우 이 경우가 더 심각한 경우인데 두 타입이 충돌되지 않고 합쳐진 것 자체가 설계가 잘못된건데 우연하게도 아무 문제없이 합쳐졌다고 생각하더라도 그 후에 r..

여러 오류 •

vscode dev container "Opening Remote" 오류

1. problem dev container remote가 되지 않는다. → 일시적인 네트워크 문제일 가능성이 크지만 언제 해결될지 몰라 능동 해결이 필요 2. solve dev container의 install log를 봐서 설치 중인 vs code server의 commit id를 확인 수동으로 해당 vscode-server를 다운 wget -O vscode-server.tar.gz 3. 해당 tar를 접속하려는 remote container의 /root/.vscode-server/bin/{commit_id}로 이동 (exec 등으로 컨테이너 직접 접근) 4. tar 압축 해제 후 vscode로 접속 tar -xvzf ~/.vscode-server/{커밋명}/vscode-server.tar.gz -C..

mlops/git •

git token으로 pull/push 시 head가 달라지는 에러

1. 문제점 git pull → 원격 Head 와 로컬 Head가 일치하지 않는 이슈 ⇒ 정확히는 로컬 Head는 최신 Commit으로 position하는데 원격 Head는 이동하지 않음 sudo git pull sudo git add . sudo git commit -m "update yaml" sudo git push # git status나 git log를 쳐보면 remote git repo랑 동기화가 안되있음(local head가 remote head보다 앞서있음), 기존 git pull에서 문제가 없었던 이유는 기존 git pull은 아래와 같이 사용 git pull origin master Username: Password: 현재에는 아래와 같이 토큰( private access token, ..