Llama3.1 모델을 처음 설치할때 Windows 에 설치 했다가 에러가 하도 많아서 그냥 Ubuntu 에서 실행하기로 했다.
Ubuntu 설치는 이전에 올린 글 참조 24.04 버전 설치 https://bob-data.tistory.com/42
[Linux] Windows 11 에서 WSL 로 Ubuntu 설치
WSL (Windows subsystem for Linux) 설치WSL 은 Windows 에서 Linux 배포판을 실행할 수 있는 기능이다. WSL 2 설치Power Shell을 관리자 권한으로 실행명령 프롬프트에 wsl --install 명령을 실행. wsl -l -0 를 사용해
bob-data.tistory.com
Ubuntu 설치가 완료 됐다면 Ubuntu cmd 창을 킨다. Ubuntu 를 사용할때 root 권한을 주고 사용했다. 그런데 이렇게 하면 충돌 날 위험이 있다고 한다. 그래도 난 그냥 그렇게 했다. 편해서 아무튼 sudo su root 명령어롤 주고 시작함.
Conda 설치 (패키지 관리를 위한 가상환경 구축)
아래 명령어를 통해 미니콘다를 설치 해준다. 설치 완료 후 터미널 재시작 해줌.
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.sh
Conda Environment 생성
python 3.10 으로 생성. 생성한 environment 를 실행한다.
conda create --name llama-env python=3.10
conda activate llama-env
Pytorch 설치
PyTorch는 신경망 구축에 사용되는 소프트웨어 기반 오픈 소스 딥 러닝 프레임워크로, Torch의 머신 러닝 라이브러리와 Python 기반의 고급 API를 결합한 것입니다. 유연성과 사용 편의성 등의 이점 덕분에 학계 및 연구 커뮤니티를 위한 최고의 머신 러닝 프레임워크로 자리잡았습니다. 라고 한다. [https://www.ibm.com/kr-ko/topics/pytorch]
# Install stable release of PyTorch
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
llama-recipes 설치
pip install llama-recipes
설치 후 아래 같은 코드로 llama 모델을 사용 할 수 있다.
from llama_recipes import TextGenerator
# 텍스트 생성기 초기화
generator = TextGenerator(model_name="llama")
# 텍스트 생성
prompt = "Once upon a time"
generated_text = generator.generate(prompt)
print(generated_text)
허깅 페이스 (Hugging face) 를 통한 모델 다운로드
허깅 페이스에서 모델을 다운 받아서 사용할 거다. 우선 허깅 페이스에는 오픈소스를 가지고 사람들이 학습 시켜 놓은모델이 많다. 그리고 데이터셋도 많기 때문에 원하는 모델을 골라서 사용하면 될 것 같다.
허깅 페이스 가입 및 토큰 발급 받기
여기서 받은 토큰은 허깅 페이스에서 모델을 다운 받을때 계속 사용하게 된다. 꼭 보관을 잘하도록. setting 에 보면 Access Token 에서 발급 받을 수 있다. Repositories 를 다 체크해주고 나머지 필요한 부분이 있다면 잘 확인해서 체크 하도록 하자. (그리고 가입은 바로 승인이 나지 않고 몇분 걸릴 수도 있음)
모델 설치
원하는 Model 을 보면 Files 부분에 있는 내용이 우리가 필요한 모델 데이터들이다. 이 데이터를 받기 위해서 git clone 을 사용해 다운 받을 거다.
SSH 키 생성 및 GitHub에 추가하기
SSH 키 를 연결하지 않으면 오류가 생긴다.
Warning: Permanently added 'github.com' (ED25519) to the list of known hosts. git@github.com: Permission denied (publickey). fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists.
이런 오류가 생기는데, 그냥 SSH 생성하고 GitHub에 추가해주면 된다. 이메일은 본인 GitHub 계정으로 입력.
ssh-keygen -t ed25519 -C "your_email@example.com"
* 파일 저장 위치와 암호를 묻는데, 그냥 기본 위치에 암호는 빈칸으로 두고 넘어가도 된다.
SSH 에이전트 시작 및 SSH 키 추가
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519
SSH 키 복사
cat ~/.ssh/id_ed25519.pub
GitHub 에 SSH 키 추가
- GitHub 에 로그인 후 Settings 로 이동.
- SSH and GPG keys 를 선택한다.
- New SSH key 생성해서 복사한 SSH 키를 붙여 넣은다.
AI Model Git clone (Hugging face)
허깅 페이스에서 git clone 을 복사해서 실행한다. 여기에 가입할때 생성했던 username 과 token 을 입력한다.
Model 실행 (python)
아래와 같이 transformers 를 사용해서 실행할 수 있다. Llama3.1 8B 를 사용하고 싶었는데 GPU 가 부족하다는 에러가 발생해 Gemma-2b 를 사용했다
from transformers import AutoTokenizer, AutoModelForCausalLM
# 모델과 토크나이저 로드
model_path = "/home/llama/fine_tunning/gemma-2b" # 실제 모델 파일 경로로 대체
tokenizer = AutoTokenizer.from_pretrained(model_path, use_fast=False)
model = AutoModelForCausalLM.from_pretrained(model_path)
# 프롬프트 설정
prompt = """
You are an IT expert with comprehensive knowledge about IT. I am a junior in the field. Answer my questions concisely and with 100% accuracy.
Junior: Can you explain what cloud computing is?
Expert:
"""
# 입력 토큰 생성
inputs = tokenizer(prompt, return_tensors="pt")
# 모델을 통해 입력 토큰 전달하여 출력 생성
outputs = model.generate(inputs["input_ids"], max_length=150)
# 출력 토큰을 문자열로 변환
result = tokenizer.decode(outputs[0], skip_special_tokens=True)
# 결과 출력
print(result)
결과물
max_length 를 짧게 줘서 짤렸고, 글을 입력할때 끊기지 않도록 설정해줘야 할 것 같다. 다음에는 fine tuning 을 통해 간단한 학습을 진행해보고 학습 결과를 확인해 보겠다.
'인공지능 [AI]' 카테고리의 다른 글
[Fine tuning - LoRA] 10분만에 로컬에서 파인튜닝하기 (Ubuntu) (2) | 2024.08.05 |
---|---|
[Llama3.1] Ollama 로 Fine tuning 하기 (0) | 2024.08.02 |