전체 글 162

머신러닝 / Pipeline / ColumnTransformer / GridSearchCV

머신러닝 파이프라인(Pipeline), 컬럼 변환기(ColumnTransformer), GridSearchCV 완전 정리본 문서는 머신러닝 실무에서 가장 많이 사용되는Pipeline, ColumnTransformer, GridSearchCV를정의부터 사용법, 주요 메소드, 실전 예시, 그리고 데이터 전처리 및 모델 학습 팁까지하나의 문서로 정리한 자료입니다.이 글만 읽으면 머신러닝 워크플로우 전체를 이해하고 바로 적용할 수 있습니다.────────────────────────────────────────────1. Pipeline1-1. Pipeline이란?여러 단계의 데이터 전처리와 모델 학습 과정을하나의 흐름(Workflow)으로 묶어주는 Scikit-Learn 기능.기존 방식(수동으로 전처리 → 모..

모델 양자화에 대한 생각

최근 AI 최적화 기술을 공부하면서 가장 흥미롭게 느끼는 지점이 있다.바로 양자화(Quantization)라는 개념이다.처음에는 단순히,"모델을 가볍게 해서 엣지 디바이스에 올리기 위한 기술이겠지" 정도로 생각했다.스마트폰이나 임베디드 환경에서,적은 리소스로도 딥러닝 모델을 돌리기 위한 압축·경량화 도구쯤으로 말이다.하지만 공부할수록 이 기술은 단순한 '경량화' 영역이 아니었다.오히려 AI 모델을 어떻게 더 효율적으로 발전시킬 것인가에 대한철학이자 방향성에 가깝다는 생각이 들기 시작했다."작음 = 약함"일까?대규모 언어 모델 시대가 열리면서,‘큰 모델이 곧 강한 모델’이라는 인식이 자연스럽게 자리 잡았다.실제로 GPT-4, Llama 3, Mistral 등모든 거대 모델이 매개변수를 키우면서 성능을 끌어..

ONNX, TensorRT, 양자화(Quantization) 정리

딥러닝 모델을 실제 환경(특히 Edge AI, GPU 환경)에서 빠르게 실행하기 위해서는 단순히 학습만 잘한다고 끝이 아니다.현장에서 어떤 방식으로 모델을 배포하고 최적화해야 하는지 이해하는 과정에서 ONNX, TensorRT, 그리고 양자화 개념을 정리했다.목차왜 최적화가 필요한가ONNX란 무엇인가개념왜 사용하는가비유TensorRT란 무엇인가개념동작 원리비유양자화(Quantization)란 무엇인가개념FP32, FP16, INT8, INT4 비교비유ONNX → TensorRT → Edge 실행 흐름실제 적용 시 주의점정리 및 느낀점1. 왜 최적화가 필요한가딥러닝 모델은 연구용 환경에서는 GPU가 빠르게 처리해주지만, 실제 현장에서는 다음 문제들이 발생할 수 있다.GPU가 없거나 리소스가 제한된 환경전력..

공부/양자화 2025.11.05

자유도 높은 오픈월드 게임 AI 모델에 대한 아이디어

최근 LLM이 문장을 생성하는 방식에서 흥미로운 점을 발견했다.LLM은 인간의 언어를 토큰 단위로 이해하고,다음에 올 가장 그럴듯한 단어를 추론하여 문장을 완성한다.핵심은 이것이다:“다음 상태를 확률적으로 예측하고 선택한다.”즉, 모델은 문맥(Context) 아래에서 미래 상태(Token) 를 생성한다.그 구조를 인간 플레이어의 행동 시스템에 대입할 수 있을까?만약 우리가“플레이어 행동을 토큰처럼 보고,그 행동의 결과(보상/세계 변화/NPC 반응 등)를 학습”시킬 수 있다면,언어 대신 행동을 다음 토큰처럼 예측하는 LLM 게임 엔진이 가능할지도 모른다.아이디어 확장가정플레이어 행동 = 토큰게임 월드 변화 = 문장/맥락NPC 반응/보상/스토리 변화 = 다음 토큰 후보들의 확률적 분포그렇다면 아래 구조가 가..

bisect 이진탐색 모듈

🧩 1️⃣ 개념 정리bisect는 정렬된 리스트(sorted list) 를 다룰 때,특정 값이 들어갈 위치를 이진 탐색 방식(O(log N)) 으로 찾아줍니다.💡 핵심 포인트: 리스트를 “정렬 상태로 유지한 채로” 삽입할 때 매우 유용🧠 2️⃣ 기본 사용법 import bisectnums = [1, 3, 4, 7, 9]x = 5# 삽입할 위치 찾기pos = bisect.bisect(nums, x)print(pos) # 3→ 5는 인덱스 3 위치에 들어가야 [1,3,4,5,7,9]가 정렬 상태를 유지합니다.⚙️ 3️⃣ 주요 함수 4가지함수동작설명bisect_left(a, x)왼쪽 기준 삽입 위치동일 값이 있을 때 왼쪽으로 붙음bisect_right(a, x) 또는 bisect(a, x)오른쪽 기준..

[순차탐색] in 연산자 시간복잡도 비교

https://wiki.python.org/moin/TimeComplexity TimeComplexity - Python WikiThis page documents the time-complexity (aka "Big O" or "Big Oh") of various operations in current CPython. Other Python implementations (or older or still-under development versions of CPython) may have slightly different performance characteristics. Howewiki.python.org 주제: in 연산자는 어떤 자료형을 탐색하느냐에 따라 시간복잡도의 차이가 발생한다. 1) list..

2. collections 활용 패턴

1. Counter — 토큰/클래스 빈도 분석, 통계 기반 전처리자연어 처리(NLP)에서 단어 빈도(Word Frequency) 계산분류(Classification) 문제에서 클래스 불균형 확인from collections import Counter# 예: 토큰 빈도 계산tokens = ["apple", "banana", "apple", "grape", "banana", "apple"]word_freq = Counter(tokens)print(word_freq.most_common(2)) # [('apple', 3), ('banana', 2)]# 예: 데이터셋 클래스 비율 확인labels = ["cat", "dog", "cat", "bird", "cat", "dog"]label_dist = Count..

1. 파이썬 고급 자료구조 collections

클래스핵심 목적주요 특징/ 사용 예시namedtuple튜플의 필드에 이름 부여불변(immutable) 구조, 클래스처럼 필드 접근deque양쪽에서 빠른 삽입/삭제스택·큐·슬라이딩 윈도우 구현에 최적Counter요소 개수 세기리스트/문자열의 빈도 분석defaultdict기본값을 갖는 딕셔너리존재하지 않는 키 접근 시 자동 초기화OrderedDict순서가 유지되는 딕셔너리LRU Cache 등 순서 기반 로직 구현ChainMap여러 딕셔너리를 묶어 하나처럼 다룸다중 스코프 환경에서 키 검색UserDict, UserList, UserString커스텀 자료형 구현용 Wrapper상속/오버라이드로 사용자 정의 자료구조 만들 때 1. namedtuple튜플은 순서로만 접근한다.하지만 필드 이름으로 접근하면 코드 가독..

[프로젝트 후일담] Docker 기반 런타임

요약“Docker를 활용하여 리눅스 기반 런타임을 구현하였으며, 서비스별 의존성을 분리하고, 개발환경 차이에 따른 재현성을 높였으며, 추후 배포 시 이식성을 고려하였다.”즉,리눅스 기반 런타임: Docker Desktop(WLS2) 위에서 리눅스 컨테이너 실행의존성 분리: YOLO, STT, LangGraph 각각 격리된 환경재현성: 팀원/환경이 달라도 동일한 결과이식성: 로컬 ↔ 서버 배포가 동일 이미지로 가능A-EYE의 Docker 구조 한눈에컨테이너 1: YOLO (객체·세그멘테이션 추론)HTTP API (예: POST /infer) 혹은 WebSocket로 프레임/이미지 받음 → 결과 JSON 반환컨테이너 2: STT (음성 인식)WebSocket(실시간 스트림) 또는 REST(파일 업로드)로 음..

[프로젝트] 7. 프로젝트 트러블슈팅 및 향후과제

프로젝트명: 시선추적 + 월드깊이맵 + YOLOE 객체탐지 + STT + LLM (LangGraph) 융합 시스템작성일: 2025년 9월1. 개요본 프로젝트는 시선추적(eye tracking)과 월드카메라 깊이맵 추정을 결합하고, YOLOE 기반 객체탐지, Whisper STT, LangGraph LLM을 연계하여, 사용자의 응시 기반 인터랙션을 구현하는 것을 목표로 한다.개발 과정에서 다양한 기술적 트러블이 발생하였으며, 이를 해결하기 위한 트러블슈팅 결과를 아래와 같이 정리한다.2. 주요 트러블 및 해결 방안2.1 멀티 카메라 동기화 및 지연 문제 (최고 중요도)문제점: Eye cam과 World cam 간 타이밍 불일치 및 Wi-Fi 전송 지연(최대 7초).원인: 저성능 하드웨어(Raspberry ..