POPULAR POSTS

공부 • 2023.09.06 14:21

Buffer란 무엇일까?

일상생활에서는 버퍼링 걸린다 라고 할때 쓰이고, 코딩을 하다보면 여러 분야에서 사용이 되는것이 버퍼입니다. 파일 입출력을 할때 크게 신경안쓰고 사용한 "버퍼" 과연 어떤 뜻인지 궁금하여 자세히 알아보았습니다. Buffer 의 사전적 의미 영단어 의미 1. 완충제 2. (기차나 철로의) 완충장치 3. (충격을) 완화하다 정보통신용어 의미 (네이버 지식백과 출처) 하나의 장치에서 다른 장치로 데이터를 전송할 경우에 양자간의 데이터의 전송속도나 처리속도의 차를 보상하여 양호하게 결합할 목적으로 사용하는 기억영역 즉 Buffer는 장치들 사이에서 데이터 전송할때 서로 다른 데이터 전송 및 처리 속도를 완충하기 위한 목적을 가진 장치임을 알 수 있습니다. Buffer는 데이터 전송 및 처리 속도 차이를 완충하기 ..

Tip • 2026.07.15 17:09

Google Drive 대신 Syncthing으로 옮긴 Obsidian 볼트 구축기 - 실시간 동기화 + 자동 백업까지

Windows에서 Obsidian을 Google Drive로 동기화해서 쓰다 보면 어느 순간 이런 상황을 겪게 됩니다.Google Drive 데스크톱 앱이 갑자기 실행이 안 됨고쳐서 되게 해두면 며칠 뒤 또 같은 문제 반복노트를 저장할 때마다 파일이 자잘하게 계속 바뀌는데, 이런 사용 패턴과 Google Drive 동기화 엔진의 궁합이 좋지 않음이 글은 이 문제에서 벗어나기 위해 구축한 구조와, 그 과정에서 겪은 삽질까지 순서대로 정리한 기록입니다. 최종 구조구간방식역할Windows PC ↔ 개인 서버 ↔ 안드로이드Syncthing (실시간, 양방향, P2P)실제 노트 작업개인 서버 → Google Driverclone sync (매일 새벽 자동, 단방향)재해 대비 백업핵심 아이디어는 "실시간 작업"과 ..

AI • 2026.07.10 21:11

INT8 양자화, PTQ로는 mAP가 61% 붕괴했다 - 원인 추적과 QAT 실험기

"INT8로 배포하면 mAP가 얼마나 떨어질까?"단순한 궁금증으로 시작했는데, 결과는 예상보다 훨씬 나빴습니다.그리고 원인을 추적하는 과정에서 "어느 레이어 때문이다"는 가설이 하나씩 기각되면서, 결국 nano 아키텍처 구조 전반의 문제라는 결론에 도달했습니다. 실험 대상: VisionicNet v14, FP32 baseline mAP@50-95 = 0.3522 기존 모델 포스팅의 양자화를 이어 진행한 후기 글입니다.※ 기존 모델 포스팅 링크 CPU/NPU 환경에서 YOLO를 대체하는 경량 객체탐지 모델 개발 - VisionicNet 개발기약 2달간 진행한 경량 객체탐지 모델 개발 프로젝트를 정리해보려 합니다. 결론부터 말씀드리자면 YOLO v8 Nano 대비 추론 속도 & 정확도 ± 10% 수준의 상용..

AI • 2026.06.24 14:49

[영상 AI 추론 최적화] 3. YOLO 모델 포맷별 추론 속도 비교 - PyTorch / ONNX / OpenVINO

시리즈 구성1편: 동기 vs 비동기 — 프레임워크별 성능 비교2편: DB I/O 호출 전략에 따른 성능 차이3편: YOLO 모델 포맷별 추론 속도 비교 (PyTorch / ONNX / OpenVINO) ← 현재 글 마지막 편입니다.1편에서 비동기 처리로 최대 48%, 2편에서 DB I/O 전략으로 63%를 줄였습니다.이번에는 모델 포맷 자체를 바꾸면 얼마나 달라지는가입니다.같은 YOLO 모델을 PyTorch, ONNX, OpenVINO 세 포맷으로 변환해서 CPU 전용 환경에서 직접 비교했습니다. 테스트 환경항목사양CPUIntel i7-12700HRAM32GB운영체제Windows 11Python3.12영상15분YOLO 모델 사이즈n (나노)실행 환경CPU onlyGPU를 사용하지 않는 이유는 이 프로젝트..

AI • 2026.06.11 16:53

CPU/NPU 환경에서 YOLO를 대체하는 경량 객체탐지 모델 개발 - VisionicNet 개발기

약 2달간 진행한 경량 객체탐지 모델 개발 프로젝트를 정리해보려 합니다. 결론부터 말씀드리자면 YOLO v8 Nano 대비 추론 속도 & 정확도 ± 10% 수준의 상용 라이선스 자유로운 모델을 만드는 데는 성공했고, INT8 배포는 아직 과제로 남아있습니다. 소요 시간 : 약 12개월학습(GPU 가동) 시간 : 약 315시간(약 13일) 소요개발 방식 : 1인 개발 + AI 툴(Claude, Gemini) 목표YOLO v8 Nano 모델을 대체할 CPU환경에 최적화 된 객체 탐지 모델 개발.추론 속도 및 정확도(mAP50-95)를 ± 10% 안에 드는것이 1차 목표배포 대상 : CPU 기반 서버, 모바일 엣지 디바이스 왜 만들게 됐는가?YOLO는 객체탐지 분야에서 사실상 표준처럼 쓰이는 모델이지만, Ul..

