Ttoro_Tech

[AIVLE_3기]_16주차_Alpaca(LLM) 본문

KT AIVLE School 3기 기자단/Paper Reviews

[AIVLE_3기]_16주차_Alpaca(LLM)

Lee_Ttoro 2023. 5. 18. 09:48

https://crfm.stanford.edu/2023/03/13/alpaca.html

 

Stanford CRFM

We introduce Alpaca 7B, a model fine-tuned from the LLaMA 7B model on 52K instruction-following demonstrations. On our preliminary evaluation of single-turn instruction following, Alpaca behaves qualitatively similarly to OpenAI’s text-davinci-003, while

crfm.stanford.edu

Alpaca 7B

  • LLaMA 7B 모델을 Fine-tuning한 모델
  • 학습 방법은 Instruction tuning을 통해 학습
  • 이는 OpenAI의 text-davinci-003보다 작지만 유사한 성능과 저렴한 비용으로 생성 가능(600$ 미만)
더보기

Instruction Tuning은 모델에게 일종의 명령/지침으로 표현된 NLP Task를 수행하는 방법을 가르쳐서 자연어를 처리하고 이해하는 능력을 향상 시킬 수 있습니다. 즉, 자연어의 진정한 의도를 부분적으로 이해할 수 있음을 의미합니다.

 

