Connect with us

Llama 2: ChatGPT์— ๋„์ „ํ•˜๋Š” ์˜คํ”ˆ์†Œ์Šค ์ฑŒ๋ฆฐ์ €์— ๋Œ€ํ•œ ์‹ฌ์ธต ๋ถ„์„

์ธ๊ณต์ง€๋Šฅ

Llama 2: ChatGPT์— ๋„์ „ํ•˜๋Š” ์˜คํ”ˆ์†Œ์Šค ์ฑŒ๋ฆฐ์ €์— ๋Œ€ํ•œ ์‹ฌ์ธต ๋ถ„์„

mm
META LLAMA 2 LLM

대규모 언어 모델(LLM)들은 프로그래밍 및 창작 쓰기와 같은 전문 도메인에서 복잡한推論 작업을 수행할 수 있는 가능성을 보여주었습니다. 그러나 LLM의 세계는 단순히 플러그 앤 플레이天堂이 아닙니다. 사용성, 안전성, 계산 요구와 관련된課題가 있습니다. 이 기사에서는 Llama 2의 기능에 대해 깊이 있게 살펴보겠습니다. 또한 Hugging Face와 Google Colab의 T4 GPU를 통해 이 고성능 LLM을 설정하는 자세한 워크스루를 제공하겠습니다.

Meta와 Microsoft의 파트너십으로 개발된 이 오픈소스 대규모 언어 모델은 생성적 AI와 자연어 이해의 영역을 재정의하려고 합니다. Llama 2는 단순히 테라바이트의 데이터로 훈련된 통계 모델이 아닙니다. 그것은 철학의 구현입니다. 특히 생성적 AI 영역에서 오픈소스 접근 방식을 AI 개발의 백본으로 강조하는 철학입니다.

Llama 2와 그 대화 최적화 버전인 Llama 2-Chat은 최대 70억 개의 매개변수를 갖습니다.它们는 인간의 선호도와 밀접하게 일치하도록 설계된 미세 조정 과정으로 훈련됩니다. 이는它们를 더 안전하고 효과적으로 만듭니다. 이러한 미세 조정의 세부 수준은 일반적으로 ChatGPT 및 BARD와 같은 폐쇄형 “제품” LLM에 예약되어 있습니다. 이러한 모델은 일반적으로 공개 검토 또는 사용자 지정에 공개되지 않습니다.

Llama 2의 기술적 심층 분석

Llama 2 모델을 훈련시키기 위해 이전 버전과 마찬가지로 자동 회귀 트랜스포머 아키텍처를 사용합니다. 이는 자체 감독 데이터의 광범위한 코퍼스에서 사전 훈련됩니다. 그러나 인간의 행동과 선호도에 더 잘 맞도록 설계된 강화 학습을 인간 피드백과 함께 사용하여 추가적인 복잡성을 추가합니다. 이는 계산적으로 비용이 많이 들지만 모델의 안전성과 효과성을 개선하는 데 필수적입니다.

Meta Llama 2 ํ›ˆ๋ จ ์•„ํ‚คํ…์ฒ˜

Meta Llama 2 훈련 아키텍처

사전 훈련 및 데이터 효율성

Llama 2의 기초적인 혁신은 그들의 사전 훈련 체제에 있습니다. 모델은 Llama 1에서 힌트를 얻었지만 성능을 높이기 위해 몇 가지 중요한 개선 사항을 도입했습니다. 특히, 훈련된 토큰의 총 수에 40%의 증가와 컨텍스트 길이의 두 배 확장이 두드러집니다. 또한 모델은 추론의 확장성을 증폭시키기 위해 그룹 쿼리 어텐션(GQA)을 활용합니다.

감독된 미세 조정(SFT) 및 인간 피드백 강화 학습(RLHF)

Llama-2-Chat은 감독된 미세 조정(SFT) 및 인간 피드백 강화 학습(RLHF)을 사용하여 철저하게 미세 조정되었습니다. 이 contexto에서 SFT는 RLHF 프레임워크의 필수적인 구성 요소로서 모델의 응답을 인간의 선호도와 기대에 밀접하게 일치하도록 정련합니다.

OpenAI는 InstructGPT에서 사용된 SFT 및 RLHF 방법론을 설명하는 통찰력을 제공했습니다. LLaMa 2와 마찬가지로 InstructGPT도 이러한 고급 훈련 기술을 사용하여 모델의 성능을 최적화합니다.

