본문 바로가기
반응형

전체 글167

[LLM] LLM 공부 10편: 파인튜닝의 종류와 진행 과정 RAG 글에서 "무엇을 알고 답할지는 RAG, 어떻게 답할지는 파인튜닝"이라고 정리했습니다. 그렇다면 파인튜닝은 정확히 무엇이고, 어떤 상황에서 시간과 비용을 들여 할 가치가 있을까요?이번 글에서는 파인튜닝(fine-tuning)의 개념과 종류, 진행 과정, 그리고 파인튜닝이 필요한 경우와 필요 없는 경우를 정리해 보겠습니다. 1. 파인튜닝이란?파인튜닝은 이미 학습이 끝난 모델을 특정 목적에 맞는 데이터로 추가 학습시켜 모델 자체를 조정하는 것입니다. 우리말로는 '미세 조정'이라고 부릅니다.비유하자면, 사전학습을 마친 LLM은 폭넓은 교양을 갖춘 신입 사원이고, 파인튜닝은 이 사원에게 우리 회사의 업무 방식과 보고서 양식을 집중적으로 가르치는 직무 교육입니다. 프롬프트가 "매번 업무 지시서를 주는 것"이.. 2026. 11. 2.
RAG 챗봇 만들기 1: PDF 불러오기와 청크 나누기 첫 프로젝트는 사내 규정집에 답하는 RAG 챗봇입니다. 직원이 "책 사면 회사에서 돈 줘?"라고 물으면, 챗봇이 규정집에서 관련 조항을 찾아 "업무용 도서 구입비는 연 30만 원까지 지원합니다 [1]"처럼 출처와 함께 답합니다. RAG의 원리는 RAG 정리 글과 LLM 공부 시리즈 7~9편에서 다뤘으니, 이번에는 직접 만들어 보겠습니다.RAG 챗봇은 4편에 걸쳐 만듭니다. 이번 글에서는 PDF에서 글자를 꺼내고, 검색하기 좋은 크기로 나누는 청크 나누기(chunking)를 다룹니다. 화려하지 않은 단계지만 RAG 품질의 상당 부분이 여기서 결정됩니다. 1. 이 프로젝트에서 만드는 것편단계결과물2편 (이번 글)문서 불러오기, 청크 나누기load_chunk.py3편임베딩, 벡터 DB 저장, 검색index.p.. 2026. 11. 2.
LLM API 오류 처리와 재시도, 비용 추적 방법 지난 글의 예제는 API 호출이 항상 성공한다고 가정했습니다. 하지만 실제 서비스에서는 요청이 너무 많다는 오류, 서버가 일시적으로 바쁘다는 오류, 네트워크 끊김이 생각보다 자주 발생합니다. 이런 상황에서 프로그램이 그대로 멈춘다면 사용자는 오류 화면을 보게 됩니다.이번 글에서는 LLM API에서 자주 만나는 오류의 종류, 다시 시도해도 되는 오류와 아닌 오류를 구분하는 법, 재시도와 타임아웃 설정, 그리고 토큰 사용량으로 비용을 추적하는 방법을 정리해 보겠습니다. 1. 자주 만나는 오류와 대응 방법API 오류는 HTTP 상태 코드로 구분할 수 있습니다. 핵심은 다시 시도하면 해결될 수 있는 오류와 코드나 설정을 고쳐야 하는 오류를 나누는 것입니다.상태 코드의미재시도대응400요청 형식이 잘못됨X매개변수,.. 2026. 11. 2.
AI를 위한 수학 2: 내적과 코사인 유사도로 문장의 비슷함 계산하기 지난 글에서 bge-m3가 문장 하나를 1,024개의 숫자로 바꾸는 것을 봤습니다. 그런데 숫자 목록만으로 어떻게 "고양이 문장과 강아지 문장이 비슷하다"는 것을 알 수 있을까요? 답은 방향입니다. 의미가 비슷한 문장의 벡터는 비슷한 방향을 가리키도록 학습되어 있고, 두 벡터의 방향이 얼마나 비슷한지는 내적과 코사인 유사도로 계산합니다. 이번 글에서는 두 계산을 직접 구현하고, 실제 문장 임베딩에 적용해 RAG 검색이 어떻게 동작하는지까지 확인합니다. 1. 내적과 코사인 유사도내적(dot product)은 두 벡터의 같은 자리끼리 곱해서 모두 더한 값입니다.a = [1, 2], b = [2, 4]a · b = 1×2 + 2×4 = 10코사인 유사도는 내적을 두 벡터 길이의 곱으로 나눈 값입니다.cos(.. 2026. 11. 2.
이미지·영상 생성 AI 2: 비전 트랜스포머, 이미지를 조각 내 문장처럼 읽기 지난 글의 CNN은 작은 필터를 옮겨 가며 가까운 픽셀끼리의 무늬를 찾았습니다. 2020년에 나온 비전 트랜스포머(ViT, Vision Transformer)는 전혀 다른 방법을 택했습니다. 이미지를 작은 조각(패치)으로 잘라, 조각 하나를 단어 하나처럼 취급하고 LLM과 같은 트랜스포머로 "문장 읽듯이" 읽는 것입니다. 이번 글에서는 손글씨 숫자로 아주 작은 ViT를 직접 만들고, ViT에서 위치 정보가 왜 꼭 필요한지 실험으로 확인합니다. 이 내용은 3편 이후의 디퓨전 모델, 그리고 이미지와 글을 함께 다루는 모델(qwen3-vl 등)의 바탕이 됩니다. 1. 이미지를 조각 내어 "문장"으로 만들기8×8 손글씨 이미지를 2×2 조각 16개로 잘랐습니다. 조각 하나는 숫자 4개입니다. 이 16개 조각이 .. 2026. 11. 2.
AI 앱 화면 만들기 2: HTML과 CSS로 채팅 화면 틀 만들기 지난 글에서 웹 화면이 HTML(구조), CSS(모양), JavaScript(동작)로 이루어진다는 것을 확인했습니다. 이번 글에서는 앞으로 시리즈 내내 발전시킬 채팅 화면의 틀을 HTML과 CSS만으로 만듭니다. 아직 질문을 보내는 기능은 없고, 대화 내용도 HTML에 직접 적어 둔 예시 문장입니다. 대신 "위에 머리글, 가운데 대화 목록, 아래 입력창"이라는 배치를 제대로 잡고, 휴대폰처럼 좁은 화면에서도 깨지지 않게 만드는 데 집중합니다. 1. HTML로 구조 잡기먼저 화면을 세 부분으로 나눕니다. 로컬 AI 채팅 qwen3:8b HTML과 CSS의 차이를 한 줄로 알려 줘. HTML은 화면에 무엇이 있는지(내용과 구조)를, CSS는 그것이 어떻게 보이는지(색, 크기,.. 2026. 11. 2.
개발자 기본기 2: 리눅스 셸 명령어, Docker로 Ubuntu 띄워 연습하기 AI 모델을 실제로 서비스하는 GPU 서버, 클라우드 가상 머신, Docker 컨테이너는 대부분 리눅스입니다. 서버에 접속하면 화면도 마우스도 없이 터미널 하나만 주어집니다. 이번 글에서는 리눅스의 기본 명령어를 연습합니다. 리눅스 PC가 없어도 괜찮습니다. 앞 시리즈에서 설치한 Docker로 Ubuntu 컨테이너를 띄우면 몇 초 만에 연습장이 생깁니다. 1. Docker로 리눅스 연습장 만들기docker run --rm -it ubuntu:24.04 bashubuntu:24.04: Ubuntu 24.04 LTS 이미지입니다. 처음 실행하면 약 30MB를 내려받습니다.-it: 키보드 입력을 받는 대화형 터미널로 실행합니다.--rm: 나가면(exit) 컨테이너를 지웁니다. 무엇을 망가뜨려도 다음에 새로 시.. 2026. 11. 2.
데이터 분석과 머신러닝 1: pandas 시작, 표 데이터 읽고 요약하기 ChatGPT 같은 LLM이 등장한 뒤로 "머신러닝 = LLM"처럼 느껴지기 쉽습니다. 그런데 회사에 실제로 쌓여 있는 데이터를 떠올려 보면 상당수가 표(테이블)입니다. 고객 정보, 주문 기록, 결제 내역, 센서 값. 이런 표 데이터로 "어떤 고객이 떠날까?", "다음 달 매출은 얼마일까?"를 예측하는 일에는 여전히 전통 머신러닝(로지스틱 회귀, 결정 트리, 그래디언트 부스팅 등)이 더 정확하고, 빠르고, 싸고, 설명하기 쉽습니다. 9편에서는 실제로 LLM과 나란히 비교해 봅니다.이 시리즈는 가상 온라인 쇼핑몰의 고객 데이터 하나로 처음부터 끝까지 진행합니다. 데이터를 읽고, 정리하고, 그래프로 살펴보고, 이탈할 고객을 예측하는 모델을 만들고, 그 모델을 제대로 평가하는 과정입니다. 첫 글에서는 데이터 .. 2026. 11. 1.
AI를 위한 수학 1: 벡터, 임베딩은 숫자 목록이다 AI 공부를 하다 보면 수학 용어에서 자주 막힙니다. "임베딩은 1024차원 벡터", "코사인 유사도로 검색", "가중치 행렬과 곱한다", "경사 하강법으로 손실을 줄인다", "교차 엔트로피 손실". 공식을 펼치면 기호가 쏟아지고, 기호를 외워도 실제 AI 코드와 어떻게 이어지는지는 잘 보이지 않습니다.이 시리즈는 방향을 바꿔 봅니다. 공식 대신 Python 코드로 직접 계산하고, 가능한 한 실제 AI 모델이 만든 숫자로 확인합니다. 임베딩은 실전 프로젝트 시리즈의 RAG에서 쓴 bge-m3에서, 확률은 qwen3:8b가 실제로 계산한 다음 토큰 확률에서 가져옵니다. 첫 글은 모든 것의 바탕인 벡터입니다. 1. 이 시리즈에서 다루는 것편수학AI에서 쓰이는 곳1~3벡터, 내적, 행렬임베딩, 의미 검색, 신.. 2026. 11. 1.
반응형