Pythia (A Suite for Analyzing Large Language Models Across Training and Scaling)

Note

  • 이후 연구와도 비교해보자
  • 23/4/3 버전

Author

  • Stella Biderman * 1 2 Hailey Schoelkopf * 1 3 Quentin Anthony 1 Herbie Bradley 1 4 Kyle O’Brien 1 Eric Hallahan 1 Mohammad Aflah Khan 5 Shivanshu Purohit 1 USVSN Sai Prashanth 1 Edward Raff 2 Aviya Skowron 1 Lintang Sutawika 1 6 Oskar van der Wal 7
    • EleutherAI

Abstract

  • Research Questions
    • How do large language models (LLMs) develop and evolve over the course of training?
    • How do these patterns change as models scale?
  • introduce Pythia, a suite of 16 LLMs all trained on public data seen in the exact same order and ranging in size from 70M to 12B parameters
  • provide public access to 154 checkpoints for each one of the 16 models
  • present several case studies including novel results in memorization, term frequency effects on few-shot performance, and reducing gender bias
  • Trained models, analysis code, training code, and training data can be found at https://github.com/EleutherAI/pythia

Introduction

자세히 보기

LLaMA (Open and Efficient Foundation Language Models)

Note

  • Meta가 쏘아올린 작은공 LLaMA
  • 꽤 잘 만든 모델들, 이전의 OPT와는 다르다, 들리는 소문으로는 실험을 꽤 많이 했을 것!
  • 공개함

Author

  • Touvron, H., Lavril, T., Izacard, G., Martinet, X., Lachaux, M. A., Lacroix, T., … & Lample, G. (2023). Llama: Open and efficient foundation language models. arXiv preprint arXiv:2302.13971.
    • Meta AI

Summary

Abastract

  • LLaMA-13B outperforms GPT-3 (175B) on most benchmarks, and LLaMA-65B is competitive with the best models, Chinchilla-70B and PaLM-540B
자세히 보기

(IA3) Few-Shot Parameter-Efficient Fine-Tuning is Better and Cheaper than In-Context Learning

Note

Author

  • Haokun Liu∗ Derek Tam∗ Mohammed Muqeeth∗ Jay Mohta Tenghao Huang Mohit Bansal Colin Raffel
    • Department of Computer Science
    • University of North Carolina at Chapel Hill {haokunl,dtredsox,muqeeth,craffel}@cs.unc.edu

Summary

  • LoRA(2021 from MS)가 요즘 핫하지만..?! IA3의 장점이 많다 (싸고, 성능이 좋다)

Abstract

자세히 보기

Alpaca (A Strong Instruction-Following Model)

Alpaca: A Strong, Replicable Instruction-Following Model

Hello, Alpaca?

최근 LLaMa이어서 아주 핫한 모델이 있습니다. 바로 Alpaca라는 모델인데요. 오늘은 Stanford에서 공개한 오픈소스인 Alpaca에 대해서 간단히 소개해보려합니다.
Alpaca는 지난번에 포스팅된 LLaMa라는 언어모델을 Stanford 박사과정 학생들이 사용자의 명령어에 언어모델이 잘 답변할 수 있도록 Instruction-following 데이터로 파인튜닝한 모델입니다.
언어모델은 기본적으로 다음 단어를 예측하는 문제를 풀기 때문에 일반적인 사용자의 명령어에 자연스럽게 답변하기가 어려운데요. 그럼에도 불구하고 ChatGPT 같은 모델이 답변을 잘하는 것은 사용자의 의도에 맞게 모델을 Instruction-following 데이터로 튜닝 (Alignment) 했기 때문이라고도 볼 수 있습니다. 결국 사용자가 언어모델을 잘 활용하기 위해서는 Instruction tuning은 꼭 거쳐야하는 관문이라고 할 수 있습니다.
LLaMa를 튜닝한 모델이니 아마 라마와 비슷한 생김새 가진 알파카라고 이름을 지은게 아닌가 싶네요🤔

image.png

