728x90
Ollama + LLAMa - WSL Oracle Linux 9.5
#install NVIDIA , Cuda, ollama, LLama
#install NVIDIA
NVIDIA CUDA 저장소 추가
dnf/yum 작동을 위해 : /etc/yum.repos.d/nvidia.com.repo 를 작성합니다.
# /etc/yum.repos.d/nvidia.com.repo 을 아래와 같이 작성합니다.
[cuda-rhel10-x86_64]
name=cuda-rhel10-x86_64
baseurl=https://developer.download.nvidia.com/compute/cuda/repos/rhel10/x86_64
enabled=1
sslverify=0
gpgcheck=1
gpgkey=https://developer.download.nvidia.com/compute/cuda/repos/rhel10/x86_64/CDF6BA43.pub
[nvidia.com]
name=created by dnf config-manager from https://nvidia.com
baseurl=http://nvidia.com
enabled=0
sslverify=0
CUDA Toolkit 설치 (드라이버 제외)
WSL에서는 커널 모듈이 필요 없으므로, 전체 cuda 메타 패키지 대신 CUDA Toolkit만 설치하면 됩니다.
#NVIDIA CUDA 환경 설정
sudo dnf install -y kernel-headers kernel-devel gcc make
sudo dnf install -y cuda
# NVIDIA CUDA 저장소 추가
sudo dnf install -y dnf-plugins-core
sudo dnf config-manager --add-repo http://developer.download.nvidia.com/compute/cuda/repos/rhel9/x86_64/cuda-rhel9.repo
sudo dnf clean all
# CUDA Toolkit 설치
sudo dnf -y install cuda-toolkit-13-1
# 환경 변수 설정
echo 'export PATH=/usr/local/cuda/bin:$PATH' >> ~/.bashrc
echo 'export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc
source ~/.bashrc
# CUDA Toolkit 점검
nvcc --version
nvidia-smi
- nvcc --version → CUDA 컴파일러 버전 확인
- nvidia-smi → WSL에서 GPU가 정상적으로 노출되는지 확인
PyTorch 및 Transformers GPU 최적화
pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu131
PyTorch GPU 테스트
CUDA가 정상적으로 동작하는지 Python에서 확인:
import torch
print(torch.cuda.is_available())
print(torch.cuda.get_device_name(0))
LangChain RAG 파이프라인 GPU 최적화
임베딩 모델을 GPU에서 실행:
# 임베딩 모델을 GPU에서 실행:
from langchain.embeddings import HuggingFaceEmbeddings
embeddings = HuggingFaceEmbeddings(
model_name="sentence-transformers/all-MiniLM-L6-v2",
model_kwargs={"device": "cuda"}
)
LLaMA 모델을 Ollama로 호출하면서 GPU 활용:
from langchain.llms import Ollama
llm = Ollama(model="llama2", options={"num_gpu":1})
RAG 체인 구성:
from langchain.chains import RetrievalQA
from langchain.vectorstores import FAISS
vectorstore = FAISS.load_local("faiss_index", embeddings)
qa = RetrievalQA.from_chain_type(
llm=llm,
chain_type="stuff",
retriever=vectorstore.as_retriever()
)
FAISS GPU 모드: FAISS를 GPU에서 실행하려면 faiss-gpu 패키지를 설치:
pip install faiss-gpu
최종 확인
- Ollama가 GPU를 인식하는지 확인 (--verbose 옵션).
- PyTorch에서 torch.cuda.is_available()가 True인지 확인.
- LangChain 임베딩 및 FAISS 검색이 GPU에서 실행되는지 확인.
PDF 문서를 불러와서 GPU 기반 RAG 검색을 수행하는 예제는 LangChain + FAISS + HuggingFace 임베딩을 활용하면 쉽게 구성할 수 있습니다. CUDA GPU를 활용하려면 임베딩과 벡터 검색을 GPU에서 실행하도록 설정해야 합니다.
pip install langchain pypdf faiss-gpu torch transformers sentence-transformers
PDF 문서 로딩 및 임베딩
from langchain.document_loaders import PyPDFLoader
from langchain.text_splitter import RecursiveCharacterTextSplitter
from langchain.embeddings import HuggingFaceEmbeddings
from langchain.vectorstores import FAISS
# PDF 문서 로드
loader = PyPDFLoader("example.pdf")
documents = loader.load()
# 텍스트 분할
text_splitter = RecursiveCharacterTextSplitter(chunk_size=1000, chunk_overlap=100)
docs = text_splitter.split_documents(documents)
# GPU 기반 임베딩 모델 설정
embeddings = HuggingFaceEmbeddings(
model_name="sentence-transformers/all-MiniLM-L6-v2",
model_kwargs={"device": "cuda"} # GPU 사용
)
# FAISS 벡터스토어 생성 (GPU 버전)
vectorstore = FAISS.from_documents(docs, embeddings)
Ollama + LLaMA 모델 연결
from langchain.llms import Ollama
from langchain.chains import RetrievalQA
# Ollama LLaMA 모델 (GPU 옵션)
llm = Ollama(model="llama2", options={"num_gpu":1})
# RAG 체인 구성
qa = RetrievalQA.from_chain_type(
llm=llm,
chain_type="stuff",
retriever=vectorstore.as_retriever()
)
# 질의 실행
query = "이 PDF 문서에서 CUDA 설치 관련 내용을 요약해줘"
print(qa.run(query))
성능 최적화 포인트
- FAISS GPU 모드: faiss-gpu 설치 시 GPU에서 벡터 검색 수행 → 대규모 문서 검색 속도 향상.
- Batch Embedding: 문서 임베딩 시 batch_size를 크게 설정하면 GPU 활용도가 높아짐.
- Mixed Precision: PyTorch AMP(torch.cuda.amp)를 활용하면 FP16 연산으로 속도 개선.
728x90
반응형
'InfraPlatform' 카테고리의 다른 글
| Authelia - 오픈 소스 기반의 강력한 인증 서버 분석 비교 (0) | 2026.04.09 |
|---|---|
| Authelia - 리버스 프록시 환경 강력한 인증(Authentication)과 인가(Authorization) 오픈소스 보안 서버 (0) | 2026.04.09 |
| Hyper-V Host → Rocky Linux 10 SSH 접속 구성 (0) | 2026.04.02 |
| Windows 11 설치 중 네트워크 드라이버 0x2000022f 오류 해결 (0) | 2026.02.04 |
| WSL2에서 VHDX 디스크 마운트하는 방법 (0) | 2026.01.20 |
| Windows 10/11 - WSL 2 업그레이드 (0) | 2026.01.19 |
| 웹서버 취약점 - SSL 보안 설정 및 점검 가이드 (0) | 2026.01.07 |