관심있는 NLP 논문을 읽어보고 간단히 정리했습니다.
혹시 부족하거나 잘못된 내용이 있다면 댓글 부탁드립니다 🙇♂️
[Gen AI at Meta]
- Llama2-7b 모델을 자체 수집된 데이터셋에 대해 instruction-tune한 Llama Guard 모델 공개
- OpenAI Moderation Evaluation, ToxicChat과 같은 기존 벤치마크에서도 우수한 성능
- Llama Guard는 multi-class classification과 generating binary decision score를 수행하는 언어 모델
1. Introduction
- LLM이 급격하게 성장함에 따라 conversational AI agent에 대한 관심도 엄청나게 커진 상황
- 언어적 능력, 추론 능력, 다양한 tool 사용 등 뛰어난 퍼포먼스를 보임
- 이와 같은 능력들을 사용할 때는 risk를 최소화하기 위해 extensive testing과 careful deployments가 필요
- 이를 위해 기존 공개된 API를 사용하는 것도 방법이 될 수 있으나 지금까지는 user로부터의 safety risk와 AI agent로부터의 것을 구분한 사례가 없고, fixed policy를 사용한다는 한계점 등이 있음
2. Realted Work
- Zero-shot and few-shot inference using LLMs
- new poicies에 대해 적용. fine-tuning과의 결과 비교
- Moderation of human-generated content
- LLM-generated content는 human-generated content moderation과 다르다
- Guarding LLM-generated content
- LLM-based 대화 시스템을 안전하게 유지하기 위해서는 model responses를 체크하는 과정이 필요하다
3. Contributions
- AI gents와 관계된 safety risk taxonomy를 도입함. 이는 잠재적인 legal & policy risk에 대한 것들을 다루고 있음
- 자체 taxonomy에 따라 labeled된 data에 대해 fine-tuned된 LLM-based input-output safeguard model, Llama Guard
- human prompts (input to the LLM) vs AI model responses (output of the LLM), 둘을 구분하는 instruction 사용
- model weight를 publicly 공개
4. The Llama Guard Safety Taxonomy & Risk Guidelines
LLM이 생성한 결과가 지니는 risk를 줄이기 위한 기준이 정해져 있는 것은 아니므로 직접 risk categories를 규정함
- Violence & Hate
- Sexual Content
- Guns & Illegal Weapons
- Regulated or Controlled Substances
- Suicide & Self Harm
- Criminal Planning
5. Building Llama Guard
5.1. Input-output Safeguarding as Instruction-following Tasks
- A set of guildelines
- 모델이 분류하고자 하는 categories는 학습 당시 정해져 있고, Llama Guard 역시 특정 가이드라인을 따르도록 학습된 상태임
- 그럼에도 불구하고 추가적인 fine-tuning 없이 novel policies에 대해 뛰어난 zero-shot & few-shot 성능을 보임
- The type of classification
- 모델이 각 태스크마다 user messages (prompts)와 agent messages (responses) 둘 중 하나로의 분류를 먼저 수행하도록 되어 있음
- 이를 위해서는 추가적인 작업은 필요 없고 단순히 instruction에 포함된 wording을 변경하면 됨
- The conversation
- 각 태스크는 user & agent 간의 대화를 포함하고 있음
- The output format
- 각 태스트에서 요구하는 output format이 정해져 있음
- 각 모델은 safe 또는 unsafe를 반환해야함
- Llama Guard는 binary & multi-label classification을 수행
5.2. Zero-shot and Few-shot Prompting
- Llama Guard를 다른 taxonomy와 guidelines에 adapt하기 위해 LLM의 zero-shot / few-shot을 적용
5.3. Data Collection
- Anthropic의 human preference data를 이용
- 첫 번째 human prompt와 이에 대한 assistant의 responding을 제외한 나머지를 drop[하여 single-turn prompt dataset을 구축
- 자체 red team을 통해 네 개의 label로 annotation: prompt-ategory, response-category, prompt-label (safe of unsafe), response-label (safe or unsafe)
5.4. Model & Training Details
- Llama2-7b 모델 사용
- user friendly 하면서도 lower potential inference and deployment cost를 위해 작은 모델을 사용
- Data Augmentation
- 주어진 예시에 위반되는 카테고리가 아니라면 임의 개수의 카테고리를 drop
- input prompt로부터 위배되는 모든 카테고리를 drop
6. Experiments
In-domain performance와 Adaptability, 두 관점에서 Llama Guard를 평가
- Evaluation Methodology in On- and Off-policy Settings: 세 개의 테크닉을 이용
- Overall binary classification for APIs that provide per-category output: positive인지 아닌지 판별
- Per-category binary classification via 1-vs-all
- Per-category binary classification via 1-vs-benign
- Public Benchmakrs
- Toxic Chat
- OpenAI Moderation Evaluation Dataset
- Baselines
- OpenAI Moderation API
- Perspective API
- Azure AI Content Safety API
- GPT-4
- Metrics
- Area Under the Precision-Recall Curve (AUPRC)
- Results
7. Insights
더 큰 사이즈의 모델을 활용할 수 있는 입장임에도 불구하고 사용성을 고려하여 가장 작은 모델(7b..?!)을 활용한 연구 결과를 제시했다는 것이 인상깊네요.
또한 다른 guildline을 단순히 zero-shot 하더라도 준수한 결과를 보여준다는 점이 놀랍습니다.
사실상 그냥 언어적인 능력이 뛰어난 것으로 이해할 수도 있을 것 같고..
다만 평가 대상이 single-turn conversation으로 제한된다는 점이 마음에 걸립니다.
학습 데이터의 확보 때문인가 싶기도 한데, 어떤 면에서 활용할 수 있을 것인지가 잘 와닿지 않는 것 같습니다.