Posts
Know How & Where
Cancel

판단은 모델이, 한도는 코드가 LLM에게 도구를 쥐여주고 자율적으로 판단하게 만드는 구조를 개인 프로젝트로 몇 달 굴려봤다. 대상은 자동매매였지만, 배운 것 대부분은 도메인과 무관했다. 가장 중요한 결론부터 쓰면 이렇다. 모델의 판단을 프롬프트로 제약하려 하지 말고, 실행 계층에서 구조적으로 막아야 한다. 프롬프트에 “하루 8회 이상 거래하지 ...

코드는 다 있는데 아무것도 안 돌아간다 추론 서비스를 새 서버에 체크아웃했다. 커밋은 전부 있다. 그런데 안 뜬다. 없는 것은 이런 것들이다. 자산 위치 원본 git 추적 검출 엔진 srv/models/{MODEL}/1/model.plan ...

학습 없이 새 대상을 찾게 만들기 객체 검출기는 학습할 때 정한 클래스만 찾는다. 현장에서 “이것도 찾아줘”라는 요구가 나오면 데이터를 모으고 라벨링하고 다시 학습해야 한다. 빨라도 며칠이다. 소수샷 검출(FSOD)은 이 과정을 없앤다. 운영자가 예시 이미지와 바운딩 박스를 하나 주면, 그것을 임베딩으로 바꿔 검출기가 곧바로 같은 대상을 찾기 시작...

학습되는 손실 가중을 끄니까 3.20%p가 돌아왔다 백본 하나에 헤드 여러 개를 붙이는 멀티태스크 모델을 학습할 때 손실을 어떻게 합칠 것인가는 매번 나오는 문제다. 헤드마다 손실 스케일이 다르니 단순 합산은 위험해 보이고, 그래서 Kendall & Gal 스타일의 불확실성 가중을 쓰는 경우가 많다. 이번에 그게 정확히 반대로 작동했다. ...

컴파일이 몇 시간 뒤에 실패하는 것을 막기 NPU용 컴파일러는 대체로 느리고, 실패 메시지가 불친절하다. 그래프 어딘가에 지원되지 않는 연산이 하나 있으면 빌드가 한참 돌다가 “unsupported node”만 뱉고 끝난다. 그래서 export 직후에 ONNX 그래프를 정적으로 훑는 린터를 앞에 붙였다. 컴파일 전에 그 자리에서 잡는 것이 목적이다...

손실 구간을 나눠서 재기 PyTorch로 학습한 모델을 NPU에 올리려면 두 번 변환한다. PyTorch → ONNX → 양자화된 실행 파일(INT8) 정확도가 떨어졌을 때 “양자화 때문”이라고 뭉뚱그리기 쉬운데, 두 구간을 따로 재보면 이야기가 달라진다. 같은 가중치로 측정한 결과다. 구간 Δ 오...

두 모델, 반대 방향을 가리키는 두 숫자 시계열 예보 모델 두 개를 같은 하드웨어, 같은 양자화 조건에서 비교했다. 둘 다 과거 120초 창을 보고 30초 앞을 예측한다. 예측값은 이상 검출기로 들어가서 “정상 범위를 벗어났는가”를 판정한다.   예측 오차 (nMAE) 이상 검출 판정 통과율 ...

모델을 쪼개면 생기는 문제 검출 모델 두 개를 한 프레임에 돌리고 싶다. 하나는 일반 객체 검출기, 하나는 소수샷 검출기라고 하자. 두 모델을 한 프로세스에 넣으면 간단하지만, GPU 배분·재기동·모델 교체가 전부 묶여버린다. 그래서 프로세스를 나누고 결과를 메시지로 발행하는 구성으로 간다. 그러면 융합 단계에서 문제가 생긴다. 융합 함수는 “한 ...

같은 물체인지 어떻게 아는가 카메라 여러 대가 같은 지역을 본다. 각 카메라는 자기 화면에서 객체를 검출하고 자기 트래커로 ID를 붙인다. 그런데 카메라 A의 3번과 카메라 B의 7번이 같은 물체인지 아닌지는 아무도 모른다. 이걸 판정해서 전역 ID를 부여하는 것이 카메라 간 연관(association)이다. 파이프라인으로 쓰면 네 단계다. 0....

깊이가 없는 카메라로 위치를 구한다는 것 카메라 한 대로 검출한 객체의 실제 좌표를 구해야 하는 상황이 있다. 스테레오도 라이다도 없고, 자세(pose)와 내부 파라미터만 있다. 이때 성립하는 것과 성립하지 않는 것을 먼저 분명히 해야 한다. 단안 카메라에는 깊이가 없다. 픽셀 하나가 결정하는 것은 3차원 공간의 점이 아니라 카메라 중심에서 뻗어나...