목록전체 글 (613)
꿈 많은 사람의 이야기
포스팅 개요본 포스팅은 Chandra라는 파이썬 OCR 라이브러리를 소개하는 포스팅입니다. 최근 RAG(Retrieval Augmented Generation)과 AI Agent에 대한 연구와 개발 수요가 증가하면서 문서 디지털화와 OCR(Optical Character Recognition) 기술에 대한 수요가 급증하고 있습니다.기존의 OCR 솔루션들은 텍스트만 추출할 뿐, 문서의 레이아웃 구조를 보존하지 못하는 한계가 있었죠.Chandra는 이러한 문제를 해결하기 위해 등장한 Vision-Language Model(VLM) 기반의 문서 OCR 시스템입니다.단순히 텍스트만 추출하는 것이 아니라, 문서의 레이아웃 정보까지 보존하면서 HTML, Markdown, JSON 형식으로 변환해주는 강력한 기능을 ..
포스팅 개요본 포스팅은 Carnegie Mellon University 연구진이 발표한 "Is Vibe Coding Safe? Benchmarking Vulnerability of Agent-Generated Code in Real-World Tasks" 논문을 리뷰하는 포스팅입니다. 최근 AI 코딩 도구의 발전으로 바이브 코딩(Vibe Coding)이라는 새로운 프로그래밍 패러다임이 등장했는데요. 개발자가 자연어로 요청하면 LLM 에이전트가 복잡한 코딩 작업을 수행하는 방식입니다.Cursor, Claude Code와 같은 AI 기반 개발 도구들이 급격히 인기를 얻으면서, 설문조사에 따르면 개발자의 75%가 바이브 코딩을 사용하고 있으며 그 중 90%가 만족한다고 응답했습니다. 심지어 Anthropic ..
포스팅 개요본 포스팅은 Amazon AGI 팀에서 2025년 8월 발표한 "Improving Document Retrieval Coherence for Semantically Equivalent Queries" 논문을 리뷰하는 포스팅입니다. 최근 LLM 기반의 RAG(Retrieval-Augmented Generation) 시스템 구축이 필수적인 기술로 자리 잡으면서, 근거 문서를 찾아오는 Dense Retriever(검색 모델)의 역할이 중요해졌습니다.하지만 현업에서 RAG를 개발하다 보면 마주치는 고질적인 문제가 있습니다. 바로 "같은 의도의 질문인데, 단어나 어순을 살짝만 바꿔도 검색 결과가 완전히 달라지는 현상(Sensitivity)"입니다. 본 논문은 이러한 검색 모델의 비일관성(Incohere..
포스팅 개요본 포스팅은 최근 RAG(Retrieval-Augmented Generation)의 한계를 극복하기 위해 제안된 CRAG(Corrective Retrieval Augmented Generation)라는 논문을 리뷰하는 포스팅입니다.LLM(Large Language Model)이 환각(Hallucination) 현상을 겪는다는 것은 이제 널리 알려진 사실입니다. 이를 해결하기 위해 외부 지식을 검색해 오는 RAG 기술이 필수적으로 사용되고 있죠. 하지만, 만약 "검색해 온 문서 자체가 틀렸거나 관련이 없다면" 어떻게 될까요? 기존 RAG는 검색된 문서를 맹목적으로 신뢰하다 보니, 잘못된 정보를 바탕으로 더 그럴듯한 거짓말을 만들어내곤 합니다. CRAG는 바로 이 지점에서 출발합니다. 검색된 문서..
포스팅 개요이번 포스팅은 윈도우(windows)에서 PostgreSQL를 벡터 데이터베이스(vector database)를 사용하기 위한 pgvector extension을 설치하는 방법에 대해서 정리하는 글입니다.독자 분들께서도 RAG나 AI Agent 시스템을 구축하면서 벡터 데이터베이스를 사용하시게 되죠? 그 중 PostgreSQL의 pgvector를 활용해 vector database로 많이 활용을 하시는데요. 리눅스(linux)나 Mac에서는 PostgreSQL의 pgvector를 설치하기 어렵지 않습니다.( 제 이전 포스팅(https://lsjsj92.tistory.com/675)에도 소개를 해두었습니다. )그러나 아무래도 윈도우는 WSL을 이용하지 않으면 여러 설치 과정이 있어, pgvect..
포스팅 개요최근 AI 챗봇과 대화를 나누거나 긴 리포트를 요약시킬 때, "입력 가능한 글자 수를 초과했습니다"라는 메시지를 본 적 있으신가요? 현대의 대형 언어 모델(LLM)은 놀라운 성능을 보여주지만, 치명적인 약점을 안고 있습니다. 바로 '긴 텍스트'를 다루는 비용입니다.이는 LLM의 핵심 엔진인 '어텐션 메커니즘'이 입력된 텍스트의 길이가 길어질수록 계산량이 길이의 '제곱($O(n^2)$)'으로 폭증하는 근본적인 한계 때문입니다. 텍스트 1,000자를 처리하는 데 1초가 걸렸다면, 2,000자를 처리하는 데는 4초, 4,000자를 처리하는 데는 16초가 걸리는 식이죠. 이 때문에 수백만 자에 달하는 방대한 문서를 한 번에 처리하는 것은 사실상 불가능했습니다. 그런데 만약, 이를 피할 수 있는 기발한..
포스팅 개요대규모 언어 모델(Large Language Model) 기반의 RAG 시스템을 개발하면서, 가장 중요한 것은 데이터라고 다시 한번 체감하고 있습니다. 아무리 기존에 DX/AX를 준비했어도 LLM과 RAG 기반의 시스템에 well-fit되는 데이터는 더 다른 느낌인데요.특히 RAG 시스템 개발과 더 나아가 AI Agent(AI 에이전트) 시스템 개발을 하면 word, pdf, ppt, 한글(hwp) 데이터를 활용하여 내부 업무 효율화 등으로 시스템을 구축하는 경우가 많습니다.그렇다면 이러한 데이터를 LLM 등이 잘 이해할 수 있도록 잘 파싱(Parsing)하고 관리를 해야겠죠?업스테이지(Upstage)의 Document parser는 이러한 기존 레거시 형태의 문서 데이터들을 파싱해서 RAG에..
포스팅 개요최근 AI의 발전이 눈부십니다. 특히 OpenAI의 새로운 모델인 GPT-5는 단순한 챗봇을 넘어, 스스로 계획을 세우고, 도구를 사용하며, 복잡한 문제까지 해결하는 '에이전트(Agent)'로서의 능력을 보여주고 있습니다. 하지만 이런 강력한 도구도 어떻게 사용하느냐에 따라 그 결과는 천차만별입니다. "AI가 똑똑해졌는데, 왜 아직도 프롬프트 가이드가 필요한가요?"라는 질문이 들 수 있습니다.좋은 질문입니다. 결론부터 말하자면, GPT-5에게 프롬프트는 단순한 '질문'이 아니라, 유능한 AI 비서에게 내리는 '상세한 업무 지시서'이기 때문입니다. 모델의 잠재력을 100% 끌어내고, 내가 원하는 최적의 결과물을 안정적으로 얻기 위해서는 잘 설계된 프롬프트가 필수적입니다.본 포스팅에서는 GPT-5..
포스팅 개요전통적인 교과서는 교육의 핵심적인 도구이지만, 모든 학생에게 동일한 내용을 제공한다는 근본적인 한계를 가지고 있습니다. 새로운 자료를 추가하거나 내용을 다르게 표현하려면 많은 시간과 노력이 필요하기 때문에, 확장 가능한 방식으로 교과서를 수정하는 것은 거의 불가능했습니다.하지만, 최근 급격히 발전한 생성형 AI 기술이 교육 분야에 혁실을 가져올 잠재력이 있다는 구글의 연구가 있는데요.본 포스팅은 구글에서 소개한 논문 Towards an AI-Augmented Textbook 논문을 리뷰하면서 AI가 교육에 미치는 영향, 기존 교육 시스템을 어떻게 바꿀 수 있을지에 대한 인사이트를 정리합니다. - https://services.google.com/fh/files/misc/ai_augmented_..
포스팅 개요AI Agent를 구현하기 위해서는 기억(Memory) 기능이 필요합니다. 주로 랭그래프(LangGraph) 예제를 보면 InMemorySaver를 사용하기도 하는데요.기존의 InMemorySaver는 프로그램이 종료되면 대화 기록이 모두 사라지는 한계가 있었습니다. 하지만 실제 서비스에서는 사용자와의 대화 내역을 영구적으로 보존하고, 언제든지 이전 대화를 이어갈 수 있어야 합니다.이번 포스팅에서는 관계형 데이터베이스(RDB)인 PostgreSQL를 활용해서 영구적인 메모리 관리를 구현하는 방법을 알아봅니다. 본 포스팅을 작성하면서 참고한 자료는 다음과 같습니다. https://langchain-ai.github.io/langgraph/concepts/memory/ OverviewPersis..