아래 이미지의 1단계는 감독된 미세 조정(SFT)에 초점을 맞추고, 이후 단계는 인간 피드백 강화 학습(RLHF) 프로세스를 완료합니다.

감독된 미세 조정(SFT)은 사전 훈련된 대규모 언어 모델(LLM)을 특정 다운스트림 작업에 최적화하는 데 사용되는 전문적인 프로세스입니다. 비감독 방법과 달리 데이터 유효성을 검사할 필요가 없습니다. SFT는 사전 유효성 검사 및 레이블이 지정된 데이터 세트를 사용합니다.

일반적으로 이러한 데이터 세트를 수집하는 것은 비용이 많이 들고 시간이 많이 걸리는 작업입니다. Llama 2의 접근 방식은 품질을 양보다 우선시했습니다. 27,540개의 주석만으로 Meta의 팀은 인간 주석자와 경쟁할 수 있는 성능 수준을 달성했습니다. 이는 깨끗한 데이터 세트가 높은 품질의 결과를 유도할 수 있다는 최근의 연구와 일치합니다.

SFT 프로세스에서 사전 훈련된 LLM은 레이블이 지정된 데이터 세트에 노출되며, 여기서 감독 학습 알고리즘이 작동합니다. 모델의 내부 가중치는 작업별 손실 함수에서 계산된 기울기에 따라 조정됩니다. 이 손실 함수는 모델의 예측 출력과 실제 레이블 간의 불일치를 양적화합니다.

이 최적화는 LLM이 레이블이 지정된 데이터 세트 내에 내재된 세부한 패턴과 뉴앙스를 이해하도록 합니다. 결과적으로 모델은 일반화된 도구가 아닌 특정 작업을 높은 정확도로 수행하는 전문 자산으로 발전합니다.

인간 피드백 강화 학습은 모델의 행동을 인간의 선호도에 더 밀접하게 일치하도록 하는 다음 단계입니다.

미세 조정 단계에서는 인간 피드백 강화 학습(RLHF)을 사용하여 중요 샘플링과 근사 정책 최적화와 같은 기술을 사용하여 알고리즘 노이즈를 도입하여 지역 최적화를 피합니다. 이 반복적인 미세 조정은 모델을 개선하고 출력을 인간의 기대와 일치하도록 합니다.

Llama 2-Chat은 이진 비교 프로토콜을 사용하여 인간 선호도 데이터를 수집했습니다. 이는 더 질적 접근 방향으로의 주목할만한 경향을 나타냅니다. 이 메커니즘은 보상 모델을 정보로 제공하며, 이는 대화형 AI 모델을 미세 조정하는 데 사용됩니다.

고스트 어텐션: 멀티 턴 대화

Meta는 Llama 2의 멀티 턴 대화 성능을 향상시키기 위해 고스트 어텐션(GAtt)이라는 새로운 기능을 도입했습니다. 이는 지속적인 대화에서 컨텍스트 손실 문제를 효과적으로 해결합니다. GAtt는 초기 지침과 이후 사용자 메시지를 연결하는 앵커 역할을 하며, 강화 학습 기술과 결합하여 일관성 있고 관련性이 있으며 사용자와 일치하는 응답을 더 긴 대화에서 생성하는 데 도움이 됩니다.

Meta Git 저장소에서 download.sh 사용

  1. Meta 웹사이트 방문: Meta의 공식 Llama 2 사이트로 이동하여 ‘모델 다운로드’를 클릭합니다.
  2. 세부 정보 입력: 조건을 읽고 진행하기 위해 동의합니다.
  3. 이메일 확인: 양식을 제출하면 Meta에서 모델을 다운로드할 수 있는 Git 저장소 링크가 포함된 이메일을 받게 됩니다.
  4. download.sh 실행: Git 저장소를 복제하고 download.sh 스크립트를 실행합니다. 이 스크립트는 24시간 동안 만료되는 Meta의 URL을 사용하여 인증을 요청할 것입니다. 또한 모델의 크기(7B, 13B 또는 70B)를 선택할 수 있습니다.

Hugging Face에서

  1. 접근 승인 이메일 수신: Meta에서 접근을 얻은 후 Hugging Face로 이동합니다.
  2. 접근 요청: 원하는 모델을 선택하고 접근을 승인하도록 요청합니다.
  3. 승인: 1~2일 내에 ‘접근 승인’ 이메일을 받게 됩니다.
  4. 접근 토큰 생성: Hugging Face 계정의 ‘설정’으로 이동하여 접근 토큰을 생성합니다.