RECENT POSTS

딥러닝 양자화(Quantization) 정리 PTQ와 QAT, 수식으로 비교해보기

모델을 실제 엣지 디바이스나 NPU에 배포하려다 보면 양자화를 피하기 어렵습니다.특히 VisionicNet 개발 과정에서 INT8 배포를 시도하며 PTQ가 왜 실패하는지, QAT가 내부적으로 어떻게 동작하는지를 직접 겪었는데, 이번에 개념을 처음부터 다시 정리해봤습니다.수식과 가상 예시를 통해 두 방식의 차이를 단계별로 비교합니다. 양자화란FP32(32비트 부동소수점)로 표현되는 가중치와 활성화 값을 INT8 등 낮은 비트의 정수형으로 변환하여 메모리 사용량을 줄이고 추론 속도를 높이는 기법입니다.대표적인 방식이 PTQ와 QAT 두 가지입니다. PTQ (Post-Training Quantization, 훈련 후 양자화)이미 학습이 완료된 모델의 파라미터를 추가 재학습 없이 직접 양자화하는 방식입니다. 기..

썸네일

선형변환에서 고유값·고유벡터까지

AI 모델을 뜯어보다 보면 결국 벡터, 행렬, 선형변환, 고유값·고유벡터 같은 개념과 계속 마주치게 됩니다.이 글은 "AI는 결국 무엇을 하는 존재인가"라는 질문에서 출발해,선형변환의 정의부터 고유값·고유벡터가 실제로 PCA(전처리)와 SVD(모델 압축)에서 어떻게 쓰이는지까지 정리한 학습 노트입니다. 1. 선형변환은 "행렬"이 아니라 "동작"이다저는 선형 변환을 공부하면서 개념에 대해 갈피를 못잡고 있었습니다.특히 가장 먼저 짚어야 할 오해는 "선형변환 = 행렬"이라는 개념입니다.정확히는 다릅니다.선형변환 $T$: 벡터를 다른 벡터로 옮기는 추상적인 동작(함수). 아래 두 조건을 만족해야 합니다.가법성: $T(\mathbf{x}+\mathbf{y}) = T(\mathbf{x}) + T(\mathbf{y..

썸네일

행렬이란? - 데이터 그릇에서 CNN까지

딥러닝 코드를 짜다 보면 W @ x, A @ B 같은 행렬 곱셈을 매일 씁니다.그런데 막상 "행렬이 뭔가요?"라고 물으면 "숫자를 격자로 늘어놓은 것"이라는 답 이상을 말하기가 쉽지 않습니다. 이번에는 행렬의 두 가지 관점, 행렬 곱셈이 왜 그런 규칙으로 계산되는지, 그리고 CNN에서 행렬 곱셈이 어떻게 쓰이는지까지 순서대로 정리해봤습니다. 행렬을 보는 두 가지 관점1. 정적인 관점 - 데이터를 담는 그릇가장 직관적인 형태입니다. 서로 연관된 데이터를 행(Row)과 열(Column)로 정리하는 표입니다.엑셀 시트 / DB 테이블: 행은 '사람', 열은 '키, 몸무게, 나이'흑백 이미지: 가로×세로 픽셀의 밝기 숫자를 담은 격자판 ($28 \times 28$ 행렬)인접 행렬: 사람 간 친구 관계나 웹페이지..

썸네일

ViT-Base를 처음부터 구현해서 ImageNet-1K 300 epoch 완주했습니다

38일간 돌아가던 학습이 끝났습니다.epoch 300를 학습하면서 생긴 좌충우돌을 기록해보고자 합니다.프로젝트 목적이 프로젝트는 timm이나 HuggingFace의 ViT를 가져다 쓰는 게 아니라,patch embedding · multi-head attention · transformer block · classifier head까지 전부 PyTorch로 직접 구현하며Transformer 아키텍처를 체득하는 개인 학습/연구 프로젝트입니다. 로드맵은 이렇습니다.ViT 구현 - Transformer 구조 직접 구현 및 검증VLM 구현 - 학습된 ViT를 시각 인코더로 삼아 LLM + Projector를 연결하는 LLaVA류 멀티모달 파이프라인 구축데이터셋 단계적 확장 - MNIST → ImageNet-1K..

썸네일

자유도, 선형 변환 정리

지난 글에서 표본분산의 분모가 $n-1$인 이유를 설명할 때 자유도(Degrees of Freedom)를 잠깐 언급했습니다.그 개념을 제대로 이해하려면 좀 더 파고들 필요가 있어서, 이번에는 자유도와 그 주변 개념들을 같이 정리합니다.자유도 (Degrees of Freedom, df)자유도는 전체 데이터 중 어떤 제약에도 얽매이지 않고 독립적으로 선택할 수 있는 데이터의 수입니다.$$df = N - K$$$N$은 전체 데이터 수, $K$는 독립적인 제약 조건의 수입니다. 자유도를 이해하는 핵심은 두가지 종류의 데이터를 구분하는 것입니다. 1. 독립적으로 새롭게 제공되는 정보. 기존 데이터나 공식으로 예측할 수 없는 순수한 새 정보2. 평균 같은 이미 계산된 제약 조건 때문에 자동으로 결정된 값 표본분산에..

썸네일