본문 바로가기
반응형

Python134

Python - List 활용 성능 개선 팁 Python에서 메모리 자료 구조는 신경을 크게 쓰지 않고 작업을 하게 되는 경우가 많다, 이렇다 보니 간단한 프로그램에서는 괜찮은데, 대용량을 처리하는 데이터 분석등에는 메모리 사용되는 방식에 따라서 성능 체감이 크게 느끼게 되었다. 여기에서는 2가지 크게 성능을 느꼈던 부분에 대해서 공유해본다. 1. List에서 찾기 사용시 {} 활용List를 활용할때 in을 통해서 검색을 하는 경우는 자주 사용되는 방식이다.그런데 List 구조체가 커지는 경우 [] 구조체는 속도가 급격하게 느려지게 된다.이를 {}, Dict 형태의 구조체를 사용하면 속도를 획기적으로 개선할 수 있다.아래는 테스트 코드이다.import time# 테스트 반복 횟수N = 1_000_000_0# 리스트 append 속도 측정start.. 2025. 9. 8.
Python - Llama.cpp GPU로 Windows 에서 구동하기 Windows에서 Llama.cpp 버전을 사용하는 것은 필자와 같이 Windows를 주로 사용하는 유저에게는 꼭 필요한 부분으로, 약간은 번거롭지만, 어렵지 않고 한번 해두면 계속 사용할 수 있기 때문에 여기에 정리해 둔다.1. Git 설치Github과 같은 레포스토리지를 활용하기 위해서 설치해야 한다. 기본옵션으로 설치하자.Git - Downloading Package 2. Conda 설치별다른 옵션을 선택할 필요는 없다. 기본옵션으로 설치하자.Download Success | Anaconda설치시 기본 옵션으로 설치하자. 3. Visual Studio - C++를 사용한 데스크톱 개발 설치Windows용 Visual Studio C/C++ IDE 및 컴파일러윈도우에서는 cmake, nmake와 .. 2025. 7. 31.
Python - FastAPI로 로컬 LLaMA 모델을 API 실행 FastAPI를 이용하면, Ollama를 이용하지 않고도 직접 모델을 서비스하는 것이 쉽게 가능하다.만약 직접 모델을 다운로드하여 보다 자유롭게 운영하고 있다면, 아래와 같이 실행해보는 것을 추천한다.from fastapi import FastAPI, Requestfrom pydantic import BaseModelfrom llama_cpp import Llamaimport uvicorn# 모델 로드model_path = r"F:\LLM\Models\Meta-Llama-3.1-70B-Instruct-GGUF\Meta-Llama-3.1-70B-Instruct-Q3_K_M.gguf"llm = Llama(model_path=model_path, gpu_layers=-1)# FastAPI 앱 생성app = F.. 2025. 7. 30.
LangChain 로더 종류 및 특징 from langchain.document_loaders import TextLoader, CSVLoader, PyPDFLoader, DirectoryLoader, WikipediaLoader# 텍스트 파일 로딩text_loader = TextLoader("example.txt")documents = text_loader.load()# CSV 파일 로딩csv_loader = CSVLoader(file_path="data.csv")documents = csv_loader.load()# PDF 파일 로딩pdf_loader = PyPDFLoader("report.pdf")documents = pdf_loader.load()# 디렉토리 내 모든 파일 로딩dir_loader = DirectoryLoader("do.. 2025. 7. 28.
BERT 모델을 이용해서 이상 문장 학습 및 탐지하기 BERT 모델이 비밀번호 관련 문장을 학습하여 탐지할 수 있도록 설계하려면, 먼저 데이터셋을 준비하고, BERT 모델을 미세 조정(Fine-tuning)해야 합니다. 이 과정은 다음과 같이 구성됩니다:1. 데이터 준비먼저 비밀번호 관련 문장이 포함된 데이터셋이 필요합니다. 데이터셋은 "비밀번호가 포함된 문장"과 "비밀번호가 없는 문장"을 두 클래스로 나누어 구성해야 합니다.예시 데이터셋 (CSV 형식 예): 문장값"The password is 1234."1"This is just a normal sentence."0"비밀번호는 qwerty입니다."1"오늘 날씨가 참 좋네요."02. Hugging Face를 사용한 BERT 모델 Fine-tuning아래 코드는 BERT 모델을 이용해 문장을 분류할 수 있.. 2025. 4. 16.
Python - 내장 변수 관리 locals() locals() 함수는 현재 로컬 심볼 테이블을 나타내는 딕셔너리를 반환환다.이 딕셔너리는 함수 내에서 정의된 변수와 그 값을 포함합니다. locals()는 주로 디버깅이나 동적으로 로컬 변수를 조작할 때 유용하다.1. 로컬 변수 조회:locals()를 사용하면 함수 내에서 정의된 모든 로컬 변수를 쉽게 조회할 수 있습니다.2. 로컬 변수 수정:Python 3.13부터 locals()로 반환된 딕셔너리를 수정하면 실제 로컬 변수도 업데이트def update_locals(): test = 'hello' local_vars = locals() local_vars['test'] = 'world' print(test) # 출력: worldupdate_locals()CLI에서 현재 선언된 .. 2025. 4. 9.
반응형