Transformers 4.31 릴리스는 LLaMa 2와 완전히 호환되며 Hugging Face 생태계 내에서 많은 도구와 기능을 제공합니다. 훈련 및 추론 스크립트에서 bitsandbytes와 함께 4비트 양자화 및 매개변수 효율적인 미세 조정(PEFT)까지 툴킷은 광범위합니다. 시작하려면 최신 Transformers 릴리스를 사용하고 있으며 Hugging Face 계정에 로그인했는지 확인하십시오.

Google Colab 환경에서 LLaMa 2 모델 추론을 실행하는 스트림 라인 가이드입니다. 여기에서는 GPU 런타임을 활용합니다:

Google Colab ๋ชจ๋ธ - T4 GPU

Google Colab 모델 – T4 GPU

 

 

 

 

 

 

패키지 설치


!pip install transformers
!huggingface-cli login

필요한 Python 라이브러리를 가져옵니다.

from transformers import AutoTokenizer
import transformers
import torch

모델 및 토크나이저 초기화

이 단계에서 사용할 Llama 2 모델을 지정합니다. 이 가이드에서는 meta-llama/Llama-2-7b-chat-hf를 사용합니다.

model = "meta-llama/Llama-2-7b-chat-hf"
tokenizer = AutoTokenizer.from_pretrained(model)

파이프라인 설정

텍스트 생성을 위한 Hugging Face 파이프라인을 사용합니다.

pipeline = transformers.pipeline(
"text-generation",
model=model,
torch_dtype=torch.float16,
device_map="auto")

텍스트 시퀸스 생성

마지막으로 파이프라인을 실행하고 입력에 따라 텍스트 시퀸스를 생성합니다:

sequences = pipeline(
'인공 지능 분야의 주요 기여자는 누구입니까?\n',
do_sample=True,
top_k=10,
num_return_sequences=1,
eos_token_id=tokenizer.eos_token_id,
max_length=200)
for seq in sequences:
print(f"결과: {seq['generated_text']}")

A16Z의 LLaMa 2 UI

Andreessen Horowitz(A16Z)는 최근 Streamlit 기반의 채팅봇 인터페이스를 출시했습니다. 이는 Llama 2를 위해 특별히 설계되었습니다. GitHub에서 호스팅되며, 이 UI는 세션 채팅 기록을 보존하고 여러 Llama 2 API 엔드포인트를 선택할 수 있는 유연성을 제공합니다. 이러한 엔드포인트는 Replicate에서 호스팅됩니다. 사용자 중심의 설계는 개발자와 최종 사용자를 위해 Llama 2와 상호 작용을 단순화하는 것을 목표로 합니다. 관심이 있는 경우 Llama2.ai에서 라이브 데모를 사용할 수 있습니다.

Llama 2: GPT 모델과 이전 버전 Llama 1과 무엇이 다르나요?

규모의 다양성

다른 언어 모델과 달리 Llama 2는 다양한 매개변수 수를 갖는 모델을 제공합니다. 모델은 7억에서 70억 매개변수까지 규모를 조정할 수 있습니다. 이는 다양한 계산 요구 사항에 맞게 구성할 수 있는 다양한 구성 옵션을 제공합니다.

향상된 컨텍스트 길이

Llama 2는 Llama 1보다 컨텍스트 길이가 4K 토큰 더 길어졌습니다. 이는 더 복잡하고 광범위한 내용을 이해하고 생성할 수 있는 능력을 향상시킵니다.

그룹 쿼리 어텐션(GQA)

아키텍처는 어텐션 계산을 가속화하기 위해 이전 토큰 쌍을 캐싱하는 GQA 개념을 사용합니다. 이는 추론의 확장성을 개선하여 접근성을 향상시킵니다.

성능 벤치마크

Llama 2-Chat ๋ชจ๋ธ ๋ฐ ๊ธฐํƒ€ ๊ฒฝ์Ÿ ๋ชจ๋ธ์˜ ์„ฑ๋Šฅ ๋น„๊ต ๋ถ„์„

Llama 2-Chat 모델 및 기타 경쟁 모델의 성능 비교 분석

Llama 2는 새로운 성능 표준을 설정했습니다. 그것은 이전 버전인 Llama 1을 능가하고 Falcon 및 GPT-3.5와 같은 다른 모델과 경쟁합니다.

Llama 2-Chat의 가장 큰 모델인 70B는 36%의 경우에서 ChatGPT를 능가하고, 31.5%의 경우에서 성능을 일치시킵니다. 출처: 논문