Alpaca는 논문이 따로 발표되진 않았지만, 어떤 데이터로 어떻게 학습을 했는지 코드와 함께 공개가 되어있어서 현재시점에서도 LLaMa와 같이 많은 변형 및 어플리케이션이 나오고 있는데요. 지금부터 한번 알아보도록 하겠습니다.

Alpaca를 왜 만들었을까?

Stanford 학생들은 ChatGPT, Claude, Bing Chat등 다양한 모델이 이미 훌륭한 성능을 보여주고 있지만 그럼에도 불구하고 아직은 부족한 점이 있다고 지적합니다. 예를 들면, 잘못된 정보를 생성하거나, 사회적인 편견 및 불편한 말들을 생성하는 것이죠. 이러한 문제를 해결하기 위해 학계와의 협업이 필요하지만 OpenAI의 text-davinci-003과 같은 모델은 접근하기 힘든 closed-source model이기 때문에 연구에 어려움이 있다고 말합니다🥲
마침 Meta에서 LLaMa를 공개했고, 기존에 알려진 연구를 바탕으로 훨씬 저렴한 비용으로 모델을 학습할 수 있도록, 데이터 및 모델 학습 방법을 재현 가능하도록 공개한 것으로 보입니다.
결과적으로, Alpaca는 text-davinci-003(175B)보다 훨씬 작은 7B 모델이지만 유사하게 동작한다고 합니다.
Gradio 기반 데모 페이지도 공개했는데, 접속은 가끔 안되는 것 같네요🤔
image.png
Alpaca는 academic research에 한해서만 사용이 가능하고 상업적 사용은 금지하고 있는데요.
이유는 LLaMa의 라이센스가 non-commercial 라이센스라는점 그리고 OpenAI의 tet-davinci-003에서 얻어낸 데이터를 활용했다는 점등을 이유로 제시하고 있습니다.

자세히 보기

SentencePiece를 활용한 효과적인 한국어 토크나이저 만들기

소개

자연어 문장을 컴퓨터가 쉽게 이해하게 만들기 위해서는 다양한 전처리 과정을 거쳐야합니다.
그 중 하나로 문장을 토큰 단위로 쪼개서 처리하는 토크나이징 기법이 있습니다.
오늘은 SentencePiece를 활용하여 한국어 텍스트를 효과적으로 토크나이징 하는 방법을 소개합니다.

SentencePiece는 Google에서 2018년도에 공개한 오픈소스 라이브러리로, 다양한 자연어처리 태스크에서 널리 사용되고 있습니다.
최근에는 Huggingface에서 공개한 Tokenizers도 자주 사용되고 있지만 오늘은 Sentencepiece에 대한 내용을 주로 다루도록 하겠습니다.

텍스트 전처리 과정 예시

데이터 전처리 예시
텍스트 데이터를 모델이 이해하는 벡터로 바꾸려면 다양한 전처리 과정을 거치게 됩니다. 오늘 다루는 주제는 이중에서도 가장 앞단에 있는 텍스트를 토큰 단위로 쪼개는(Split) 전처리 과정을 다룹니다. 오른쪽 그림은 "히어로 무비 중 가장 어둡지만 가장 참신했다." 라는 문장을 벡터로 변환하는 과정입니다. 텍스트 문장은 word, character, 형태소, subword (char, byte)등 다양한 방법으로 쪼개서 처리될 수 있습니다. image

설치방법

  • pyenv를 통해 sentencepiece를 설치할 환경을 구성합니다
  • 작성시점 기준 비교적 최신인 3.11.x 버전을 설치해줍니다
  • 설치는 pyenv 기준으로 진행하겠습니다 (MacOS 환경입니다)
자세히 보기

Toolformer: Language Models Can Teach Themselves to Use Tools

