전체 글 117

RAG 성능 고도화 — Self-RAG: 스스로 검열하는 RAG

RAG 성능 고도화 — Self-RAG: 스스로 검열하는 RAG이 글은 Self-RAG를 정리한 기록이다. 검색·생성·평가의 각 단계에 LLM이 개입해 스스로 검열하는 구조를, 라이브러리 없이 작은 루프로 직접 구현해보며 짚는다. 책과 Gemini의 도움을 빌려 궁금증을 해소해가며 쌓았다.일반 RAG의 맹점 — 관련 없어도 일단 답을 만든다검색 알고리즘에 리랭킹까지 얹으면 RAG 성능은 확실히 올라간다. 거기까지는 앞에서 정리한 그대로다. 그런데 이 모든 걸 다 적용해도 끝까지 남는 구조적인 약점이 하나 있다. 전통적인 RAG는 사용자가 문서와 아무 상관 없는 질문을 던져도, 어떻게든 뭔가를 찾아서 답을 만들어내려고 한다는 점이다.일단 가장 비슷해 보이는 문서를 끌어오고, 생성 모델은 그 엉뚱한 자료를 ..

카테고리 없음 2026.07.05

RAG 성능 고도화 — 리랭킹: 검색 결과를 한 번 더 거른다

RAG 성능 고도화 — 리랭킹: 검색 결과를 한 번 더 거른다이 글은 RAG 검색 결과의 정확도를 끌어올리는 '리랭킹(문서 후처리)'을 정리한 기록이다. 검색이 1차로 추려준 문서를 더 정교한 기준으로 다시 줄 세우는 단계 — 크로스 인코더와 3단계 깔때기 전략을 다룬다. 책과 Gemini의 도움을 빌려 궁금증을 해소해가며 작성되었다.검색이 끝이 아니다 — 한 번 더 거르는 후처리직전 편에서 희소·밀집·앙상블로 문서를 골라내는 검색 단을 정리했다. 그런데 검색기가 뽑아준 결과를 그대로 LLM에 넘기다 보면 한 가지가 계속 걸린다. 상위에 올라온 문서가 생각보다 질문과 안 맞는 경우가 종종 섞여 있다는 점이다. 검색은 통과했는데 정작 답이 되긴 어려운 문서들이다.이유는 단순하다. 앞 단의 검색 알고리즘은 ..

AI Engineering/RAG 2026.06.27

RAG 성능 고도화 — 검색 알고리즘: 희소,밀집,앙상블(하이브리드)

RAG 성능 고도화 — 검색 알고리즘: 희소·밀집·앙상블이 글은 RAG의 '검색단'을 책으로 공부하며 정리한 기록이다. 키워드로 찾는 희소검색, 뜻으로 찾는 밀집검색, 그리고 둘을 섞는 앙상블까지 — 검색 알고리즘 선택이 RAG 정확도를 어떻게 가르는지 짚는다. 책과 Gemini의 도움을 빌려 궁금증을 해소해가며 쌓았다.키워드냐 의미냐, 아니면 둘 다냐검색 알고리즘이라고 거창하게 부르지만, 하는 일은 단순하다. 사용자가 던진 질문과 내가 가진 참조 문서들을 비교해서 "이 질문에 가장 잘 맞는 문서가 어떤 거냐"를 골라내는 로직이다. 그런데 이 '잘 맞는다'를 무엇으로 판단하느냐에 따라 결과가 완전히 갈린다. 글자가 똑같이 생겼는지를 볼 수도 있고, 글자는 달라도 뜻이 통하는지를 볼 수도 있다. RAG 시..

AI Engineering/RAG 2026.06.27

RAG 성능 고도화 — HyDE, 가상의 답을 지어내 검색하기

RAG 성능 고도화 — HyDE, 가상의 답을 지어내 검색하기이 글은 RAG 검색 정확도를 끌어올리는 'HyDE(가상 문서 임베딩)'를 탐구하며 정리한 기록이다. 책과 Gemini의 도움을 빌려 궁금증을 해소해가며 쌓았다.질문을 그대로 검색하지 말고, '답변'을 먼저 지어내서 검색한다앞 글에서 다중 질의로 질문을 여러 갈래로 늘려 검색망을 넓히는 방법을 정리했는데, 같은 '질의 변형' 계열인데도 발상이 완전히 다른 기법이 하나 더 있다. HyDE(Hypothetical Document Embeddings), 우리말로 옮기면 '가상 문서 임베딩'이다. 질문을 더 잘 다듬어서 검색하는 게 아니라, 아예 그 질문에 대한 가상의 답변을 LLM에게 먼저 지어내게 한 다음, 그 답변으로 DB를 서칭하는 방식이다.처..

AI Engineering/RAG 2026.06.22

RAG 성능 고도화 — 질의 변형과 다중 질의 생성

RAG 성능 고도화 — 질의 변형과 다중 질의 생성이 글은 RAG 검색 단의 정확도를 끌어올리는 '질의 변형'을 직접 적용해보며 정리한 기록이다. 청킹으로 문서를 어떻게 자를지 고민한 데 이어, 이번엔 검색에 들어가는 '질문' 그 자체를 손보는 이야기다. 책과 Gemini의 도움을 빌려 궁금증을 해소해가며 쌓았다.사용자의 질문을 그대로 검색하면, 왜 자꾸 헛소리만 늘어놓을까?RAG를 어느 정도 굴려보고 나서 가장 먼저 부딪힌 벽은, 사람들이 생각보다 질문을 엉성하게 한다는 사실이었다. 검색 단에서 청킹이고 임베딩이고 다 잘 깔아놨는데도 엉뚱한 문서가 올라오길래 한참을 들여다봤더니, 문제의 절반은 시스템이 아니라 입력으로 들어온 질문 그 자체에 있었다.벡터 검색은 단어가 똑같으냐가 아니라 뜻이 비슷하냐를 ..