오픈소스: 커뮤니티의 힘

Meta와 Microsoft는 Llama 2를 단순한 제품 이상으로 만들고자 합니다. 그들은 이를 커뮤니티 주도 도구로 만들고자 합니다. Llama 2는 연구 및 비상업적 목적으로 무료로 접근할 수 있습니다. 그들은 AI 능력을 민주화하여 스타트업, 연구자, 비즈니스에 접근할 수 있도록 하려는 것입니다. 오픈소스 패러다임은 모델의 문제를 공동으로 해결하고, 개발자와 AI 윤리학자가 스트레스 테스트를 수행하고, 취약성을 식별하며, 해결책을 가속화된 속도로 제공할 수 있도록 합니다.

Llama 2의 라이선스 조건은 일반적으로 허용적이지만, 예외가 있습니다. 7억 명 이상의 월간 사용자를 보유한 대규모 기업인 Google와 같은 경우에는 明示的な 승인을 받아야 합니다. 또한 라이선스는 LLaMa 2를 다른 언어 모델을 개선하는 데 사용하는 것을 금지합니다.

현재 Llama 2의課題

  1. 데이터 일반화: Llama 2와 GPT-4는 때때로 다양한 작업에서 일관된 높은 성능을 보여주지 못합니다. 데이터의 품질과 다양성은 볼륨만큼 중요합니다.
  2. 모델 투명성: 이전에 AI가 잘못된 출력을 생성한 경우가 있으므로 이러한 복잡한 모델의 의사 결정 논리를 탐구하는 것이 중요합니다.

Code Llama – Meta의 최신 출시

Meta는 최근 Code Llama를 발표했습니다. 이는 프로그래밍에 특화된 대규모 언어 모델로, 매개변수 크기는 7B에서 34B까지입니다. ChatGPT 코드 인터프리터와 유사하게 Code Llama는 개발자 워크플로를 간소화하고 프로그래밍을 더 접근하기 쉽게 만들 수 있습니다. 다양한 프로그래밍 언어를 지원하며 Python과 같은 특정 언어에 특화된 버전도 있습니다. 모델은 다양한 지연 요구 사항을 충족하기 위해 다양한 성능 수준을 제공합니다. 오픈 라이선스를 통해 커뮤니티의 입력을 받아 지속적인 개선을 유도합니다.

https://about.fb.com/news/2023/08/code-llama-ai-for-coding/

결론

이 기사는 Google Colab에서 Hugging Face 지원을 통해 Llama 2 모델을 설정하는 방법을 안내했습니다. Llama 2의 성능은 자동 회귀 트랜스포머 아키텍처에서 강화 학습을 인간 피드백과 함께 사용하는 등 다양한 고급 기술에 의해 구동됩니다. 최대 70억 개의 매개변수와 고스트 어텐션과 같은 기능을 갖춘 이 모델은 특정 영역에서 현재 산업 표준을 능가하며, 오픈소스 특성으로 인해 자연어 이해와 생성적 AI의 새로운 시대를 열어갑니다.

์ง€๋‚œ 5๋…„ ๋™์•ˆ็งใฏ Machine Learning๊ณผ Deep Learning์˜ ๋งค๋ ฅ์ ์ธ ์„ธ๊ณ„์— ๋ชฐ๋‘ํ•ด ์™”์Šต๋‹ˆ๋‹ค.็งใฎๆƒ…็†ฑใจๅฐ‚้–€็Ÿฅ่ญ˜ใฏใ€AI/ML์— ์ค‘์ ์„ ๋‘” 50๊ฐœ ์ด์ƒ์˜ ๋‹ค์–‘ํ•œ ์†Œํ”„ํŠธ์›จ์–ด ์—”์ง€๋‹ˆ์–ด๋ง ํ”„๋กœ์ ํŠธ์— ๊ธฐ์—ฌํ–ˆ์Šต๋‹ˆ๋‹ค.็งใฎ็ถ™็ถš็š„ใช ํ˜ธ๊ธฐ์‹ฌ์€ ๋˜ํ•œ ์ž์—ฐ์–ด ์ฒ˜๋ฆฌ ๋ถ„์•ผ๋กœ็งใฎ ๊ด€์‹ฌ์„ ๋Œ์—ˆ๊ณ , ๋” ๊นŠ์ด ํƒ๊ตฌํ•˜๊ณ  ์‹ถ์€ ๋ถ„์•ผ์ž…๋‹ˆ๋‹ค.