빅데이타 & 머신러닝 169

바이브 코딩 - 개발자들이 없어진다고 하는데, 바이브 코딩 오해와 진실

요즘 인터넷에 보면 가장 많이 나오는 단어가 바이브 코딩(Vibe coding)이 아닌가 싶다. Cursor와 같은 AI 코딩 도구를 이용해서, 코딩을 모르는 사람도 자연어로 요구 사항을 설명하면 AI가 자동으로 코드를 생성해준다. 유투브 채널에 보면 온갖 바이브 코딩에 대한 이야기이고, 개발자는 이제 없어질 것이며 신입은 필요가 없다는 이야기도 나오는데, 잘못된 오해가 많은 것 같고, 제대로 바이브 코딩을 하는 방법에 대한 가이드가 상대적으로 적은 것 같아서, 바이브 코딩에 대한 오해와, 어떻게 하면 바이브 코딩을 제대로 할 수 있을지에 대해서 설명하고자 한다. 바이브 코딩의 정의바이브 코딩은 OpenAI의 공동 창립자인 Andrej Karpathy에 의해서 2025년 2월에 소개되었다. 바이브 코딩은..

MCP (Model Context Protocol) 2. 서버 개발하기

조대협 (http://bcho.tistory.com)지난 글을 통해서 MCP의 개념에 대해서 간략하게 이해해봤다. 이번글에서는 그러면 어떻게 MCP 서버를 실제로 구현하는지에 대해서 알아보도록 한다. MCP Local server & remote serverMCP server 는 구동 위치에 따라서, 로컬 서버와 리모트 서버로 분리된다. 아래는 Anthropic 의 아키텍처 다이어그램이다.   로컬 서버의 경우, MCP 애플리케이션 호스트 프로세스가 기동되는 로컬 데스크탑에서 실행되는 서버이고, 리모트 서버는 클라우드나 기타 네트워크로 접속될 수 있는 환경에서 기동되는 서버이다. 로컬 서버의 경우에는 같은 데스크탑에서 실행되기 때문에, 로컬 자원, 즉 데스크탑의 파일 등에 접근할 수 있다.(노트 : 이는..

MCP (Model Context Protocol) 1. 개념 이해

조대협 (http://bcho.tistory.com) 근래에 들어서 LLM 에 관련해서 가장 핫한 토픽중에 하나는 MCP (Model Context Protocol)이다. MCP는 Anthropic에서 발표한 프로토콜로 LLM 모델이 외부 애플리케이션과 연동할 수 있도록 해주는 스펙으로, 예를 들어 클로드 모델이 학습된 결과로 답변만할 수 있는데 비해서 MCP를 이용하여 외부 애플리케이션과 연동하게 되면, 구글 검색 결과를 통해서 최신 정보를 가지고 답변을 하거나, Spotify를 이용해서 음악을 플레이하도록 할 수 있다.  이번 글에서는 MCP에 대한 개념에 대해서 이해해보도록 한다. (아래는 본 글의 내용을 이해하기 쉽게 설명한 비디오 이다. ) Agent 개념의 이해MCP를 이해하려면 먼저 LLM과..

바이브 코딩 메뉴얼 - AI 에이전트를 활용한 더 빠르고 스마트한 개발

조대협 (http://bcho.tistory.com)소프트웨어를 작성하는 방식이 변화하고 있다. "바이브 코딩(Vibe Coding)"은 더 직관적이고 AI 주도적인 개발 프로세스를 일컫는 용어로 주목받고 있다. 온라인 커뮤니티에서 만들어지고 Cursor나 Windsurf 같은 도구를 통해 대중화된 이 방식은, 모든 코드를 직접 입력하기보다 지능형 에이전트를 통해 자신의 비전, 즉 "바이브(vibe)"에 기반하여 애플리케이션을 구축하도록 안내하는 것에 가깝다."에이전트 기반 코딩(Agentic Coding)"이라고도 알려진 이 방식은 단순히 멋진 자동 완성과는 다르다. 이는 Claude 3.7 Sonnet('Thinking' 버전이 특히)이나 Grok과 같은 AI 모델과 협력하여 초기 구조 설정부터 기능..

LLM 모델의 JDBC 드라이버 LiteLLM

조대협 (http://bcho.tistory.com) 최근 여러 LLM이 소개 되고 있는데, LLM 마다 가격이나 특성이 틀리기 때문에 여러 모델을 함께 사용하는 경우가 있는데, 이때 마다 SDK가 달라서 어려움이 있을 수 있다. (물론 Langchain을 써도 된다.) 또한 금액이나 요청 종류에 따라서 특정 LLM으로 라우팅을 하거나 또는 특정 LLM 모델이 응답을 하지 못할때 Fallback등의 기능을 구현해야 하는데, LiteLLM은 이런 기능을 제공하는 파이썬 라이브러리이다. 이글에서는 LiteLLM과, 대표적인 라우팅 기능에 대해서 알아보도록 한다. 1. LiteLLM이란 무엇이고 왜 필요한가?LiteLLM은 다양한 LLM 제공자(Provider)들의 API를 표준화된 단일 인터페이스로 호출할 ..

빅데이터 분석을 위한 메달리온 아키텍처

빅데이터 분석을 위한 메달리온 아키텍처조대협 (http://bcho.tistory.com) 메달리온 아키텍처는 데이터를 품질에 따라서 계층별로 나눠서 저장하는 데이터 분석 아키텍처이다. Databricks에서 데이터 엔지니어링과 분석 워크플로우를 단순화하기 위해서 소개된 개념으로 데이터 레이크 기반 시스템에서 데이터의 품질과 정제 수준을 체계적으로 관리하기 위해서 등장했다. 데이타를 품질에 따라서, 올림픽 메달처럼 Bronze ⇒ Silver ⇒ Gold 등급으로 나눠서 저장한다. 특히 데이터 레이크 (하둡과 같은 파일 시스템 기반)과 데이터 웨어하우스(빅쿼리,오라클,스노우플레이크와 같은 SQL 기반)을 통합하여, 데이터 정제 단계를 계층화 하였다.  이해를 돕기 위해서 아래 그림을 보자. 먼저 데이터 ..

빅데이터 분석을 위한 ELT 플랫폼 BQ Workflow vs Dataform

빅데이터 분석을 위한 ELT 플랫폼 BQ Workflow vs Dataform조대협 (http://bcho.tistory.com) 빅데이터 분석에 시스템에서 데이터 분석에 앞서서, 데이터 수집 (Ingestion),데이터 변환(Transformation) 과정이 있고, 이 과정은 여러개의 스텝으로 구성이 된다. 그래서 이런 스탭들을 관리하기 위해서 오케스트레이션 솔루션이 사용되는데, 오픈소스로 가장 많이 사용되는 솔루션 중의 하나는 Apache Airflow이다. Airflow는 재처리 로직, 병렬처리, 외부 컴포넌트 호출등 많은 기능을 폭넓게 지원하지만 문제는 그만큼 복잡도가 높다는 문제이다. (Airflow에 대한 설명 : https://bcho.tistory.com/1184 )현재의 빅데이터 분석은..

LLM 파인튜닝 기법 LoRA에 대한 개념 이해

LoRA 파인튜닝 개념의 이해조대협 (http://bcho.tistory.com) LLM 모델에 대한 Fine tuning시에, 가장 기본적인 방법은 모델을 학습데이터로 새롭게 처음부터 학습하는 방법인데, 이 방법은 (GPU)비용이 너무 많이 들고 시간도 많이 걸린다. 그래서 대안으로 등장한것이 PEFT (Parameter-Efficient Fine-Tuning) 이라는 개념으로 , 원본 모델의 패러미터(Weight)값은 고정 시키고 작은 수의 파라미터만 훈련하거나 작은 모듈을 추가하여 학습 하는 방법으로, 과적합 (Overfitting)을 방지하고 연산량을 줄이 는 방식이다. AdapterPEFT 방법으로는 오늘 살펴볼 LoRA나 Adapter 등의 방식이 있다.Adapter 방식은 기존 모델 아키텍처..

로컬에서 LLM 모델을 실행하기 위한 Ollama, LMStudio

요즘 LLM이 유행하면서 로컬 환경에서 소형 LLM인 sLLM을 실행하는 경우가 많은데, sLLM은 종류도 많을뿐더라, 코드를 직접 실행하고, 런타임을 최적화하기가 매우 어렵다.이런 문제를 해결하기 위해서 sLLM을 손쉽게 실행할 수 있는 환경이 있는데, 가장 널리 사용되는 환경으로는 Ollama와 LMStudio가 있다.  Ollama는 아래와 같이 CLI환경에서 프롬프트를 입력할 수 있다. 또한, HTTP REST API를 제공하기 때문에 애플리케이션 개발에도 유용하게 사용할 수 있다.  개인적으로는 LMStudio를 좀 더 선호하는데, LMStudio는 아래와 같이 GUI 베이스로, 쳇봇 GUI를 지원하기 때문에 좀더 깔끔하게 사용할 수 있고, 히스토리 관리등이 가능하다.  맥북 PRO M1으로 실..

벡터 임베딩에서 단어간의 유사도를 판단하는 원리

조대협 (http://bcho.tistory.com) 자연어 처리(NLP)의 핵심 기술 중 하나인 단어 임베딩(Word Embedding), 그 중에서도 단어 간 유사도를 어떻게 파악하는지 그 원리를 깊이 있게 파헤쳐 보려고 한다.혹시 컴퓨터가 어떻게 단어의 의미를 이해하고, "고양이"와 "강아지"가 유사한 단어라는 것을 알아차리는지 궁금한 적 없는가? 그 비밀은 바로 단어 임베딩에 있다! 핵심 원리: "비슷한 동네에 사는 단어는 비슷한 친구다!"단어 임베딩의 핵심 아이디어는 아주 직관적이다. 바로 **"유사한 맥락에서 등장하는 단어는 유사한 의미를 가진다"**는 분포 가설(Distributional Hypothesis) 에 기반을 두고 있다. 쉽게 말해, 비슷한 문맥에서 자주 함께 등장하는 단어들은 의..