- [ AI ][LLM] 대규모 임베딩 검색의 핵심, FAISS 알아보기2025-05-15 11:41:25대규모 임베딩 검색의 핵심, FAISS 알아보기최근 인공지능 분야에서 임베딩(Embedding)은 데이터를 벡터 형태로 표현하는 강력한 수단으로 자리 잡았다. 텍스트, 이미지, 오디오 등 다양한 형태의 데이터를 벡터 공간에 표현함으로써 데이터 간의 유사성을 계산하고 활용하는 것이 가능해졌다. 하지만 데이터의 양이 방대해지면, 이 임베딩 벡터들 중에서 특정 벡터와 가장 유사한 벡터들을 빠르게 찾아내는 것이 중요한 과제가 된다. 이때 등장하는 것이 바로 FAISS와 같은 고성능 벡터 검색 라이브러리이다.1. FAISS와 임베딩의 만남임베딩: 앞서 설명했듯이, 임베딩은 복잡한 데이터를 기계가 이해할 수 있는 수치형 벡터로 변환하는 과정이다. 의미적으로 유사한 데이터는 벡터 공간에서 서로 가까운 거리에 위치하게..
- [ AI ][LLM] LangChain과 ChromaDB 사용 시 겪을 수 있는 두 가지 함정: 인코딩과 저장 문제 해결하기2025-05-06 10:39:59LangChain과 ChromaDB 사용 시 겪을 수 있는 두 가지 함정: 인코딩과 저장 문제 해결하기LangChain과 벡터 데이터베이스를 활용하여 RAG(Retrieval Augmented Generation) 시스템을 구축하는 것은 이제 익숙한 패턴이 되었다. 특히 ChromaDB는 사용하기 편리하여 많은 경우에 선택된다. 하지만 개발 과정에서 예상치 못한 문제에 직면할 때가 있다. 이번 글에서는 문서를 로드할 때 발생하는 한글 인코딩 문제와 ChromaDB가 persist_directory에 데이터를 저장하지 않는 문제를 다루고, 해결 방법을 공유한다.1. 문서 로드 시 한글 인코딩 깨짐 문제문제 현상: WebBaseLoader 등으로 웹에서 한국어 문서를 로드했을 때, 문서 내용(page_con..
- [ AI ][LLM] LangGraph에서 GraphRecursionError 해결하기: 올바른 상태 관리의 중요성2025-05-05 01:05:33LangGraph에서 GraphRecursionError 해결하기: 올바른 상태 관리의 중요성LangGraph를 사용하여 에이전트 워크플로우를 구축할 때 가장 자주 마주치는 오류 중 하나는 GraphRecursionError이다. 이 오류는 그래프가 종료 조건에 도달하지 못하고 최대 반복 횟수를 초과할 때 발생한다. 오늘은 이 오류의 주요 원인과 해결 방법을 실제 사례를 통해 살펴보겠다.문제 상황: 무한 재귀 발생LangGraph를 사용하여 계획 수립 및 실행 에이전트를 구현하는 중 다음과 같은 오류가 발생했다:GraphRecursionError: Recursion limit of 10 reached without hitting a stop condition. You can increase the lim..
- [ AI ][LLM] 에이전트 리즈닝(Agent Reasoning)2025-04-29 11:22:31LLM에서의 에이전트 리즈닝(Agent Reasoning)LLM(Large Language Model) 기술이 발전하면서, 단순히 텍스트를 생성하는 것을 넘어 스스로 생각하고, 계획하며, 도구를 사용하여 복잡한 문제를 해결하는 '에이전트(Agent)'로서의 가능성이 주목받고 있다. 이러한 LLM 에이전트의 핵심 능력 중 하나가 바로 '리즈닝(Reasoning)'이다.1. LLM 에이전트와 리즈닝이란 무엇인가?LLM 에이전트: 목표를 달성하기 위해 환경과 상호작용하고, 도구를 사용하며, 스스로 판단하여 행동하는 LLM 기반 시스템이다. 주어진 작업을 완료하기 위해 단순히 정보를 생성하는 것을 넘어, 능동적으로 계획을 세우고 실행하는 주체이다.에이전트 리즈닝: LLM 에이전트가 목표를 달성하기 위해 수행하는..
- [ AI ][LLM] 왜 LangChain 같은 프레임워크를 사용할까?2025-04-29 10:43:371. 왜 LangChain 같은 프레임워크를 사용할까? (단순 API 호출과의 차이점) "그냥 ChatGPT API 쓰면 되는 거 아니에요?" 라는 질문을 받을 수 있다. 이 질문에 대한 답변을 다음과 같이 해볼 수 있겠다."네, 맞습니다. OpenAI 같은 LLM API만 사용해도 간단한 챗봇이나 글 요약 같은 기능은 만들 수 있습니다. 하지만 우리가 만들고 싶은 '진짜 쓸모있는' 애플리케이션은 그것만으로는 부족할 때가 많습니다.""LLM API를 '아주 똑똑하지만 자기 방에만 있는 천재'라고 생각해보세요. 방 안의 지식(학습 데이터)은 풍부하지만, 몇 가지 한계가 있습니다." "최신 정보나 우리 회사 내부 자료는 몰라요."API만으로는 LLM이 학습한 시점 이후의 정보나, 외부에 공개되지 않은 회사 ..
- [ AI ]BGE M3 임베딩 모델: 왜 사용하며 Llama 3와 무엇이 다른가?2025-04-24 13:09:45BGE M3 임베딩 모델: 왜 사용하며 Llama 3와 무엇이 다른가?텍스트 데이터를 다루는 인공지능 애플리케이션에서 '임베딩 모델'은 매우 중요한 역할을 한다. 그중에서도 BGE M3 모델은 그 뛰어난 성능과 다양한 기능으로 주목받고 있다. 이 글에서는 BGE M3 임베딩 모델을 왜 사용하는지, 대규모 언어 모델인 Llama 3와는 어떤 차이가 있는지, 그리고 간단한 사용법은 어떻게 되는지 알아보는 시간을 갖는다.1. BGE M3 임베딩 모델을 사용하는 이유BGE M3 모델을 사용하는 데는 몇 가지 강력한 이유가 있다.뛰어난 다국어 지원: 100개 이상의 언어를 지원하며, 한국어를 포함한 다양한 언어의 텍스트를 효율적으로 임베딩할 수 있다. 교차 언어 검색도 가능하다.다기능 검색 능력: Dense, S..
- [ AI ]이제 까먹지 마! 모델 컨텍스트 프로토콜(MCP) 쉽게 이해하기2025-04-18 11:23:26AI, 이제 까먹지 마! 모델 컨텍스트 프로토콜(MCP) 쉽게 이해하기최근 AI 기술 커뮤니티에서 '모델 컨텍스트 프로토콜(Model Context Protocol, MCP)'이라는 용어가 자주 등장하고 있다. 이는 AI를 더 똑똑하고, 일관성 있으며, 실제 업무에 더 유용하게 만들기 위한 중요한 개념이다. MCP가 무엇인지, 왜 중요한지, 그리고 어떻게 작동하는지 쉽게 알아보자. 1. 왜 MCP가 중요할까? AI의 '기억력' 문제우리가 챗봇이나 AI 그림 도구를 사용하다 보면 답답할 때가 있다. 분명히 이전 대화에서 특정 내용을 설명했거나 지시했는데, AI가 금세 잊어버리고 매번 새로운 요청처럼 반응하는 경우이다.사례 1: 웹툰 캐릭터 그리기: AI에게 파란 머리의 특정 눈 모양을 가진 소년 캐릭터를..
- [ AI ]바이브 코딩(Vibe Coding)이 뭘까?2025-03-21 09:48:55Vibe 코딩: AI와 함께하는 새로운 소프트웨어 개발 방식Vibe 코딩은 인공지능(AI) 도구를 활용하여 코딩 작업을 자동화하고, 개발자가 고차원적인 지시와 창의적인 아이디어 구체화에 집중할 수 있도록 하는 새로운 소프트웨어 개발 방식이다. 이 방식은 AI가 코드를 생성하고 디버깅하는 데 도움을 주어 개발 과정을 단순화하고, 기술 전문 지식이 없는 사람들도 쉽게 접근할 수 있도록 한다.1. Vibe 코딩의 정의Vibe 코딩은 개발자가 자연어 프롬프트를 통해 AI에게 원하는 기능을 설명하면, AI가 해당 기능을 구현하는 코드를 생성하는 방식으로 이루어진다. 여기서 개발자는 AI가 생성한 코드를 검토, 수정 및 개선하는 역할을 수행한다.Andrej Karpathy는 Vibe 코딩을 "느낌에 완전히 몸을 맡..