참고 : Slimegate Tech Blog (https://smilegate.ai/2021/09/12/instruction-tuning-flan/)

서론

  • GPT-3.5, ChatGPT, Claude, Bing Chat과 같이 Instruction-following models이 점점 강력해 지고 있음
  • 실제로 많은 사용자들이 이러한 모델과 자주 상호 작용하고 심지어 업무에 사용하고 있음
  • 그러나 이러한 모델들은 Instruction-following이기 때문에 잘못된 정보를 생성하고, 사회적 고정관념을 전파, 유해한 언어를 생성할 수 있는 많은 결함이 있음
  • 이러한 문제를 해결하기 위해, 학계에서 일하고 있는 사람들의 참여가 필수적임
  • 하지만 OpenAI의 text-davinci-003과 같은 비공개 소스 모델에 근접한 기능을 갖춘 모델에 쉽게 접근하기 어려움

이때 Meta에서 LLaMA 7B 모델을 발표

  • Alpaca는 Meta에서 발표한 LLaMA 7B 모델을 fine-tuning한 모델임
  • Self-Instruction Style로 생성된 52K의 Instruction-following 데모로 훈련함
  • Self-Instruct 방법은 LLM이 생성한 데이터로 다시 학습하는 것(자가 학습)
  • 예상치 못한 기능과 실수를 발견하기 위해 Web Page Demo를 제공하고 있음

https://crfm.stanford.edu/alpaca/ (왜 안되니..?)

 

Alpaca

 

crfm.stanford.edu

Alpaca는 학술 연구용으로만 사용됨

상업적 사용은 금지됨 (이유)

  1. Alpaca는 비상업적 라이센스가 있는 LLaMA를 기반으로 하고 있음
  2. Instruction Data는 OpenAI의 text-davinci-003을 기반으로 하기 때문에, 사용 약관에 따라 OpenAI와 경쟁하는 모델을 개발하는 것이 금지
  3. 적절한 안전 조치를 설계하지 않았기 때문에 알파카는 일반적인 용도로 배포할 준비가 되어 있지 않음

Alpaca의 학습 방법

Instruction 기반의 학습을 위해서는 두 가지의 과제가 필요함

  1. 강력한 Pre-trained Model
  2. 고품질의 Instruction-following Data

Alpaca는 다음과 같은 방법으로 과제를 해결

  1. 최근 출시된 Meta의 새로운 LLaMA 모델을 통해 해결(Pre-trained Model)
  2. 기존에 강력한 언어 모델을 사용하여 Instruction Data를 자동으로 생성하는 것을 제안하는 Self-Instruct 논문(paper)

정리하자면, Alpaca는 OpenAI의 text-davinci-003에서 생성된 52K 명령어 Demo(Data)에 대한 LLaMA 7B 모델(Pre-trained Model)에 지도 학습을 사용하여 Fine-tuning된 언어 모델

Training Flow

Data

  • Self-Instruct 방식으로 Instruction-following Demo를 생성함
  1. 먼저 Self-Instruct Seed Set에서 사람이 직접 작성한 175개의 명령어-출력 쌍으로 시작
  2. 다음으로 text-davinci-003에 문맥의 예제로 Seed Set을 사용하여 더 많은 Instruction을 생성하는 메세지를 전송함
  3. 이러한 PipeLine을 단순화하여 자체 Instruction 방식보다 개선하였고, 비용을 크게 절감함.
  • 데이터 생성 Process를 통해 52,000개의 고유 명령어와 그에 해당하는 결과물 생성, OpenAI API를 사용하는데 500$ 미만의 비용이 듦
  • 다음과 같은 방법을 따른 Data Sets를 가지고, Hugging Face의 Traning Framework를 사용하여 Fully Sharded Data Paralled 및 Mixed precision training 기술 등을 활용하여 LLaMA 모델을 Fine-Tuning함
  • 처음 학습시, 대부분의 Cloud Computing 제공업체에서 100$미만의 비용으로 80GB의 A100 8개로 7B LLaMA 모델을 Fine-Tuning하는데 3-hour 걸림
  • 훈련 효율을 개선하면 비용을 더욱 절감 가능함

Preliminary Evaluation

  • Alpaca를 평가하기 위해, 5명의 학생 저자가 Self-Instruct 평가 set 입력에 대해 평가를 진행함
  • 평가 Set는 self-instruction 작성자가 수집한 것으로, 이메일 작성, 소셜 미디어, 생산성 도구 등 다양한 사용자 Instruction 목록을 포함함
  • text-davinci-003과 Alpaca 7B를 Blind 쌍으로 비교한 결과, 두 모델의 성능이 매우 유사함
    (내용에서는 알파카가 text-davinci-003과 비교해서 90 : 89로 승리)
  • 이러한 점은 모델의 크기가 작고 데이터에 따른 명령어의 양이 많지 않은 점을 고려할 때 매우 놀라움
  • Static한 평가 세트를 활용하는 것 외에도, Alpaca 모델을 대화형으로 테스트한 결과, Alpaca가 다양한 입력 세트에서 text-davinci-003과 유사하게 작동하는 경우 많다는 것을 발견
  • (평가에 대해서 규모와 다양성 면에서 제한적임을 인정 - 독자들이 사용하면서 직접 평가하고, Feedback을 받고자 함)

Alpaca가 잘 나타낸 예시

Alpaca의 경우 데이터 세트의 일반적인 스타일을 반영하기 때문에, 답변이 ChatGPT보다 짧음

Alpaca의 한계

Alpaca 역시 다른 언어 모델들과 동일하게 Hallucination, Toxicity, Stereotypes를 생성함

특히 Hallucination은 text-davinci-003과 비교해도 일반적인 실패로 보임

Hallucination 예시 (1)

탄자니아의 수도가 다르에스살람이라고 알려줌(1974년 도도마로 대체되기 전까지 수도였음)

Hallucination 예시 (2)

위와 같이 잘못된 정보를 전달하는 잘 작성된 결과물을 생성하는데도 사용 가능함

Alpaca에서 제공하는 데이터

가중치에 대해서는 가까운 시일내에 공개할 예정

Release Decision

  • 이러한 데이터 공개를 통해 학계에서 Instruction-following 언어 모델에 대한 과학적 연구를 수행할 수 있게함
  • 이를 통해 더 나은 과학적 지식이 등장하고, 궁극적으로 이러한 모델의 결함을 해결할 수 있는 새로운 기술을 개발할 수 있을 것이라 믿음
  • 하지만 동시에 문제도 발생할 수 있음
    • 학습 방법을 공개하면 특정 기능의 실현 가능성이 등장할 수 있음.
    • 예를들어, 더 많은 사람들(악의적인 행위자를 포함)이 의도적이든 아니든 해를 끼칠 수 있는 모델을 생성할 수 있게 됨.
  • 그러나 이러한 인식은 모델에 대한 심층적으로 안전한 연구를 수행할 수 있는 수단을 확보한 학계에서 신속한 방어 조치를 취할 수 있도록 장려할 수 있음.
  • 따라서 학회에서의 혜택이 악의적 생성자의 위험보다 크다고 생각함
  • 다음으로 훈련 방식을 공개하는 것으로, 데이터와 모델 가중치, 훈련 코드를 공개하는 것은 학습 방법의 단순성을 고려할 때 추가적인 위험을 최소화할 수 있다고 생각함
  • 동시에 이러한 데이터를 공개하면 학계에서 표준 데이터 세트, 모델 및 코드를 사용하여 제한된 비교를 수행하고 확장하면서 탐색할 수 있으므로, 구현(재현) 가능한 과학에 엄청난 이점이 존재함

Alpaca는 위험을 완화하는 전략을 마련

  • OpenAI의 사용 정책에 정의된 유해 콘텐츠를 걸러내는 OpenAI의 콘텐츠 중재 API를 사용, 콘텐츠 필터를 구현함
  • Kirchenbauer et al. 2023 에서 설명된 방법을 사용, 모든 모델 출력에 워터마크를 표시하여, 다른 사람들이 Alpaca 7B의 출력인지 여부를 감지할 수 있도록 함
  • Demo 사용에 대한 엄격한 이용 약관이 있으며, 비상업적 용도로만 사용, LLaMA 라이센스 계약을 준수하는 용도로 제한
    • 하지만 이러한 전략에도 모델 가중치를 해제하거나, 사용자가 직접 지침을 따르는 모델을 훈련하면, 우회가 가능한 것을 알 고 있음
    • 하지만 이러한 완화 조치를 도입함으로써, 모범 사례를 발전시키고 궁극적으로 기초 모델의 책임 있는 배포를 위한 커뮤니티 규범을 개발할 수 있기를 기대함

앞으로의 미래

  • 평가(Evaluation) : Alpaca를 더 엄격하게 평가해야함. 언어 모델에 대한 종합적인 평가(HELM : Holistic Evaluation of Language Models)로 시작하여 보다 생성적이며, Instruction-following 시나리오를 가질 수 있도록 발전해 나갈 것
  • 안전(Safety) : 자동 RedTeam, 감사, 적응 테스트와 같은 방법을 활용하여 Alpaca의 안전성을 개선하고자 함
  • 이해(Understanding) : 학습 방법에서 기능이 어떻게 생성되는지 더 잘 이해하고자 함
    • 기본 모델에서는 어떤 속성이 필요할지?
    • 확장하면 어떤 일이 발생하는지?
    • 어떤 Instruction Data 속성이 필요할지?
    • text-davinci-003에서 self-train을 사용하는 대신 사용할 수 있는 대안은 어떤 것인지?

정리

  • Alpaca는 Meta에서 공개한 LLaMA 7B 모델을 활용하여 만든 LLM 모델
  • Self-train과 Instruction-following을 통해 LLaMA 7B를 Fine-Tuning을 진행함
  • 7B라는 작은 모델임에도 OpenAI의 text-davinci-003 와 유사한 성능을 보여줌
  • LLaMA와 같이 오픈소스를 통해 연구진들이 Instruction following 모델에 대해 쉽게 접근가능하게 하여, 현재 발생하고 있는 Hallucination과 같은 위험을 해결하고자 함
  • 또한 학습에 사용된 데이터가 OpenAI의 text-davinci-003에서 생성한 데이터로 생성 pipeline을 간소화하면서 적은 비용으로 모델을 학습할 수 있도록 노력함
  • https://github.com/tatsu-lab/stanford_alpaca (Alpaca Github)
 

GitHub - tatsu-lab/stanford_alpaca: Code and documentation to train Stanford's Alpaca models, and generate the data.

Code and documentation to train Stanford's Alpaca models, and generate the data. - GitHub - tatsu-lab/stanford_alpaca: Code and documentation to train Stanford's Alpaca models, and generate...

github.com

 

'KT AIVLE School 3기 기자단 > Paper Reviews' 카테고리의 다른 글

[Paper Review]_LongNet  (0) 2023.07.30
[AIVLE_3기]_13주차_GPT2  (0) 2023.04.24
[AIVLE_3기]_11주차_GPT  (0) 2023.04.19
[AIVLE_3기]_11주차_BERT  (2) 2023.04.13
[AIVLE_3기]_9주차_Attention  (0) 2023.04.02