')">

인공지능 모형 만들기

인공지능 개발 환경 1

Posted by Jong-June Jeon on June 29, 2024

하드웨어 드라이버

여기는 하드웨어를 구매하고 나서 GPU 환경을 처음 구성하는 방법을 설명합니다. 우분투 22.04 를 기준으로 설명합니다.

현재 사용중인 그래픽 카드를 확인해봅니다.

lspci | grep -i nvidia

sudo lshw -numeric -C display  

그리고 그래픽 드라이버 설치를 위해서 터미널에서 사용가능한 그래픽 드라이버를 확인합니다.

 ubuntu-drivers devices

저는 다음과 같은 내용을 확인했습니다.

vendor   : NVIDIA Corporation
model    : GA102GL [RTX A6000]
manual_install: True
driver   : nvidia-driver-470-server - distro non-free
driver   : nvidia-driver-550 - third-party non-free
driver   : nvidia-driver-535-open - distro non-free
driver   : nvidia-driver-535-server-open - distro non-free
driver   : nvidia-driver-550-open - third-party non-free
driver   : nvidia-driver-535-server - distro non-free
driver   : nvidia-driver-555-open - third-party non-free
driver   : nvidia-driver-555 - third-party non-free recommended
driver   : nvidia-driver-545-open - distro non-free
driver   : nvidia-driver-470 - distro non-free
driver   : xserver-xorg-video-nouveau - distro free builtin

저는 nvidia-driver-535-server 를 설치하였습니다.

 sudo apt install nvidia-driver-535-server

다음으로 cudatool kit 을 설치합니다. nvidia 홈페이지에서 그래픽 카드에 호환되는 버전으로 설치해야 합니다. 유의할 사항은 GPU 버전으로 사용할 torch 의 버전을 먼저 확인하는 것입니다. 이를 잘 확인하지 않으면 실제로 사용할 수 있는 torch가 지원하지 못하는 cuda version 을 설치하게 되어 cuda 를 새로 설치해야 할 수도 있습니다. 다음 절차를 따릅니다.

  1. pytorch.org 홈페이지에서 INSTALL PYTORCH 를 찾습니다.
  2. PyTorch build, 운영체제 등을 확인하여 사용가능한 CUDA version 을 확인합니다.
  3. 현재 선택한 Cuda version 과 설치 Command 를 확인하고 메모합니다.
저는 RTX A-6000 으로 cuda 12.2 로 설치하였습니다.

다음으로 cudnn 을 을 설치합니다. nvidia 홈페이지에서 그래픽 카드에 호환되는 버전으로 설치하세요. 로그인이 필요합니다.

Anaconda 설치 및 가상환경 만들기

miniconda 로 설치하였습니다.

 wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
chmod +x Miniconda3-latest-Linux-x86_64.sh
./Miniconda3-latest-Linux-x86_64.sh
source ~/.bashrc
conda update conda

가상환경 설치

FinBert

먼저 finbert 라는 이름으로 가상환경을 만들고 활성화 합니다.

 # 가상환경 만들기
conda create --name finbert python=3.8 
# 가상환경 활성화
conda activate finbert

다음으로 finbert 가상환경에서 pytorch, torchvision, torchaudio 등을 설치합니다. 제가 사용하는 cuda 버전에 맞는 설치 명령어를 pytorch 홈페이지에서 찾았습니다.

(주의) 설치하기 전에 pytorch 홈페이지의 GET STARTED 에서 (START LOCALLY) 를 꼭 확인하여 환경에 맞는 커맨드로 설치하세요.

 conda install pytorch torchvision torchaudio pytorch-cuda=12.1 -c pytorch -c nvidia 

다음으로 Transformers 를 설치합니다. 2024년 6월 현재 conda 로 설치한 transformer 는 finbert 를 실행하는데 문제가 발생하여 pip 로 설치합니다.

 pip install transformers 

이제 transformers 와 finbert 패키지를 사용할 수 있습니다.

# transformer 불러오기
import torch
import torch.nn as nn
import numpy as np
from transformers import BertTokenizer, BertForSequenceClassification
# device 설정 및 finbert 불러오기
device = 'cuda' if torch.cuda.is_available() else 'cpu'
tokenizer = BertTokenizer.from_pretrained('yiyanghkust/finbert-tone')
# 텍스트를 토큰화하고 입력 텐서로 변환
text = "The company's revenue exceeded expectations this quarter."
inputs = tokenizer(text, return_tensors='pt')
# input_ids 출력
print("Input IDs:", inputs['input_ids'])
model = BertForSequenceClassification.from_pretrained('yiyanghkust/finbert-tone', 
                      output_hidden_states=True, num_labels=3).to(device)
inputs = inputs.to(device)
output = model(**inputs)
output.keys()

finbert 가 올바르게 설치되었다면 output.keys() 값이 odict_keys(['logits', 'hidden_states']) 로 출력되는 것을 확인할 수 있습니다.

참고로 몇 가지 유용한 conda 명령을 정리해봅시다.

 # 환경 삭제
conda remove --name 가상환경이름 --all 

# 가상환경 만들기
conda create envs --name 가상환경이름 python=버전

# 가상환경 확인
conda env list

vscode 사용시 가상환경을 터미널에서 지웠을 경우 인터프리터 환경에 삭제된 환경이 나타날 수 있습니다. 터미널에 가상환경은 지우고 터미널을 종료한 후 새로운 터미널에서 작업을 시작해보세요.

가상환경 관리

이미 만들어진 가상환경에 다른 패키지를 설치하고 업데이트 할 때 가상환경 패키지 의존성이 손상될 수 있습니다. 이 경우 설치한 패키지들을 다시 설치해야할 수 있어 주의가 필요합니다. 가상환경(실제로는 설치패키지 목록)을 저장하고 다시 복원하는 방법을 살펴봅니다.

# 가상환경 리스트 확인
conda env list
# finbert_evn.yml 파일로 가상환경 목록 내보내기
conda env export --name finbert > finbert_env.yml
# finbert_evn.yml 파일로 부터 새로운 가상환경인 finbert2 만들기
conda env create --file finbert_env.yml --name finbert2

conda env create --file finbert_env.yml --name finbert2 은 finbert_env.yml 가 있는 디렉토리 위치에서 실행해야 합니다. 그렇지 않은 경우에는 finbert_env.yml 의 절대(상대)경로를 올바르게 지정해해 합니다.

기존 설치 확인

설치 이후 gpu 사용가능 여부를 확인합니다. 설치된 항목의 버전을 확인하고 작동하지 않는 gpu 환경을 수정하세요.

 import torch
torch.cuda.is_available()
 

이 실행에서 False 가 나오는 경우 현재 torch 에서 gpu 를 사용할 없습니다. 원인은 먼저 gpu 가 지원되지 않는 pytorch 를 사용한 경우입니다. (맥은 2024년 6월 현재 cuda 를 지원하지 않습니다.) pytorch 홈페이제서 PyTorch INSTALL 을 찾아 버전에 맞는 설치 커맨드로 재설치합니다. 다음으로 그래픽 드라이버, cuda toolkit, cudnn 이 버전에 맞게 설치되지 않은 경우 입니다. 아래 명령으로 설치한 버전을 확인하여 수정하세요.

python version 확인

 import sys 
sys.version
 

pytorch version 확인

 import torch
torch.__version__
 

pytorch gpu 사용가능 여부 확인

 import torch
torch.version.cuda
 

cuda 및 gpu driver version 확인

 nvidia-smi 

개발 환경을 잘 설정하여 즐겁게 코딩하시길 바랍니다.