분류 전체보기
-
[Python 동시성 이해하기 ①] 순차·병렬·동시성의 차이개발 2026. 1. 25. 23:16
AI Engineer로서 Python으로 실무 개발을 시작하다 보면, 한 번쯤 이런 고민을 하게 된다.이거 요청이 많아지면 느려질 것 같은데?여러 작업을 동시에 처리해야 하는 거 아닌가?근데.. asyncio? thread? 뭐가 어떤거지?실제로 멀티 에이전트 기반 챗봇 서비스를 개발하다 보니, 요청 처리 방식이나 실행 흐름과 같은 동시성 관련 개념이 생각보다 자주 등장했고, 그때마다 개념들이 머릿속에서 뒤엉키는 느낌을 받았다. 순차(Sequential), 병렬(Parallel), 동시성(Concurrency).용어는 익숙한데, 막상 설명하려고 하면 애매해지는 개념들이다. 그래서 이번 글에서는 Python 개발자(나..ㅎㅎ)가 실무에서 마주하게 되는 이 세 가지 개념을, 서로 헷갈리지 않도록 한 번에 정..
-
RAFT: Adapting Language Model to Domain Specific RAG연구/논문리뷰 2025. 12. 15. 01:38
1. RAFT의 등장 배경대형 언어모델은 일반적인 상식, 요약, 추론에서는 강력한 성능을 보이지만, 실제 도메인 문서 기반의 질문에 대해 안정적으로 답변하는 데에는 한계가 존재한다. 특히 RAG(Retrieval-Augmented Generation) 시스템에서는 검색된 문서가 정답을 포함하지 않거나, 정답과 유사해 보이지만 실제로 무관한 문서가 함께 반환되는 경우가 흔하다.이런 상황에서는 모델이 오답을 생성하거나 불안정한 답변을 내놓기 쉽다.RAFT 는 이 문제를 모델 차원에서 해결하기 위해 고안된 방법이다. 질문과 함께 관련 문서와 비관련 문서가 섞인 문서 집합을 제공하고, 모델이 정답 근거 문서를 구분해 답변을 생성하도록 학습하는 방식이다.RAFT의 핵심은 검색 기반 QA 환경(open-book s..
-
MCP(Model Context Protocol) 란?개발/TIL 2025. 11. 23. 21:23
증권사 AI 리서치 챗봇 PoC를 수행하면서 실무적으로 MCP를 적용해볼 기회가 있었고, 당시 미처 깊게 공부하지 못했던 부분을 다시 정리해보고자 한다.아직 생태계가 빨리 발전하고 있는 기술이지만, LLM 기반 애플리케이션을 구현하는 입장에서 반드시 이해해야 하는 개념이라고 느꼈다. 1. MCP(Model Context Protocol)란 무엇인가?먼저 MCP가 등장한 이유부터 살펴보는 것이 이해에 도움이 된다.기존 LLM 기반 애플리케이션에서는 모델이 외부 도구나 데이터 소스와 상호작용하는 방식이 표준화되어 있지 않았다.그 결과 개발자는 다음과 같은 문제를 반복적으로 겪었다.새로운 툴을 추가할 때마다 Function Calling 스펙을 직접 다시 정의해야 하고,모델(GPT/Claude/오픈소스)마다 ..
-
DSPy(Declarative Self-improving Python) 찍먹해보기개발/TIL 2025. 11. 23. 17:55
최근 LLM 개발 흐름을 보면“프롬프트 엔지니어링 → 파이프라인 설계 → 자동 개선”이라는 방향으로 점점 진화하고 있다.이런 흐름을 대표하는 도구 중 하나가 DSPy(Declarative Self-improving Python) 이다.DSPy는 어떤 프레임워크인가?DSPy는 스탠포드・애플・워싱턴대 연구자들이 함께 개발한 프레임워크로,기본적인 개념과 구조는 아래 논문에서 제시된다.DSPy: Compilers for Self-Improving Systems with Foundation Models(Stanford, 2024)https://arxiv.org/pdf/2310.03714 논문의 핵심 아이디어는 다음과 같다.프롬프트를 “문자열”로 직접 쓰는 방식은 유지보수가 어렵다대신 입력/출력 구조(Signatu..
-
[MLOps] 모델 개발 과정 및 학습 데이터 준비 - ①개발 2025. 1. 16. 23:53
머신러닝 모델 개발은 단순히 모델 학습에만 국한되지 않는다. 실제로 모델 학습은 전체 프로세스에서 비교적 적은 비중을 차지하며, 데이터 준비와 모델의 상품화 과정이 더 중요할 수 있다. 이 글에서는 머신러닝 모델 개발과 상품화를 위한 전반적인 과정을 정리한다. 특히, 첫 번째 단계인 학습 데이터 준비에 대해 먼저 알아본다:)🌟모델 개발 과정 - 3단계1. 학습 데이터 준비- 모델 개발에서 가장 중요한 단계로, 머신러닝 모델의 목적에 맞는 학습 데이터를 준비하는 과정이다. 데이터의 품질과 적합성이 모델 성능에 큰 영향을 미친다.2. Feature Engineering- 학습 데이터를 모델에 적합한 형태로 변환하는 과정이다. 적절한 Feature Engineering은 모델 성능을 크게 향상시킬 수 있다...
-
[MLOps] MLOps란?개발 2025. 1. 7. 19:24
🌟MLOps란?Machine Learning Operations의 약자로, 머신 러닝 모델을 효과적으로 관리, 배포 및 유지보수하기 위한 방법과 프로세스를 가리키는 용어를 말한다. MLOps는 머신 러닝 모델을 제품 또는 서비스로서 실제 환경에 효율적으로 통합 즉, 상품화하는 작업을 지원한다.🌟용어 정리1. 머신러닝 상품화AI 모델을 실제 서비스에 통합하여 상업적으로 활용 가능한 형태로 전환하는 과정이다.머신러닝 모델은 연구 단계에서 멈추지 않고, 실제 사용자들이 사용할 수 있는 시스템에 적용되어야 한다. 이 과정에서 모델을 안정적으로 배포하고 관리하는 기술이 중요하다.2. DevOpsDevOps는 Development(개발) + Operations(운영)의 합성어로,소프트웨어 개발과 IT 운영 간의..
-
[Python] 우선순위 큐를 이용한 다익스트라 알고리즘 구현ETC 2024. 12. 20. 23:21
다익스트라 알고리즘은 가중치 그래프에서 시작점과 도착점이 주어졌을 때, 최단 경로(shortest path)를 찾아주는 알고리즘이다.완전 탐색을 이용하면 많은 비용이 소모된다.이를 효율적으로 해결하기 위해 다익스트라 알고리즘을 사용한다.방문 가능한 노드들 중에서 가장 비용이 작은 노드를 선택하여 방문한다.즉, 우선순위가 높은 곳을 먼저 방문한다.우선순위 큐와의 관계우선순위 큐를 사용하면 원하는 조건에 따라 (min 또는 max) 자동 정렬이 이루어진다.이를 통해 다익스트라 알고리즘의 구현이 훨씬 간편해진다.중요한 점: 우선순위가 높은 데이터가 항상 큐의 맨 앞에 위치한다. # 간단한 수도 코드1. 우선순위 큐에 시작노드 추가 2. 우선순위가 가장 높은 노드 추출 3. 방문여부 확인 ..
-
[Python] Priority Queue(우선순위 큐) - 완전 이진 트리로 구현하기ETC 2024. 12. 20. 22:15
우선순위 큐는 리스트와 완전 이진 트리를 활용하여 구현하는 두 가지 방법이 있다.예를 들어, 가장 작은 값을 먼저 빼내야 하는 경우를 생각해보면, 다음과 같은 시간 복잡도가 발생한다.리스트를 이용하는 경우정렬되지 않은 리스트에서는 삽입이 O(1)이지만 최소값을 찾는 데 O(N)의 시간 복잡도가 발생한다.정렬된 리스트를 사용할 경우, 삽입에 O(NlogN)의 시간이 걸리지만 최소값을 찾는 작업은 O(1)로 수행된다.완전 이진 트리를 이용하는 경우삽입과 삭제 모두 O(logN)의 시간 복잡도를 가지므로 더 효율적인 방법이다. 완전 이진 트리를 활용하려면 어떻게 구현해야 할까?완전 이진 트리를 효과적으로 구현하려면 힙(Heap) 자료구조를 사용하는 것이 적합하다.힙은 완전 이진 트리의 성질을 가지며 우선순위 ..