Python에서 Hugging Face의 transformers
라이브러리를 사용하여 LLaMA 모델을 로드하고 설정하는 과정을 포스팅합니다. LLaMA는 Meta(Facebook)에 의해 개발된 대규모 언어 모델로, 다양한 자연어 처리(NLP) 작업에 사용될 수 있습니다. 여기서는 특히 LlamaForCausalLM
모델과 LlamaTokenizer
를 사용하는 방법을 설명합니다. 코드의 각 부분에 대한 세부 설명은 다음과 같습니다:
모델 및 토크나이저 불러오기
from peft import PeftModel
from transformers import LlamaTokenizer, LlamaForCausalLM
LlamaTokenizer
: LLaMA 모델을 위한 토크나이저입니다. 텍스트를 모델이 처리할 수 있는 형태로 변환합니다.LlamaForCausalLM
: 인과 관계 언어 모델링(Causal Language Modeling)을 위한 LLaMA 모델입니다. 텍스트 생성과 같은 작업에 사용됩니다.
모델 식별자 설정
base = 'decapoda-research/llama-13b-hf'
base = 'srikanthmalla/decapoda-research-llama-13b-hf'
finetuned = 'beomi/KoAlpaca-13B-LoRA'
- 이 코드는 두 가지 모델 식별자(**
base
**와finetuned
)를 정의합니다. 이 식별자들은 Hugging Face 모델 허브에서 모델을 찾을 때 사용됩니다. 여기서 **base
**는 최종적으로 **'srikanthmalla/decapoda-research-llama-13b-hf'
**로 설정됩니다(첫 번째 할당은 두 번째 할당으로 덮어쓰여집니다).
토크나이저 초기화
tokenizer = LlamaTokenizer.from_pretrained(base)
LlamaTokenizer.from_pretrained
: 지정된 식별자를 사용하여 사전 훈련된 토크나이저를 로드합니다. 이 토크나이저는 입력 텍스트를 토큰화하는 데 사용됩니다.
토크나이저 설정
tokenizer.pad_token_id = 0
tokenizer.padding_side = "left"
pad_token_id = 0
: 패딩 토큰의 ID를 0으로 설정합니다. 패딩은 입력 시퀀스의 길이를 모델에 맞추기 위해 사용됩니다.padding_side = "left"
: 패딩을 왼쪽에 추가합니다. 일반적으로 패딩은 오른쪽에 추가되지만, 이 설정은 특정 상황에서 모델의 성능을 최적화하기 위해 사용될 수 있습니다.
모델 로드
model = LlamaForCausalLM.from_pretrained(
base,
load_in_8bit=True,
device_map="auto",
)
LlamaForCausalLM.from_pretrained
: 지정된 식별자를 사용하여 사전 훈련된 LLaMA 모델을 로드합니다. 이 모델은 텍스트 생성과 같은 작업에 사용될 수 있습니다.load_in_8bit=True
: 모델을 8비트 형식으로 로드하여 메모리 사용량을 줄입니다. 이 옵션은 모델의 크기가 큰 경우 유용할 수 있습니다.device_map="auto"
: 모델을 로드할 때 사용할 디바이스를 자동으로 결정합니다. 이는 여러 GPU 또는 기타 하드웨어 가속기를 사용할 때 모델을 효율적으로 배치하는 데 도움이 될 수 있습니다.
이 코드는 LLaMA 모델을 사용하여 자연어 처리 작업을 수행하기 위한 기본적인 설정을 보여줍니다. 모델과 토크나이저를 로드하고, 필요한 설정을 적용하여 텍스트 생성과 같은 작업을 수행할 준비를 합니다.