728x90
반응형

기술공부 45

BM25 b(Best Matching 25)와 Opensearch

BM25 (Best Matching 25)는 OpenSearch와 Elasticsearch에서 기본적으로 사용하는 문서와 쿼리 간의 관련성 점수 계산 알고리즘입니다.Lexical Search에서 match 쿼리를 실행했을 때, 각 문서의 _score가 바로 이 BM25 점수입니다.✅ 핵심 개념 먼저 요약용어 설명TF (Term Frequency)쿼리 단어가 문서 내에 얼마나 많이 나왔는가IDF (Inverse Document Frequency)해당 단어가 전체 문서 중 얼마나 희귀한가문서 길이 보정너무 긴 문서는 단어 많이 포함되기 쉬우므로 패널티 줌최종 점수 = TF × IDF × 보정계수 🧮 BM25 수식단어 qiq_i에 대해 문서 DD와 쿼리 QQ 간의 점수:$score(D,Q)=∑i=1nIDF(..

기술공부/LLM 2025.03.26

배치처리의 장점

list(목록)를 한 번에 넣는 경우, 즉, 모든 데이터를 한 번에 처리하는 방식이 문제를 일으킬 수 있기 때문에 배치 처리가 필요합니다.❌ 리스트(list)를 한 번에 넣는 경우 (비효율적인 방식)예를 들어, 대량의 데이터를 한꺼번에 SQL 쿼리에 넣거나 API 요청에 사용하면 부하가 발생합니다.📌 SQL에서 list를 한 번에 넣는 경우 (비효율적인 예시)contentCodes = ["DOC001", "DOC002", ..., "DOC500000"] # 50만 개 문서 코드# 50만 개를 한 번에 넣는 경우placeholders = ','.join(["'{}'".format(code) for code in contentCodes])query = f"SELECT * FROM T_CONTENT_MAS..

배치처리 vs. 개별처리

for문을 돌려서 한 개씩 처리하는 방식은 어떨까?배치 처리와 비교했을 때, for문을 돌려서 한 개씩 처리하는 방식은 **"개별 처리"**라고 볼 수 있습니다.즉, 배치(batch) 처리 대신 데이터를 하나씩 반복문을 돌면서 처리하는 방식인데, 이는 상황에 따라 비효율적일 수도 있고, 적절할 수도 있습니다.❌ 한 개씩 처리하는 경우 (비효율적인 방식)📌 SQL 쿼리를 개별 실행하는 경우for code in code_list: # 50만 개 문서 코드가 있다고 가정 query = f"SELECT * FROM T_CONTENT_MASTER WHERE CONTENT_CODE = '{code}'" cursor.execute(query) result = cursor.fetchall() ..

🚀 Windows에서 OpenSSH를 활용한 원격 접속 설정 및 문제 해결 가이드

🔍 개요Windows 환경에서 OpenSSH를 활용하여 로컬(A)에서 원격(B)으로 SSH 접속을 설정하는 방법을 정리했습니다.또한, SSH 접속 시 발생할 수 있는 문제와 해결 방법도 함께 다룹니다.🛠 1. OpenSSH 설치 및 설정📌 1.1 B 컴퓨터(OpenSSH 서버) 설치OpenSSH 다운로드 및 설치OpenSSH 공식 릴리즈에서 최신 버전을 다운로드압축을 E:\openSSH-Win64 폴더에 풀기PowerShell(관리자 권한)에서 설치 스크립트 실행:cd E:\openSSH-Win64powershell -ExecutionPolicy Bypass -File install-sshd.ps1SSH 서비스 실행 및 자동 시작 설정Start-Service sshd Set-Service -Name..

hugging face 데이터 한번에 다운, git clone, git lfs pull

🚀 git clone vs. git lfs pull 차이점git clone과 git lfs pull은 Hugging Face 저장소에서 모델을 다운로드하는 데 사용되지만, 하는 역할이 다릅니다.✅ 1. git clone의 역할 (일반 파일 다운로드)git clone https://huggingface.co/{링크 위치} C:\HuggingFace\{파일 위치}📌 무엇을 하나요?✅ Hugging Face 모델 저장소의 모든 일반 파일(config.json, tokenizer.json, README.md 등)을 다운로드합니다.✅ 하지만, 대용량 파일(LFS 파일)은 실제 데이터가 아니라 "포인터 파일"만 다운로드합니다.📌 포인터 파일이란?Git은 대형 파일(pytorch_model.bin, senten..

기술공부 2025.02.12

AWS PrivateLink를 사용하여 Amazon Bedrock에 Private Access 설정하기

AWS PrivateLink를 사용하여 Amazon Bedrock에 Private Access 설정하기(🔗 원문: AWS 블로그)🔹 AWS PrivateLink란?AWS PrivateLink는 VPC(가상 사설 클라우드) 내부에서 AWS 서비스 또는 자체 서비스에 인터넷을 거치지 않고 안전하게 연결할 수 있도록 해주는 기능입니다.인터넷을 통하지 않기 때문에 보안이 강화되며, 내부 네트워크를 통한 빠른 통신이 가능합니다.🔹 Amazon Bedrock이란?Amazon Bedrock은 AWS에서 제공하는 생성형 AI(예: ChatGPT 같은 AI)를 사용할 수 있는 서비스입니다.이 서비스를 사용하려면 보통 인터넷을 통해 접근하지만, AWS PrivateLink를 사용하면 VPC 내부에서 안전하게 접근할 ..

기술공부 2025.02.06

논문 리뷰: REALM(Retrieval-Augmented Language Model)

최근 자연어 처리 분야에서 언어 모델의 사전 학습은 놀라운 수준의 세계 지식을 내재화하여 다양한 작업에서 우수한 성능을 보이고 있습니다. 그러나 이러한 지식은 신경망의 파라미터에 암묵적으로 저장되어 있어, 더 많은 지식을 포함하려면 모델의 규모를 계속해서 확장해야 하는 한계가 있습니다. 이를 해결하기 위해, Guu 등(2020)은 언어 모델 사전 학습에 검색 모듈을 통합한 REALM(Retrieval-Augmented Language Model)이라는 새로운 프레임워크를 제안하였습니다. https://arxiv.org/abs/2002.08909 REALM: Retrieval-Augmented Language Model Pre-TrainingLanguage model pre-training has been..

기술공부/LLM 2025.02.03

논문 리뷰: RAPTOR: Recursive Abstractive Processing for Tree-Organized Retrieval

논문 "RAPTOR: Recursive Abstractive Processing for Tree-Organized Retrieval"은 대형 언어 모델(LLM)의 한계를 보완하기 위해 새로운 정보 검색 방식을 제안합니다. https://arxiv.org/html/2401.18059v1 RAPTOR: Recursive Abstractive Processing for Tree-Organized RetrievalLarge Language Models (LLMs) have emerged as transformative tools showing impressive performance on many tasks. With the growing size of LLMs, they can serve standalone ..

기술공부/LLM 2025.02.03

pdf 페이지 img, png로 변환 방법

fitz.Matrix와 page.get_pixmap은 PyMuPDF를 사용해 PDF 페이지를 고해상도 이미지로 변환할 때 핵심적으로 사용되는 메서드와 클래스입니다. 아래에서 이 코드의 동작 원리와 역할을 자세히 설명하겠습니다.1. fitz.Matrix(dpi / 72, dpi / 72)기능fitz.Matrix는 PDF 페이지의 그래픽 변환(확대, 축소, 회전 등)을 제어하는 객체를 생성합니다.여기서는 PDF 이미지를 원하는 DPI(Dots Per Inch) 해상도로 변환하기 위해 확대 비율을 설정합니다.매개변수dpi / 72: X축의 확대/축소 비율.dpi / 72: Y축의 확대/축소 비율.기본 PDF 해상도는 72 DPI입니다. 따라서 원하는 해상도(DPI)를 기준으로 확대 비율을 계산: scale=d..

기술공부 2025.01.24

FastAPI 앱 실행 시 reload 옵션

FastAPI 앱 실행 시 reload 옵션을 사용하려면, uvicorn.run 호출 시 애플리케이션을 문자열로 지정해야 합니다.올바른 실행 방식은 다음과 같습니다:수정된 코드main_API.py에서 다음과 같이 작성되었는지 확인하세요:import uvicornif __name__ == "__main__": uvicorn.run("main_API:app", host="0.0.0.0", port=4000, reload=True)여기서:"main_API:app": main_API.py 모듈의 app 객체를 지정합니다.main_API.py 파일에서 FastAPI 애플리케이션 인스턴스가 다음처럼 정의되어 있어야 합니다:from fastapi import FastAPIapp = FastAPI()실행 방법터미..

기술공부 2025.01.21
728x90
반응형