목록전체 글 (416)
susinlee 님의 블로그
PyTorch에서 이런 것들을 본 적이 있을 것임.optimizer.zerograd()loss.backward()optimizer.step() 이는 `backward()`가 호출될 때마다 값을 덮어쓰지 않고 더해주는 구조라서 그런 것인데, 새로운 미니배치 학습을 시작할 때 이전 배치의 기울기를 비워주지 않으면 과거의 기울기와 현재의 기울기가 계속 누적되어 잘못된 방향으로 가중치가 업데이트 되어버림. def backward(self, grad_output: np.ndarray) -> np.ndarray: ... self.grad_weight += x.T @ grad_output self.grad_bias += grad_output.sum(axis=0) grad_input..
1. "A가 B에 의존한다"는 것의 의미자동차와 엔진으로 비유할 수 있음.자동차 → 엔진: 자동차는 달리기 위해 엔진을 사용함. 만약 엔진의 시동 거는 방식이나 규격이 완전히 바뀌면 자동차 설계도 뜯어고쳐야 함. 즉, 자동차가 엔진에 의존함반대로 엔진 입장에서는 자신이 트럭에 들어가든, 발전기에 쓰이든 상관없이 "연료만 넣으면 축을 돌린다"는 자기 일만 잘하면 됨. 엔진은 자동차의 외관이나 시트 색상 따위를 전혀 알 필요가 없음 코드에서도 마찬가지임.Trainer: Model을 가져와서 `model.forward(x)` 처럼 호출함. Model이 바뀌면 Trainer도 영향을 받을 수 있으므로 Trainer가 Model에 의존함Model: 자기를 학습시키는 주체가 단순 반복문인지, 복잡한 Trainer ..
모듈 3. RAGAS 핵심 평가지표 심층 분해0) 먼저, 질문에 대한 답질문: RAGAS에 대해 찾아보니 메트릭으로 Context Relevance가 아닌 Context Precision / Recall을 사용하던데 위에서 왜 Context Relevance를 사용한 것인지 궁금해. Context Relevance는 TruLens라는 프레임워크에서 사용하고 있었어. 아니면 혹시 위 세 가지 지표라는 게 단순 프레임워크에 국한되는 것이 아닌걸까? 그렇다면 각 프레임워크별로 해당 지표들을 다르게 계산한다거나 그런 거라면 간략하게 설명해줬으면 좋겠어. 답: 지표는 프레임워크에 종속되지 않음."RAG Triad"라는 이름 자체는 TruLens가 붙인 것이고, RAGAS는 같은 문제를 다른 분해로 접근함. 개념..
모듈 2: RAG Triad와 LLM-as-a-Judge 패러다임1) 핵심 용어 사전 LLM-as-a-Judge사람 대신 LLM이 "이 답변이 컨텍스트에 근거했는가", "이 청크가 질문과 관련 있는가"를 채점하는 방식. 조교가 수백 개 답안을 채점하는 대신, 채점 기준표를 준 별도의 LLM에게 맡기는 것임. 중요한 전제: 채점자 LLM과 답변 생성 LLM은 다른 모델이거나 최소한 다른 프롬프트여야 함. 같은 모델이 같은 편향으로 채점하면 점수가 부풀려짐. Ground Truth"이 질문의 정답은 이것이다"라고 사람이 확정한 라벨. 학사 도메인에서는 정답이 시간에 따라 변하는 것이 문제임. 오늘 맞는 정답이 정정 공지 하나로 내일 틀림. RAG TriadRAG 품질을 세 변으로 나눈 삼각형.(1) Cont..
학습 프롬프트:더보기당신은 대학 시스템 아키텍처 및 LLM 평가 파이프라인 전문가이자 1:1 시니어 테크 튜터입니다. 학교별 홈페이지를 크롤링하여 수집한 '대학생 학사 일정/공지 관리 시스템' 도메인을 기준으로, RAG 기초부터 최신 RAGAS 기반의 정량적 평가 파이프라인 구축까지 단계별 과외식 학습을 진행해주세요. [구현 및 아키텍처 전제 조건] 1. 프레임워크 배제: LangChain, LlamaIndex 같은 고수준 프레임워크는 사용하지 않습니다. 2. 아키텍처: 순수 파이썬(Python)과 LLM의 네이티브 Function Calling(도구 사용)을 기반으로 구축된 에이전트(Agentic RAG) 환경을 가정합니다. 3. 데이터 특성: 학교별 학사 공지, 수강신청/정정 기간, 시험 일정, 졸업..
코딩에이전트 툴을 제작중에 있음. 내가 LLM을 벌써 3년 째 사용하고 있는데, 이런 기능들이 있으면 좋겠다 싶었던 것들을 전부 구현하고 있음. 파일 처리에서 조금 애 먹고 있긴하지만... 대화의 흐름이 한 방향이 아닌 여러 방향으로 진행될 수 있음. 이는 노드로 시각화하여 한 눈에 바라볼 수 있으며, 서브에이전트의 경우 위 아래(90도)로 노드가 분기하도록 되어 있음. 서브 에이전트의 경우 내용을 찾아보기 어렵다는 점이 있었음. 어떻게 지시했고, 어떤 결과를 내뱉었는지 알기 어려웠는데 여기에서는 쉽고 투명하게 알 수 있음. 오픈소스(Apache 2.0)로 운영할 생각이며 조만간 여러 커뮤니티에 홍보를 할 예정. 홍보GIF 하나가 문단 열 개를 이김. 아래 흐름으로 제작 (약 15초)에이전트가 잘못된 ..
모델은 프로그램이 아니라 파일임. `gpt-oss:20b` 같은 오픈소스 모델은 실행 파일이 아니라 숫자 덩어리가 든 14GB짜리 파일 하나임. 그 안에는 순전파를 계산하는 데 쓰는 가중치만 들어 있음. 이 파일을 GPU 메모리에 올려놓고, 글을 넣으면 다음 글자를 계산해 뱉어 주는 별도의 프로그램이 필요함. 그게 추론 엔진이고, Ollama가 바로 그 프로그램임. Ollama = 다운로드 관리자 + 추론 엔진 + 창구 `npm`이나 `docker`에 가까운데, 세 가지를 하나로 묶어봄.하는 일명령비유모델 파일을 받아 관리`ollma pull gpt-oss:20b``npm install`모델을 GPU에 올려 계산(자동)런타임다른 프로그램이 쓸 수 있게 대기(트레이에 상주)로컬 웹 서버 `gpt-oss..
계산 그래프(Computational Graph)는 복잡한 미분 연쇄 법칙(Chain Rule)을 단순한 기본 연산(노드) 단위로 쪼개어, 인공지능이 효율적으로 가중치를 학습할 수 있게 해주는 핵심 프레임워크임. 1. 기본 노드의 역전파 대 원칙모든 역전파는 [최종 역전파 신호 = 상류에서 전달된 전체 기울기 x 자신의 국소적 기울기] 라는 연쇄 법칙을 따름. 이를 기본 연산 노드에 적용하면 다음과 같은 절대적인 규칙이 도출됨.노드 종류연산역전파 규칙덧셈 노드 ($+$)$z = x + y$그대로 전달곱셈 노드 ($\times$)$z = x \times y$서로 바꾸어 곱하기 이 원칙은 특정 숫자에만 적용되는 것이 아니라, 미분학의 근본 법칙(편미분)에서 파생된 일반화된 수학적 규칙임. 아무리 거대한 신경..