AI Engineering/RAG 2026.06.21

RAG 성능 고도화 — 청킹 전략 깊게 파기

RAG 성능 고도화 — 청킹 전략 깊게 파기이 글은 RAG 기반 시스템을 실제로 구축하면서 마주쳤던 청킹 전략의 선택 문제를 정리한 내용이다. 책과 Gemini의 도움을 빌려 궁금증을 해소해가며 쌓은 기록이다. 청킹이 왜 필요한가?RAG 시스템을 처음 설계할 때 가장 단순한 접근은 "그냥 문서를 통째로 LLM에 넣어서 처리하면 되지 않나?"라는 생각이 든다. 하지만 실제로 해보면 두 가지 벽에 부딪힌다.첫째는 토큰 한계다. LLM은 한 번에 처리할 수 있는 텍스트 양이 정해져 있어서, 문서가 길면 아예 입력 자체가 불가능하다. 둘째는 정확도 문제다. 설령 들어간다 해도, 방대한 문서 속에서 관련 없는 내용까지 한꺼번에 읽어야 하는 LLM은 핵심을 놓치거나 엉뚱한 부분에 집중하기 쉽다.그래서 문서를 적절한..

AI Engineering/RAG 2026.06.21

LLM모델과 토크나이저와 임베딩모델

문서를 로드하고, 자르고, 저장하고, 검색하는 일반적인 RAG 개발 과정에서 필요한 개념을 학습한다. 우리가 보편적으로 사용하는 LLM은 사전 학습단계를 거쳐 만들어진 그야말로 범용 모델이다. 우리가 쓰는 언어는 텍스트로 표현된다. 언어는 비정형데이터로서 컴퓨터가 이해하기 힘들다. 그렇기 때문에 텍스트를 일종의 단어사전(맵핑지도)을 통해 수치화 하는 과정이 필요한데, 여기서 필요한것이 토크나이저 이다.토크나이저는 내부 규칙에 의해서 텍스트를 자르고, 이것을 숫자로 변환한다. 이 토크나이저로 자르고 변환하는 규칙은 각각의 토크나이저별로 다르기 때문에, 반드시 LLM과 세트로 써야한다. 예를들어 BERT 모델을 쓰면서 OPENAPI의 토크나이저를 쓰면 바보가 된다. 학습시 사용했던 토크나이저 방식으로 적용해..

코딩강의6화 - flutter dart 앱개발 상속, 확장에 대해서 with gpt

https://youtu.be/vnM2J-Bagb0*아래의 글은 유튜브 코드와트 채널에서 연재되는 강의를 글로 작성한 내용입니다. *대화형식으로 진행되며, ai chat GPT를 활용한 코딩이 핵심입니다.*시대에 맞게 코딩.개발의 조력자로써 ai를 잘 활용것이 목표입니다.   안녕하세요. 코드와트입니다.오늘은 확장에 대해서 알아보겠습니다.확장(extends), 상속(Inheritance)현대의 대부분의 언어들은 extends 확장(또는 상속) 이라고 하는 기능을 가지고 있습니다.확장은 말그대로 기존의 것을 가지고 확대, 확장 한다는 의미가 있습니다.사전을 살펴 보겠습니다    사전을 찾아보니 우리가 오늘 해야할 일이 무엇인지 명확해 집니다.우선 실행해보죠. class A { var name = 'A'; ..

헤이젠 hey-gen 을 이용한 나만의 ai 아바타 캐릭터 만들기

소개ai탐험대 시리즈 입니다.오늘은 컨텐츠 제작할때  활용도가 높은 아바타 생성 플랫폼을 사용해보도록 하겠습니다. 1. d-id 무료사용기2. heygen 유료사용기  해당 컨텐츠는 유튜브를 통해서도 볼수있습니다.https://youtu.be/qc2TCRtul9I d-idhttps://studio.d-id.com우선 플랫폼에 접속해주시구요.   아바타 메뉴로 이동합니다.상단에 보시면 이렇게 두가지 방식으로 개인의 아바타를 만들수 있는데요. 우선은 기본적으로 제공되는 아바타를 이용해볼께요.  스크롤 해보시면 하단에 많은 인물을 고를수 있습니다.   주근깨가 매력적인 엠마로 선택할께요. 아바타 비디오를 선택합니다.그럴듯한 편집창이 나왔습니다.  간단한 표정정도 선택해볼수 있구요. 이곳에서 텍스트나 도형등을 ..

코딩강의 5화 - flutter dart 앱개발 리스트와 맵 with gpt

https://youtu.be/To4Aj_2MdYY *아래의 글은 유튜브 코드와트 채널에서 연재되는 강의를 글로 작성한 내용입니다. *대화형식으로 진행되며, ai chat GPT를 활용한 코딩이 핵심입니다.*시대에 맞게 코딩.개발의 조력자로써 ai를 잘 활용것이 목표입니다.   안녕하세요. 코드와트 입니다.이번에는 리스트와 맵에 대해서 배워보겠습니다.코딩 개발하면서 리스트와 맵은 가장 많이 사용하기 때문에 꼭 알아두셔야 합니다. 리스트리스트는 말그대로 목록형태로 데이터를 표시하기 위한 저장형태를 의미합니다. 자료형(Data Type)이란?데이터 저장을 위한 구조나 형태를 말합니다. 사실은 우리가 앞에서 쓰고 있던 int, double, String 또한 자료형의 한 종류였습니다. 마찬가지로 리스트 또한 ..