본문 바로가기
AI/라마 파인튜닝

(1) 큰 과정

by 잘먹는 개발자 에단 2024. 12. 5.

GPU 서버에 SSH로 연결해서 파인튜닝을 진행하는 과정은 크게 다음 과정을 따른다.

[서버접속] - [환경설정] - [데이터업로드] - [모델 훈련실행]

 

1. SSH로 GPU 서버에 접속한다. 22번 포트 사용을 디폴트로 생각한다.

ssh 사용자이름@서버주소
// ssh user@gpu-server.com

 

2. 파인튜닝에 필요한 환경을 준비한다.

 

필요한 소프트 웨어를 확인한다.

ㄴ gpu 드라이버를 설치한다. ex) nvidia 드라이버

ㄴ 딥러닝 라이브러리 설치 ( CUDA, CUDNN )

CUDA - CUDA Toolkit Archive | NVIDIA Developer

 

CUDA Toolkit Archive

Previous releases of the CUDA Toolkit, GPU Computing SDK, documentation and developer drivers can be found using the links below. Please select the release you want from the list below, and be sure to check www.nvidia.com/drivers for more recent production

developer.nvidia.com

CUDNN - cuDNN 9.6.0 Downloads | NVIDIA Developer

 

cuDNN 9.6.0 Downloads

 

developer.nvidia.com

이후에 C:\Program Files\NVIDIA GPU Computing Toolkit/CUDA/v11.2 를 찾아서 위에 bin, include, lib를 덮어쓰기

이후에 명령 프롬프트를 열어서 nvcc -V 를 실행했을 때 결과나오면 정상 설치된 것 

(copyright 뭐시기)

 

 

가상 환경을 생성한다. 프로젝트 간 의존성 충돌을 방지하기 위함

python3 -m venv myenv
source myenv/bin/activate

 

필요한 라이브러리를 설치한다.

뭐 torch나 transformers 같은

 

 

3. 데이터를 업로드한다.

 

서버에서 파인튜닝에 사용할 데이터를 업로드 한다.

 

3-1. scp로 파일 전송

ㄴ 로컬 컴퓨터에서 서버로 데이터를 전송한다.

scp 파일경로 사용자이름@서버주소:서버저장경로
// scp dataset.csv user@gpu-server.com:/home/user/

 

3-2. 데이터를 업로드한 경로를 기억해야 파인튜닝 코드에서 사용할 수 있다.

 

 

4. 파인튜닝을 진행한다. 다음은 transformers 모델을 사용한 예시

from transformers import Trainer, TrainingArguments, AutoModelForSequenceClassification, AutoTokenizer

model = AutoModelForSequenceClassification.from_pretrained("bert-base-uncased", num_labels=2)
tokenizer = AutoTokenizer.from_pretrained("bert-base-uncased")

# 데이터셋 로드
from datasets import load_dataset
dataset = load_dataset("csv", data_files="dataset.csv")

# 토크나이저 적용
def preprocess_function(examples):
    return tokenizer(examples["text"], truncation=True)
tokenized_datasets = dataset.map(preprocess_function, batched=True)

# 훈련 설정
training_args = TrainingArguments(
    output_dir="./results",
    evaluation_strategy="epoch",
    learning_rate=2e-5,
    per_device_train_batch_size=8,
    num_train_epochs=3,
    weight_decay=0.01,
)

trainer = Trainer(
    model=model,
    args=training_args,
    train_dataset=tokenized_datasets["train"],
    eval_dataset=tokenized_datasets["test"]
)

trainer.train()

'AI > 라마 파인튜닝' 카테고리의 다른 글

학습 방법론  (1) 2024.12.05
(a) 데이터셋  (0) 2024.12.05
(5) 학습진행 - 2  (0) 2024.12.05
(4) 학습진행 - 1  (0) 2024.12.05
(2) 필요한 라이브러리 세팅  (0) 2024.12.05