Note

  • 미리 학습데이터를 API 기반으로 생성해놓되, 생성할때는 loss에 도움이 되는 방향으로 구성해놓고, 실제 인퍼런스할때 API콜과 관련된 토큰이 나오면 잠시 디코딩 중지 후 API콜하고 결과 받아온다음에 다시 이어서하는 방식!
  • API종류가 많진 않아서, 완전 범용적인 평가라 하기엔 애매하고 약간 무거운것 같기도하나(학습과정이), 실제 사용할땐 편할수도
  • 공개된 레포는 없지만, lucidrains가 만들기 시도 (https://github.com/lucidrains/toolformer-pytorch)
  • paper: Toolformer Language Models Can Teach Themselves to Use Tools.pdf
  • 자세한 내용은 slide 참고: Toolformer.pdf

Author

  • Timo Schick Jane Dwivedi-Yu Roberto Dessì† Roberta Raileanu Maria Lomeli Luke Zettlemoyer Nicola Cancedda Thomas Scialom
    • Meta AI Research †Universitat Pompeu Fabra

Abstract

  • They also, paradoxically, struggle with basic functionality, such as arithmetic or factual lookup, where much simpler and smaller models excel.
  • In this paper, we show that LMs can teach themselves to use external tools via simple APIs and achieve the best of both worlds.
  • We introduce Toolformer, a model trained to decide which APIs to call, when to call them, what arguments to pass, and how to best incorporate the results into future token prediction.
    • 이게 이 논문의 핵심이네, 어떤 API를 콜할지, 언제 콜할지, 어떤 args를 넣을지 어떻게 future token 예측에 쓸건지를 고르는 것!
  • This is done in a self-supervised way, requiring nothing more than a handful of demonstrations for each API
  • We incorporate a range of tools, including a calculator, a Q&A system, a search engine, a translation system, and a calendar.
  • Toolformer achieves substantially improved zero-shot performance across a variety of downstream tasks, often competitive with much larger models, without sacrificing its core language modeling abilities.

Introduction

자세히 보기

SELF-INSTRUCT Aligning Language Model with Self Generated Instructions

Note

  • code: https://github.com/yizhongw/self-instruct
  • slide: SELF-INSTRUCT.pdf
  • 여기 있는 Instruction은 NLP task쪽이라기보다 InstructGPT에서의 prompt중에 명령관련 표현을 의미하는 듯
  • Instruction뿐만 아니라 Instance도 생성하기 때문에 challenge하고, LLM에 내재되어있는 능력을 꺼내되 꺼낸 컨텐츠도 LLM안에 있는거라서, human의 개입이 잘안들어간 self-Instruct+Instance라고 할 수 있을듯
    • Because of SELF-INSTRUCT’s dependence on the inductive biases extracted from LMs
  • InstructGPT_001 정도의 모델을 휴먼리소스 적게해서 만드는 방법
  • 175개 시드 템플릿
예시1 예시2
image 두번째예시

Author

  • Yizhong Wang♣ Yeganeh Kordi♢ Swaroop Mishra♡ Alisa Liu♣ Noah A. Smith♣+ Daniel Khashabi♠ Hannaneh Hajishirzi♣+
  • ♣University of Washington ♢Tehran Polytechnic ♡Arizona State University ♠Johns Hopkins University +Allen Institute for AI

Abstract

  • Large “instruction-tuned” language models (finetuned to respond to instructions) have demonstrated a remarkable ability to generalize zero-shot to new tasks.
    • Nevertheless, they depend heavily on human-written instruction data that is limited in quantity, diversity, and creativity, therefore hindering the generality of the tuned model.
  • We introduce SELF-INSTRUCT, a framework for improving the instruction-following capabilities of pretrained language models by bootstrapping off its own generations.
  • Our pipeline
    • generates
      • instruction,
      • input, and
      • output samples
    • from a language model, then prunes them before using them to finetune the original model.
  • Applying our method to vanilla GPT3, we demonstrate a 33% absolute improvement over the original model on SUPERNATURALINSTRUCTIONS, on par with the performance of InstructGPT001
  • we curate a set of expert-written instructions for novel tasks, and show through human evaluation that tuning GPT3 with SELF-INSTRUCT outperforms using existing public instruction datasets by a large margin, leaving only a 5% absolute gap behind InstructGPT001
  • SELF-INSTRUCT provides an almost annotation-free method for aligning pretrained language models with instructions, and we release our large synthetic dataset to facilitate future studies on instruction tuning.
자세히 보기

(FLAN) Finetuned Language Models Are Zero-Shot Learners

Note

Author

  • Jason Wei∗, Maarten Bosma∗, Vincent Y. Zhao∗, Kelvin Guu∗, Adams Wei Yu, Brian Lester, Nan Du, Andrew M. Dai, and Quoc V. Le
    • Google Research

Abstract

  • explores a simple method for improving the zero-shot learning abilities of language models.
  • instruction tuning—finetuning language models on a collection of datasets described via instructions—substantially improves zero-shot performance on unseen tasks.
  • 137B parameter pretrained language model and instruction tune it on over 60 NLP datasets verbalized via natural language instruction templates. We evaluate this instruction-tuned model, which we call FLAN, on unseen task types.
    image

Introduction

자세히 보기

(T0) Multitask Prompted Training Enables Zero-Shot Task Generalization

Note

Author

  • V Sanh (Hugging Face) 저술 · 2021

Abstract

  • Q) Can zero-shot generalization instead be directly induced by explicit multitask learning?
  • we develop a system for easily mapping any natural language tasks into a human-readable prompted form.
    • convert a large set of supervised datasets, each with multiple prompts with diverse wording
    • fine-tune a pre-trained encoder-decoder model (Raffel et al., 2020; Lester et al., 2021) on this multi-task mixture covering a wide variety of tasks
    • The model attains strong zero-shot performance on several standard datasets, often outperforming models up to 16× its size.

