통신 3사 셋톱박스 설명서 기반 RAG 챗봇 구축기
·
머신러닝 & 딥러닝 & AI 맛보며 친해지기
개요 본 프로젝트는 KT, SK브로드밴드, LG U+ 등 국내 주요 통신 3사의 셋톱박스 설명서를 기반으로, 사용자의 자연어 질문에 실시간으로 LLM을 통해 응답하는 RAG기반 기술지원 챗봇을 구축하는 것을 목표로 하였다. 이전 실습을 바탕으로 실무에 적용할 수 있는 주제를 통해 나의 기술 확장성을 키우고자 진행하였다. 기획 배경기존의 GPT 기반 응답은 인터넷 검색 결과에 의존하여 부정확하거나 일반적인 수준의 답변을 제공하는 한계가 있었다. 이에 따라, 실제 제품 설명서를 벡터 데이터베이스에 구축함으로써, 보다 신뢰도 높은 문서 기반 응답이 가능한 시스템을 구현하고자 하였다.개발 프로세스주제 선정 및 자료 수집각 통신사 공식 웹사이트 및 고객지원 채널을 통해 셋톱박스 관련 매뉴얼과 설명서를 수집하였다...
LangChain으로 구현한 KT 에이블스쿨 QnA RAG 챗봇 개발기
·
머신러닝 & 딥러닝 & AI 맛보며 친해지기
이번 실습에서는 미래의 KT 에이블러를 위한 FAQ 챗봇을 직접 구축을 진행하였다. (해당 프로젝트는 openai의 api가 필요하다) 핵심 목표는 LangChain 프레임워크, OpenAI의 GPT-4o-mini 그리고 VectorDB중 하나인 FAISS 를 활용해 RAG(Retrieval-Augmented Generation) 기반의 파이프라인을 구현하는 것이었다.해당 실습를 통해 다양한 컴포넌트를 직접 설계하고 연동해보면서, RAG 구조의 흐름과 구성 요소 간의 상호작용에 대한 깊은 이해를 얻을 수 있었다. 이 글에서는 구축 과정에서 마주한 시행착오와 함께, 얻은 인사이트를 정리하고자한다.LangChain이란 무엇일까?LangChain은 LLM을 기반으로 한 애플리케이션을 효율적으로 구성할 수 있..
[DL] 스마트폰 센서 기반 인간 행동 분류 모델 구현 및 성능 평가
·
머신러닝 & 딥러닝 & AI 맛보며 친해지기
이번 포스팅에서는 인간 행동 인식(HAR: Human Activity Recognition) 기술 프로젝트를 진행하며 센서 데이터를 활용한 이진 및 다중 분류 모델을 설계하고 학습시키는 과정, 그리고 성능 평가를 진행한다.그 과정에서 겪었던 시행착오와 인사이트를 공유하고자 한다.데이터 설명 및 이해 활용한 데이터셋은 UCI Machine Learning Repository의 Human Activity Recognition Using Smartphones이다. UCI Machine Learning RepositoryThis dataset is licensed under a Creative Commons Attribution 4.0 International (CC BY 4.0) license. This al..
실시간 객체탐지 YOLO란?
·
머신러닝 & 딥러닝 & AI 맛보며 친해지기
학부 시절, 나는 인공지능 분야에 입문하면서 객체 탐지(Object Detection) 알고리즘을 처음 접하게 되었다. 특히, 동영상 속에서 실시간으로 바운딩 박스를 그려 대상의 위치와 종류를 알려주는 기술은 내게 큰 충격과 흥미를 주었다. 최근에는 KT 부트캠프를 통해 기초 개념을 재정립할 기회를 얻었고, 그동안 잊고 지냈던 이론적 기반을 다시 학습하며 체계를 다지게 되었다. 특히, 인턴십 당시 YOLOv7을 실무에서 직접 다루었던 경험이 있어, 이번 글을 통해 YOLO의 원리를 정리하고, 객체 탐지에 대한 이해를 보다 깊이 있게 체득하고자 한다. (벌써 yolov12가 나왔다고 한다..) 컴퓨터 비전 분야에서 객체 검출 기술은 인공지능에게 "세상을 인식하는 눈" 같은 역할을 한다. 이미지나 영상 ..
RAG(Retrieval-Augmented Generation)와 Vector DB 란?
·
머신러닝 & 딥러닝 & AI 맛보며 친해지기
KT 에이블스쿨을 통해 다양한 기술 주제를 학습하던 중, 오랫동안 관심을 가져온 분야와 맞닿아 있는 한 가지 주제에 대해 깊이 있는 리서치를 진행하고자 한다. 이 주제는 과거 SK AI Summit에서 SKT의 발표를 통해 처음 접하게 되었고, 이후 여러 기업의 합격했던 실무 면접에서도 내가 프레젠테이션 과제로 다룰 만큼 개인적으로도 의미 있는 분야이다. 오늘날 대부분의 기업은 방대한 양의 정보를 PDF나 워드 문서와 같은 파일 형태로 관리하고 있다. 인사 기록, 시설 보안 자료, 운영 매뉴얼, 고객 응대 이력, 그리고 제품 설명서나 수리 매뉴얼까지 이 모든 문서들은 잘 정리되어 축적되어 있지만, 실제 업무에서는 검색과 접근이 어렵고, 결과적으로 '죽은 데이터'로 남는 경우가 많다. 예를 들어, 제품 ..
[ML] 분류(Classification)와 회귀(Regression)의 차이
·
머신러닝 & 딥러닝 & AI 맛보며 친해지기
데이터 분석 또는 머신러닝을 공부하면서 가장 처음 접하게 되는 개념 중 하나가 바로 "분류"와 "회귀"이다. 둘 다 입력 데이터로부터 결과를 예측한다는 공통점이 있지만, 예측하려는 값이 ‘카테고리’냐, ‘숫자’냐에 따라 적용되는 방식과 모델이 완전히 달라진다. 이 글에서는 직접 학습하면서 두 개념의 차이와 예시를 이해한만큼 설명하려고 한다.분류 (Classification)개념 : 분류는 데이터를 사전에 정의된 그룹(클래스) 중 하나로 나누는 작업이다.결국에 "이 데이터는 어떤 범주에 속하나요?"라는 질문에 답하는 문제이다. 예시는 다음과 같다이메일 분류스팸/일반0 또는 1동물 이미지 분류고양이/개/토끼고양이고객 이탈 예측이탈/유지이탈질병 진단질병A / 질병B / 정상질병B대부분의 의사결정, 위험탐지,..
Sequential vs Class: PyTorch 모델 정의 방법과 비교
·
머신러닝 & 딥러닝 & AI 맛보며 친해지기
PyTorch를 사용해 딥러닝 모델을 구성할 때 모델 선언 방식에는 크게 두 가지가 있다. 하나는 nn.Sequential을 이용하는 방법이고, 다른 하나는 nn.Module을 상속한 클래스로 모델을 직접 구현하는 방법이다. 이번 블로그에서는 각자 모델 선언하는 방법을 적어보고자 한다.   nn.Sequential 은 마치 자동조립 라인과 같고 nn.Module 은 맞춤 제작 공방 같은 느낌이라고 비유할 수 있다. nn.Sequentialnn.Sequential은 미리 정의된 레이어들을 순차적으로 쌓아 올리는 방식이다. 이 방법은 레고 조립설명서를 참조하여 부품을 순서대로 조립하는 것과 비슷하다. 선언하며 정해진 순서대로 레이어가 연결되며, 복잡한 로직 없이 단순하게 모델을 구성할 수 있다.  장점간결함..
[OpenCV] Ubuntu 22.04 버전에서 OpenCV 4.10.0 GPU 적용하기
·
머신러닝 & 딥러닝 & AI 맛보며 친해지기
1. 작성 동기캡스톤 디자인 프로젝트를 진행하며 Python 기반 OpenCV 라이브러리를 사용했으나, CPU로만 작동하다 보니 실행 속도가 너무 느려 GPU를 적용하기로 결정했다. Windows에서 포팅을 시도했으나 실패하여, 우선 Ubuntu에서 먼저 GPU 포팅을 시도한 후, 추후에 Windows에도 적용할 예정이다. 필자가 설치한 로컬 환경은 다음과 같다RTX 4060 8GBPython 3.9 CUDA 12.2CUDA_ARCH_PTX=8.9cudnn 8.9.72. OpenCV 설치 과정1. 기존의 설치된 패키지 업그레이드$ sudo apt-get update$ sudo apt-get upgrade 2. 설치에 필요한 패키지$ sudo apt-get install -y build-essential ..
NVIDIA Tensor RT 에 대해 알아보기
·
머신러닝 & 딥러닝 & AI 맛보며 친해지기
Tensor RT란? NVIDIA 에서 제작했으며, 학습된 Deep Learning 모델을 최적화하여 NVIDIA GPU 상에서의 Inference 속도를 수배 ~ 수십배 까지 향상 시키는 모델 최적화 엔진이다. 가장 핵심포인트는 고성능 딥러닝 추론 라이브러리이다. (추론이다, 학습이아니라 추론이다) How to USE? NVIDIA GPU가 있는 로컬환경 혹은 Docker를 통해 설치한다. Jetson은 ARM 기반 아키텍쳐 GPU를 사용하는데, 설치는 간단하다 Jetson nano,Xavier,Orin등 Jetson 계열에서는 기본 설치패키치 JETPACK을 설치하면 자동으로 설치 된다. 또한 , 기본 NVIDIA 제조사의 GPU 를 가지고 있다면 충분히 사용가능하다. 하지만 Driver Versio..
[Deep Learning] ONNX 란?
·
머신러닝 & 딥러닝 & AI 맛보며 친해지기
4주차 인턴 중, 쿠버네티스 이외의 새로운 업무를 추가로 진행하게 되어 지식을 학습하며 작성한 글입니다. ONNX 란? Open Neural Network Exchange 이며 딥러닝 모델의 상호 운용성을 위해 개발된 오픈 소스 포맷형식이다. 즉, 다양한 딥러닝 프레임워크 (Tensorflow, Pytorch, Tensor RT) 사이에서 모델을 공유하기 위한 중간 포맷이다. ONNX는 딥러닝 모델의 생태계를 보다 개방적이고 협력적으로 만들어주는 중요한 역할을 한다. 진행 과정 첫 번째 PyTorch 모델과 Sample input 을 인자로 하여, torch.onnx.export 함수를 호출한다 PyTorch 의 JIT 컴파일러를 통해서, Trace 혹은 Script 를 생성한다. PyTorch 모델의 ..