머신러닝 & 딥러닝

텍스트 데이터를 효과적으로 활용하기 위해서는 텍스트 임베딩과 벡터 데이터베이스(Vector DB)를 결합한 RAG (Retrieval-Augmented Generation) 시스템이 주목받고 있습니다. 임베딩은 텍스트를 수치 벡터로 변환하여 기계가 이해할 수 있는 형태로 만들고, 벡터DB는 이렇게 생성된 벡터들을 저장하고 유사한 벡터를 빠르게 검색할 수 있게 해줍니다. 텍스트 임베딩의 개념과 최신 동향부터 벡터DB 기술 비교, 최신 연구 논문, 그리고 RAG 시스템에서 임베딩과 벡터DB를 활용하는 방법까지 정리했습니다. 1. 텍스트 임베딩: 개념과 최신 기술 동향텍스트 임베딩이란? 텍스트 임베딩(text embedding)은 문장이나 단어를 다차원 벡터 공간의 한 점으로 표현하는 것입니다 쉽게 말해, 텍..
RAG 구현을 위한 대표 기술 스택RAG의 인기가 높아지면서 이를 쉽게 구현하도록 도와주는 프레임워크와 도구들도 여럿 나와 있습니다. 몇 가지 주목할만한 것들을 살펴보겠습니다:LangChain: 파이썬 기반으로 LLM 응용을 체인으로 쉽게 엮을 수 있는 라이브러리입니다. 프롬프트 템플릿, 메모리, 벡터스토어 연동 등 RAG에 필요한 구성요소를 손쉽게 조합할 수 있게 해주죠. 예를 들어 LangChain으로 OpenAI ChatGPT 모델과 FAISS 벡터스토어를 묶어 질문-답변 체인을 만드는 코드는 몇 줄이면 충분합니다.python# LangChain을 활용한 간단한 RAG QA 예시from langchain.embeddings import OpenAIEmbeddingsfrom langchain.vect..
RAG란 무엇이고 왜 주목받을까?LLM이 아무리 똑똑해도 훈련 데이터에 없는 최신 정보나 전문 지식을 물어보면 엉뚱한 답변을 하는 경우가 많습니다. Retrieval-Augmented Generation, 줄여서 RAG는 이러한 문제를 해결하기 위해 대형 언어 모델(LLM)에 “검색” 기능을 붙여주는 기술입니다. 쉽게 말해 필요한 자료를 외부에서 찾아와(LLM이 retrieval 단계) 그 정보를 바탕으로 답변을 생성(generation 단계)하는 구조입니다. 이를 통해 LLM이 미리 학습되지 않은 최신 정보나 사내 비공개 데이터까지 활용해 답을 할 수 있고, 근거가 없는 헛소리(일명 hallucination)도 줄일 수 있습니다. 예를 들어, ChatGPT 같은 모델은 2021년 이후 지식을 모르지만,..
SK텔레콤의 AI활용 사례를 통해 고객 응대의 패러다임 변화를 이해할 수 있는 영상입니다. 고객 센터에서 콜봇과 챗봇의 효율적인 기능을 통해 상담사와 고객 간의 소통이 어떻게 개선되는지를 보여줍니다. 특히, AI 상담사 어시스턴트와 텔코 LLM의 적용으로 고객 응대의 정확성과 만족도가 크게 향상되었습니다. AI시스템은 고객의 다양한 질문에 대처할 수 있는 구조를 갖추고 있으며, 포스콜업무를 효율적으로 처리하는 데에도 큰 도움이 됩니다. 이러한 변화는 앞으로 고객 서비스가 어떻게 발전할지를 시사합니다.핵심 용어SK텔레콤: SK텔레콤은 대한민국의 대표 통신 회사로, 모바일 통신, 인터넷, 방송 및 다양한 디지털 서비스를 제공합니다. 이 회사는 많은 고객을 보유하고 있으며, 고객 응대와 서비스 ...1. 🤖..
SKT는 RAG 기술을 도입하여 고객 상담효율성을 극대화하고 상담사지원 도구인 AICC 어시스트를 업그레이드하는 프로젝트를 진행했다.이 프로젝트의 핵심은 도메인 지식 부족과 LM 할루시네이션 극복이라는 두 가지 도전 과제를 해결하는 것이었으며, 이를 위해 베테랑 상담사 피드백, 플레이그라운드 구축, 텔코 데이터 기반 파인 튜닝 임베딩개발, 쿼리 트랜스포머, 멀티 컬렉션 검색, 리랭킹, 컷오프 등 다양한 기술적 시도를 했다.최종적으로 텔코 LLM을 적용하여 답변 만족도를 높이고, 검색 품질과 LLM의 시너지 효과를 통해 고객 상담 서비스 품질을 향상시키는 결과를 얻었다.1. 발표 개요발표 주제는 고객 상담의 효율성을 높이는 RAG 기술이다.발표자는 김은희이며, SKT의 고객 센터에 RAG 기술을 도입한 경..
RAG(Retrieval-Augmented Generation) 인덱싱은 LLM의 성능을 획기적으로 향상시키는 핵심 기술입니다. 이 글에서는 RAG 인덱싱의 구현부터 최적화까지 실전에서 바로 활용할 수 있는 5단계 노하우를 상세히 알아보겠습니다.1. RAG 인덱싱 (RAG Indexing) 이란?​RAG 인덱싱은 외부 데이터를 LLM에 효과적으로 통합하는 프로세스입니다. 주요 구성요소는 다음과 같습니다:데이터 로드: 소스로부터 데이터를 수집청크 분할: 데이터를 적절한 크기로 분할임베딩 생성: 텍스트를 벡터로 변환저장: 벡터 데이터베이스에 저장2. 데이터 전처리 및 청크 분할 최적화​효과적인 RAG 인덱싱을 위해서는 데이터 전처리가 매우 중요합니다:청크 크기 최적화: 2000-3000자 정도가 적절오버랩 ..
바야흐로 LLM 전성시대입니다. 국내외에서 수많은 언어모델이 하루가 멀다하고 쏟아져 나오는 요즘인데요. 새로운 모델이 공개되면 이전 SOTA(State-of-the-art) 모델과의 성능 비교표가 함께 나오곤 합니다.위 성능 비교표에서 왼쪽 첫 열에 나열된 것이 LLM의 성능을 평가하는 벤치마크 데이터셋들입니다. 이렇게 LLM의 성능을 객관적으로 평가하고 다양한 모델을 비교하기 위해서는 벤치마크 데이터셋을 활용하는 방법이 보편적입니다.벤치마크 데이터란?벤치마크 데이터(Benchmark Data), 벤치마크 데이터셋(Benchmark Dataset)이란 알고리즘의 성능을 측정하고 비교하는 데 사용되는 표준화된 데이터 집합입니다. 1980년대 후반에 등장한 벤치마크 데이터셋은 다양한 도메인과 문제에 대한 표..
AI 챗봇이 오래된 정보로 답변하거나, 전문 지식이 필요한 질문에 피상적인 대답만 하는 경험이 있으신가요? 이는 현재 AI 기술의 한계를 보여주는 전형적인 사례입니다. RAG(Retrieval-Augmented Generation)는 이러한 문제를 해결하는 혁신적인 기술입니다. 실시간으로 최신 정보를 검색하고 AI의 추론 능력과 결합하여, 항상 정확하고 맥락에 맞는 답변을 제공합니다.이 가이드에서는 LangChain과 Streamlit을 활용해 실제 작동하는 RAG 기반 Q&A 웹서비스를 개발하는 방법을 배웁니다. 위키피디아의 방대한 지식을 실시간으로 활용하는 지능형 시스템을 직접 구축해보세요. 그럼 AI 개발의 새로운 지평을 여는 여정을 시작 해보겠습니다.1. RAG (검색 증강 생성) 이란?​RAG는..
대규모 언어 모델(LLM)의 사전 학습 된 고정된 지식으로는 빠르게 변화하는 세상을 따라잡기 어렵습니다. 이는 단순한 불편함을 넘어 잘못된 의사결정으로 이어질 수 있는 심각한 문제입니다.RAG(Retrieval-Augmented Generation)는 이러한 AI의 한계를 극복하는 혁신적인 해결책입니다. 외부 데이터를 실시간으로 참조하여 항상 최신의, 정확한 정보로 답변을 생성합니다. 이를 통해 AI는 최신 트렌드를 반영하고, 특정 분야의 전문 지식을 제공할 수 있게 됩니다.1. RAG (검색 증강 생성) 란?​RAG는 'Retrieval-Augmented Generation'의 약자로, '검색 증강 생성'이라고 번역할 수 있습니다. 이 기술은 기존의 생성형 AI 모델에 실시간 정보 검색 능력을 결합한 ..
청킹과 인덱싱정확한 검색을 위한 청킹 전략 (Chunking Strategy)AI가 글을 읽고 대답을 잘하려면, 글을 어떻게 잘게 나누는지가 정말 중요합니다. 왜냐하면 AI는 글을 한꺼번에 많이 읽지 못하기 때문이죠. 특히 한국어처럼 복잡한 글은 더 어렵습니다. 그래서 청킹이 필요합니다.하지만 그냥 무작정 나누면 안 됩니다. 청크(잘게 나눈 글 조각)가 충분히 많은 정보를 담고 있어야, AI가 질문에 정확히 답할 수 있어요. 예를 들어, 글의 중요한 부분만 포함되어야 하는데, 그렇지 않으면 대답이 엉뚱할 수 있겠죠? 정보의 밀집도가 높은 청크일수록 AI가 적절한 맥락을 이해하고 더 정확하게 응답할 수 있기 때문에, 청킹 과정에서 정보의 밀도와 연관성을 고려하는 것이 매우 중요합니다.청킹 전략의 레벨 : ..
인공지능 기술의 발전으로 ChatGPT와 같은 대형 언어 모델(Large Language Model, LLM)이 등장했습니다. 이러한 모델들은 우리의 일상생활과 업무에 큰 변화를 가져오고 있지만, 동시에 효과적으로 활용하는 방법에 대한 고민도 깊어지고 있습니다.LLM을 제대로 활용하기 위해서는 '프롬프트 엔지니어링(Prompt Engineering)'이라는 개념을 이해하는 것이 중요합니다. 프롬프트 엔지니어링이란? LLM에게 최적의 프롬프트를 제공하여 원하는 결과를 이끌어내는 기술을 말합니다. 적절한 프롬프트 설계는 LLM의 성능을 크게 향상시킬 수 있습니다.이 글에서는 최신 논문 "Principled Instructions Are All You Need for Questioning LLaMA-1/2, ..
1. 인코더-디코더(Encoder-Decoder) 개념인코더-디코더 구조는 입력 데이터를 잠재 공간(latent space)으로 변환한 후, 다시 원하는 출력 형태로 변환하는 구조임. 기계 번역, 요약, 이미지 캡셔닝 등 다양한 자연어 처리(NLP) 및 컴퓨터 비전(CV) 작업에서 사용됨.(1) 인코더(Encoder)입력 데이터를 처리하여 잠재 표현(latent representation, context vector) 으로 변환함.원래 정보를 압축하면서, 의미를 유지한 채 더 작은 차원의 표현으로 인코딩하는 것이 목표.보통 여러 개의 층(layer)으로 구성되며, 각 층은 입력을 점진적으로 더 높은 수준의 표현으로 변환함.(2) 디코더(Decoder)인코더에서 생성된 잠재 표현을 기반으로 원하는 출력(예..
1. 모델에 학습 데이터를 한 번에 학습시키면 안 되는가?데이터를 한 번에 학습시키는 것은 메모리 한계, 일반화 문제, 최적화 어려움 등의 이유로 비효율적임.(1) 메모리 한계대규모 데이터셋을 한 번에 모델에 입력하면 GPU/CPU 메모리를 초과할 가능성이 높음.특히 딥러닝에서는 행렬 연산을 수행하는 과정에서 메모리 사용량이 급격히 증가하기 때문에, 한 번에 모든 데이터를 처리하는 것은 현실적으로 어려움.(2) 일반화 문제 (Overfitting)한 번에 학습하면 모델이 데이터셋 전체를 외워버리는 과적합(overfitting) 문제가 발생할 가능성이 높음.모델이 특정 데이터셋에만 최적화되면 새로운 데이터를 만났을 때 성능이 저하됨.(3) 최적화 어려움경사하강법(Gradient Descent)에서 한 번에..
단어 임베딩(word embedding)은 자연어 처리에서 단어를 벡터로 변환하는 기법을 의미하며, 주요 방법론으로는 원-핫 인코딩, 카운트 기반(통계적) 임베딩, 예측 기반 임베딩이 있다. 각각의 기법을 설명하고 장단점을 비교해 보자.1. 원-핫 인코딩 (One-Hot Encoding)단어를 고유한 인덱스로 매핑한 뒤, 해당 인덱스의 위치만 1이고 나머지는 0인 벡터로 변환하는 방식.특징예: ['apple', 'banana', 'grape']라는 단어 집합이 있을 때,apple → [1, 0, 0]banana → [0, 1, 0]grape → [0, 0, 1]장점구현이 간단하고 해석이 쉬움.빠르게 변환 가능.단점고차원 문제: 단어의 개수(V)에 따라 벡터 차원이 커짐 → 희소 행렬(Sparse Matr..
합성곱(Convolution)과 풀링(Pooling) 설명 및 예시합성곱(Convolution)과 풀링(Pooling)은 합성곱 신경망(CNN, Convolutional Neural Network) 에서 가장 중요한 핵심 연산입니다.이들은 이미지 처리 및 컴퓨터 비전에서 중요한 역할을 하며, 데이터를 효율적으로 줄이면서 특징을 추출하는 데 사용됩니다.1. 합성곱(Convolution)📌 개념합성곱은 입력 데이터(이미지 등)에서 특징(Feature)을 추출하는 과정입니다.작은 크기의 필터(Filter, 커널)를 사용하여 지역적인 패턴(엣지, 윤곽선, 색 변화 등)을 학습합니다.📌 합성곱 연산 과정입력 데이터(이미지)와 필터(커널)를 곱하고 더하는 연산 수행예를 들어, 3×3 필터가 5×5 이미지에서 움..
순환신경망(RNN, Recurrent Neural Network) 개념순환신경망(RNN, Recurrent Neural Network)은 연속적인 데이터(시계열 데이터, 자연어 등)를 처리하는 데 최적화된 신경망입니다.기본적인 신경망(MLP, CNN)과 달리, 이전 시점의 정보를 현재 시점의 계산에 반영하는 순환 구조를 가지고 있습니다.RNN 구조일반적인 신경망은 입력이 고정된 길이를 가지지만, RNN은 순차적인 입력을 처리할 수 있습니다.각 시점의 노드(뉴런)는 이전 시점의 출력을 기억하고, 이를 현재 시점의 입력과 함께 처리하여 시간에 따른 의존성을 학습할 수 있습니다 여기서hth_tht​ : 현재 시점의 은닉 상태 (hidden state)xtx_txt​ : 현재 입력 데이터WhW_hWh​, WxW..
1. 손실 함수 (Loss Function)정의손실 함수는 신경망이 예측한 값과 실제 정답 값 간의 차이를 측정하는 함수입니다. 모델이 얼마나 잘못 예측했는지를 나타내며, 이 값을 최소화하는 것이 학습의 목표입니다.주요 특징신경망의 출력과 실제 값을 비교하여 오차를 계산손실 함수 값이 작을수록 모델의 예측이 더 정확함경사 하강법(Gradient Descent) 등을 이용해 손실을 최소화하며 학습 진행대표적인 손실 함수손실 함수수식용도평균 제곱 오차(MSE)1n∑(y−y^)2\frac{1}{n} \sum (y - \hat{y})^2n1​∑(y−y^​)2회귀 문제에서 사용평균 절대 오차(MAE)( \frac{1}{n} \sumy - \hat{y}교차 엔트로피(Cross-Entropy)−∑ylog⁡(y^)-\..
역전파(backpropagation)는 신경망에서 가중치를 최적화하기 위해 사용하는 핵심 알고리즘입니다. 주어진 입력 데이터에 대해 예측값을 계산한 후, 예측값과 실제값 사이의 오차를 기반으로 가중치를 조정하는 과정입니다. 이 알고리즘은 미분과 체인 룰을 활용하여 오차(손실 함수의 값)가 각 가중치에 미치는 영향을 계산합니다.역전파 과정순전파(Forward Propagation)입력 데이터가 신경망을 통해 순차적으로 전달되며 출력값이 계산됩니다.각 노드에서 가중치와 활성화 함수를 적용하여 다음 레이어로 전달합니다.오차 계산(Loss Calculation)출력층에서 실제값과 예측값 사이의 오차를 계산합니다.일반적으로 손실 함수(loss function)를 사용하여 이를 수치화합니다. 예: 평균 제곱 오차(..
1. 인공지능(AI)과 머신러닝(ML)의 차이점인공지능(AI, Artificial Intelligence): 기계가 인간의 지능을 모방하여 문제 해결, 학습, 의사결정을 수행할 수 있도록 하는 기술의 총체적인 개념입니다.머신러닝(ML, Machine Learning): AI의 하위 분야로, 데이터를 기반으로 기계가 패턴을 학습하고 예측하는 알고리즘을 개발하는 기술입니다.차이점: AI는 인간의 지능을 흉내 내는 전체적인 개념이며, ML은 AI를 구현하는 방법 중 하나입니다.2. 딥러닝이란 무엇이며 머신러닝과 어떻게 다른가요?딥러닝(Deep Learning): 다층 신경망(Deep Neural Network)을 활용하여 데이터를 학습하는 머신러닝의 한 분야입니다.차이점:머신러닝은 일반적으로 특징(featur..
1. 벡터와 행렬 연산으로 바꾸기위의 코드를 개선할 수 있는 부분이 있습니다. 이번에는 x의 개수가 3개였으니까 x1_train, x2_train, x3_train와 w1, w2, w3를 일일히 선언해주었습니다. 그런데 x의 개수가 1,000개라고 가정해봅시다. 위와 같은 방식을 고수할 경우 x_train1 ~ x_train1000을 전부 선언하고, w1 ~ w1000을 전부 선언해야 합니다. 다시 말해 x와 w 변수 선언만 총 합 2,000개를 해야합니다. 또한 가설을 선언하는 부분에서도 마찬가지로 x_train과 w의 곱셈이 이루어지는 항을 1,000개를 작성해야 합니다. 이는 굉장히 비효율적입니다. 이를 해결하기 위해 행렬 곱셈 연산(또는 벡터의 내적)을 사용합니다.행렬의 곱셈 과정에서 이루어지는 ..
도갱도갱
'머신러닝 & 딥러닝' 카테고리의 글 목록