RAG 시스템은 단순한 LLM 호출이 아니라, 여러 단계로 이루어져있다.사용자 질문관련 문서 검색문서를 프롬프트에 넣기LLM 답변 생성출처와 함께 반환그래서 RAG 답변이 틀렸을 때 원인도 여러 가지다.검색이 잘못됐을 수 있다.검색은 맞았는데 LLM이 문서를 잘못 읽었을 수 있다.답은 맞았는데 출처가 틀렸을 수 있다.문서 자체가 오래됐을 수 있다.RAG 평가는 이 원인을 분리해서 보는 작업이다.예시로 보기질문이 들어왔다고 하자.질문:해외배송 상품을 환불하면 위약금은 얼마인가요?정답을 만들려면 두 개의 근거가 필요하다.근거 A: 해외배송 상품의 환불 정책근거 B: 환불 정책이 참조하는 위약금 산정 조항RAG 시스템은 이 두 근거를 찾아서 LLM에게 줘야 한다.정상적인 흐름은질문 → 검색 단계에서 A와 B를..
RAG나 임베딩 검색을 만들면 결국 이런 작업을 해야 한다.질문을 벡터로 바꾼다.문서 조각들도 벡터로 저장해둔다.질문 벡터와 가장 가까운 문서 벡터를 찾는다.예를 들어 사용자가 이렇게 묻는다고 하자: "택배가 아직 안 왔을 때 보상 받을 수 있나요?"이 질문은 문서의 정확한 문장과 단어가 다를 수 있는데,문서에는 "배송 지연으로 인한 보상 기준은 다음과 같다." 라고 쓰여있을 수 있다.즉, 키워드는 완전히 같지 않고, 그러나 의미는 가깝다.임베딩 검색은 이런 의미 유사성을 이용하는데, 문제는 문서가 많아졌을 때다.문서 조각 1,000개 → 하나씩 비교 가능문서 조각 100만 개 → 하나씩 비교하면 느림문서 조각 1억 개 → 단순 비교는 거의 불가능그래서 필요한 것이 Vector DB와 ANN 검색이다.V..
지도학습에서는 입력 `x`와 정답 `y`가 함께 있다.모델은 `x`를 보고 `y`를 맞히도록 학습한다. CS 문의 분류 문제를 생각해보자.입력 `x`: 문의 문장, 고객 등급, 주문 상태, 배송 상태, 결제 금액정답 `y`: 배송 문의 / 환불 문의 / 교환 문의 / 상품 문의 / 기타 문의이번에는 딥러닝 이전부터 널리 쓰인 머신러닝 모델을 알아본다.먼저 볼 기준기준질문문제 유형회귀인가, 분류인가?데이터 형태숫자형인가, 범주형인가, 텍스트인가?비선형성단순 직선 관계인가, 복잡한 조건 관계인가?해석 가능성왜 그런 예측을 했는지 설명해야 하는가?전처리 필요스케일링, 인코딩, 결측치 처리에 민감한가?데이터 크기샘플 수와 특징(feature) 수가 어느 정도인가?운영 조건빠른 예측, 작은 모델, 설명 가능성이 ..
머신러닝 모델을 만들면 보통 이런 기대를 한다.학습 데이터에서 잘 맞으면새 데이터에서도 잘 맞겠지.하지만 실제로는 그렇지 않을 수 있다.모델이 학습 데이터에서는 거의 완벽한데, 처음 보는 데이터에서는 성능이 떨어지는 경우가 많다.이 현상을 과적합(overfitting)이라고 한다.과적합과적합은 모델이 데이터의 일반적인 패턴이 아니라 학습 데이터에만 있는 우연한 흔들림과 노이즈까지 외워버리는 상태다.예를 들어 학생이 시험공부를 한다고 하자.좋은 공부:문제의 원리를 이해한다.새 문제가 나와도 풀 수 있다.나쁜 공부:기출문제 답만 외운다.기출과 똑같은 문제는 맞힌다.조금만 바뀌면 틀린다.과적합된 모델은 두 번째 학생과 비슷하다.학습 데이터라는 기출문제는 잘 맞히지만, 실제 운영에서 들어오는 새 데이터에는 약하..
Node.js 삭제하기 제어판 > 프로그램 > 프로그램 제거 (또는 Win+R > appwiz.cpl) 설치된 Node.js 버전을 찾아 선택하고 제거 NVM 삭제하기 파일 탐색기에서 C:\Users\\AppData\Roaming\nvm 폴더를 찾아 삭제 Win+R > cmd > control sysdm.cpl,,3 입력 > 환경변수 > NVM_HOME 및 NVM_SYMLINK 변수를 삭제 관련 폴더 삭제하기 C:\Program Files\nodejs 폴더 삭제 C:\Users\\AppData\Roaming\npm 폴더 삭제 Win+R > regedit > HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run 경로에서 nvm 관련 항목을 찾아 삭제
기본 개념Spring Web MVC 패턴Spring Web MVC는 Model-View-Controller(MVC) 패턴을 기반으로 한다.Model: 애플리케이션의 데이터와 비즈니스 로직 담당View: 사용자 인터페이스 담당. (JSP, Thymeleaf 등의 템플릿 엔진)Controller: 사용자 요청을 처리, 모델-뷰 연결 -> Dispatcher Servlet이 컨트롤러 호출Dispatcher Servlet이 때 Dispatcher Servlet은 Spring Web MVC 프레임워크의 핵심 구성 요소로서, 클라이언트의 모든 요청을 받아 적절한 컨트롤러(핸들러)를 찾아 전달하는 역할을 한다.이렇게 컨트롤러 구현을 단순화할 수 있으며, 비즈니스 로직에 집중하고 HTTP 요청 및 응답 처리 등에 대..
General - 일반적인 단축키 Window Mac 설명 Alt + #[0-9] ⌘0...⌘9 각 단축키에 해당하는 도구창 열기 Ctrl + S ⌘S 모두 저장 Ctrl + Alt + Y ⌘⌥Y IntelliJ가 파일 시스템에서 최신 변경 사항을 처리하도록 강제 일반적으로 변경 내용은 자동으로 처리되므로 작업은 아무 작업도 수행하지 않음 Ctrl + Shift + F12 ⌘⇧F12 편집기(Editor) 영역을 최대로 크기로 토글 Alt + Shift + I ⌥⇧I 현재 프로필 기준으로 현재 파일 검사 Ctrl + ` ⌃` 인텔리제이 테마 변경 Ctrl + Alt + S ⌘ , 설정창(Settings) 열기 Ctrl + Alt + Shift + S ⌘ ; 프로젝트 구조창(프로젝트 구조 확인 및 변경) 열..
1. 웹스크래핑(Web Scraping)이란? 우리는 웹 페이지에서 많은 정보를 얻는다. 이 정보들을 추출, 정리할 필요성을 느낄 때가 있는데, 이를 스크래핑이라고 한다. 즉, 웹 페이지의 정보를 가져오고(크롤링;Crawling), 데이터들을 추출(스크래핑;Scraping)해 DB에 저장하고 사용하는 것을 이야기한다. 2. Python으로 웹 크롤링하기 2-1. 준비하기 기본적으로 웹 크롤링은 HTML로 작성된 문서를 긁어서 가져오는 일이기 때문에, 파이썬에서 그 정보를 가져오도록 요청해야 한다. 따라서 Requests 라이브러리로 요청하고, BeautifulSoup 라이브러리로 필요한 정보만 추출할 것이다. requests 라이브러리 설치 나는 venv 가상환경을 사용하기 때문에 간단하게 VSCode ..
결제 api인 아임포트(iamport)가 포트원으로 이름을 바꿨다! 아무튼 나는 이걸 사용해서 결제를 구현했다.결제 기능을 구현하기 전에, 당연히 장바구니/주문 기능부터 구현해야 한다. 주문 -> 결제가 이루어지기까지 전체 과정을 먼저 설계했다. 엔티티 엔티티 설계 아래는 우리 프로젝트 전" data-og-host="chaeyami.tistory.com" data-og-source-url="https://chaeyami.tistory.com/252" data-og-url="https://chaeyami.tistory.com/252" data-og-image="https://blog.kakaocdn.net/dna/bIIzI7/hyVSZiOV2D/AAAAAAAAAAAAAAAAAAAAAPMLBXDIspLptGx8_i4LAiR58jZvTHVysYeOCrrVjk_r/img.png?credential=yqXZFxpELC7KVnFOS48ylbz2pIh7yKj8&expires=1788188399&allow_ip=&allow_referer=&signature=FcUUcmXk5tRG%2BO2nq8OhsQ8RUkw%3D
라우터(Router)라우터는 둘 이상의 패킷 전환 네트워크 또는 서브네트워크를 연결하는 장치입니다.라우터는 데이터 패킷을 의도한 IP 주소로 전달하여 이러한 네트워크 간의 트래픽을 관리하고, 여러 장치가 동일한 인터넷 연결을 사용할 수 있도록 하는 등, 두 가지 주요 기능을 제공합니다. 라우터에는 여러 유형이 있지만, 대부분의 라우터는 근거리 통신망(LAN)과 광역 네트워크(WAN) 간에 데이터를 전달합니다.LAN은 특정 지리적 영역으로 제한된, 연결된 장치 그룹입니다.LAN에는 일반적으로 단일 라우터가 필요합니다. 반면, WAN은 넓은 지리적 영역에 분산된 대규모 네트워크입니다. 예를 들어, 전국의 여러 위치에서 운영되는 대규모 조직 및 회사는 각 위치에 대해 별도의 LAN이 필요하며, 이 LAN은 다..