- 지금은 Alpaca, mistral, Solar, Orion 등 다양한 오픈소스 LLM이 등장하였지만 작년 9월까지만 하더라도 라마는 sLLM 분야에서 가장 강력한 오픈소스였습니다.
- 기존 Llama1처럼 인터넷 데이터를 크롤링하여 약 2조개 정도의 토큰을 모았고, 사전 학습을 통해 Llama2가 생성이 되었습니다.
메타에서 개발한 오픈소스 LLM 모델로, 해당 모델은 7B, 13B, 70B까지 파라미터가 다양하고, Chat 모델은 특히 대화용 서비스에 최적화 되어 있습니다.
=> Llama2-Chat 버전은 RLHF방식을 사용하여 대화 애플리케이션에 최적화 될 수 있게 됩니다.
기존 Llama1보다 훈련 말뭉치를 40%늘렸고, 문맥길이 또한 2048 -> 4096으로 2배 정도 늘었습니다.
=> 가장 사실적인 출처의 내용에 대해 upsampling하여 지식을 높이고, 환상(할루시네이션)을 줄이고자 노력하였다고, 논문에 쓰여있네요
토크나이저의 경우 SentencePiece를 Base로 BPE 알고리즘을 적용하였습니다.
BPE 알고리즘은 간단하게 설명드리자면, 기계는 모르는 단어가 등장하면 그 단어를 UNK라고 표현을 하는데, 모르는 단어로 인해 문제를 푸는 것이 까다로워지게 됩니다.
그래서 하나의 단어를 여러 개의 subword로 분리하여 UNK 문제에 대해 대응이 가능한 알고리즘이라고 아시면 될 거 같네요.
해당 부분은 제가 잘못 이해할 수 있어, 혹시 잘못되었다면 알려주시면 감사하겠습니다.
1) 우선 Meta의 Llama2에 대한 권한을 부여 받기 위해 https://llama.meta.com/ 해당 사이트에 로그인 한 뒤, 권한을 요청해야 합니다.
2) 권한을 부여 받았으면, 허깅페이스에 들어가서, https://huggingface.co/meta-llama/Llama-2-7b-chat-hf 아래 요구사항 입력 후, 엑세스 권한을 부여 받게 되면 사용이 가능합니다.
-> 여기서 주의할점은 Meta에서 인증한 이메일과 허깅페이스 이메일이 같아야 허깅페이스에서 제공하는 가이드라인에 따라 모델을 실행할 수 있습니다.
3) 허깅페이스 가이드라인에 따라 모델 사용하기
-> 주의할점은 해당 모델을 사용하기 위해서는 많은 메모리가 필요하므로 기본적으로 노트북에서는 7B 모델로 진행하는 것이 좋습니다.
from transformers import AutoTokenizer, AutoModelForCausalLM, pipeline
tokenizer = AutoTokenizer.from_pretrained("meta-llama/Llama-2-7b-hf")
model = AutoModelForCausalLM.from_pretrained("meta-llama/Llama-2-7b-hf")
generate_text = pipeline(model=model, tokenizer=tokenizer,task='text-generation')
res = generate_text("질문할 내용 입력")
print(res[0]["generated_text"])