Introduction

자세히 보기

(InstructGPT) Training language models to follow instructions with human feedback

Note

  • ChatGPT를 가기 위한 기초논문
  • paper: Training language models to follow instructions with human feedback.pdf
  • 결국 real-world의 prompts가 엄청 중요하고, 그걸 labelers를 통해 잘 demonstration을 적어놔야되고, output rankings을 통해 RM을 잘 굽고 plm obj를 특정 비율로 유지시키면서 PPO를 잘 굽는게 핵심..!

Author

Abstract

  • Making language models bigger does not inherently make them better at following a user’s intent
    • 모델 크기만 키우는게 유저의 의도를 따라가는 관점에서는 더 낫게해주진 않음
  • large language models can generate outputs that are untruthful, toxic, or simply not helpful to the user
    • 믿기 어렵거나 toxic하거나 하는 문장도 생성해내기 때문
  • 이런 모델들은 not aligned with their users!
  • show an avenue for aligning language models with user intent on a wide range of tasks by fine-tuning with human feedback.
    • 이 논문에서 LM을 유저의 의도에 맞게 파인튜닝하고 human feedback을 줘서 align했을때 효과를 보여줄 것임
  • Starting with a set of labeler-written prompts and prompts submitted through the OpenAI API, we collect a dataset of labeler demonstrations of the desired model behavior, which we use to fine-tune GPT-3 using supervised learning.
    • GPT-3 튜닝할 목적으로 labeler demonstrations 데이터셋 수집
  • collect a dataset of rankings of model outputs
    • 모델 아웃풋에 대한 랭킹으로 수집함
  • which we use to further fine-tune this supervised model using reinforcement learning from human feedback
    • RLHF로 파인튜닝하기 위해서 사용할 것
  • call the resulting models InstructGPT
    • 학습한 모델을 InstructGPT로 부를 것임
  • In human evaluations on our prompt distribution, outputs from the 1.3B parameter InstructGPT model are preferred to outputs from the 175B GPT-3, despite having 100x fewer parameters.
    • Human 평가에서 보면 1.3B InstructGPT가 175 GPT-3보다 결과가 좋음
  • InstructGPT models show improvements in truthfulness and reductions in toxic output generation while having minimal performance regressions on public NLP datasets
    • truthfulness나 toxic 관점에서도 꽤 개선이 보였음
  • RLHF기반 finetuning이 aligning LMs with human intents 관점에서 꽤 promising direction임을 보임

Introduction

자세히 보기