RLHF

언어 모델은 인간의 입력 프롬프트에서 다양하고 매력적인 텍스트를 생성함으로써 지난 몇 년 동안 인상적인 기능을 보여주었습니다. 그러나 “좋은” 텍스트를 만드는 것은 본질적으로 주관적이고 상황에 따라 다르기 때문에 정의하기 어렵습니다. 창의성을 원하는 스토리 작성, 진실해야 하는 유익한 텍스트 또는 실행 가능한 코드 스니펫과 같은 많은 응용 프로그램이 있습니다.

이러한 속성을 캡처하기 위해 손실 함수를 작성하는 것은 다루기 어려워 보이며 대부분의 언어 모델은 여전히 ​​간단한 다음 토큰 예측 손실(예: 교차 엔트로피)로 훈련됩니다. 손실 자체의 단점을 보완하기 위해 사람들은 BLEU 또는 ROUGE 와 같은 인간의 선호도를 더 잘 포착하도록 설계된 메트릭을 정의합니다.. 성능을 측정할 때 손실 함수 자체보다 더 적합하지만 이 메트릭은 생성된 텍스트를 간단한 규칙이 있는 참조와 단순히 비교하기 때문에 제한적입니다. 생성된 텍스트에 대한 인간의 피드백을 성능 측정으로 사용하거나 한 단계 더 나아가 해당 피드백을 손실로 사용하여 모델을 최적화한다면 좋지 않을까요? 이것이 RLHF(Reinforcement Learning from Human Feedback)의 아이디어입니다. 강화 학습의 방법을 사용하여 사람의 피드백으로 언어 모델을 직접 최적화합니다. RLHF는 언어 모델이 텍스트 데이터의 일반 코퍼스에서 훈련된 모델을 복잡한 인간 가치의 모델에 정렬하기 시작할 수 있도록 했습니다.

RLHF의 가장 최근 성공은 ChatGPT 에서의 사용이었습니다 . ChatGPT의 놀라운 능력을 감안할 때 우리는 RLHF에 대해 설명해 달라고 요청했습니다.

chatgpt

놀랍게도 잘 작동하지만 모든 것을 다루지는 않습니다. 그 부족함을 채워드리겠습니다!

RLHF: 단계별로 살펴보겠습니다.

인간 피드백을 통한 강화 학습(인간 선호도에서 RL이라고도 함)은 다중 모델 교육 프로세스와 다양한 배포 단계를 포함하기 때문에 어려운 개념입니다. 이 블로그 게시물에서는 교육 프로세스를 세 가지 핵심 단계로 분류합니다.

  1. 언어 모델(LM) 사전 교육,
  2. 데이터 수집 및 보상 모델 교육
  3. 강화 학습으로 LM을 미세 조정합니다.

먼저 언어 모델이 어떻게 사전 훈련되는지 살펴보겠습니다.

언어 모델 사전 학습

출발점으로 RLHF는 고전적인 사전 훈련 목표로 이미 사전 훈련된 언어 모델을 사용합니다( 자세한 내용은 이 블로그 게시물 참조). OpenAI는 최초의 인기 있는 RLHF 모델인 InstructGPT 에 더 작은 버전의 GPT-3을 사용했습니다 . Anthropic은 이 작업을 위해 훈련된 1000만에서 520억 매개변수의 변환기 모델을 사용했습니다. DeepMind는 2800억 개의 매개변수 모델인 Gopher를 사용했습니다 .

이 초기 모델은 추가 텍스트나 조건에서 미세 조정할 수도 있지만 반드시 그럴 필요는 없습니다. 예를 들어, OpenAI는 “선호되는” 인간 생성 텍스트를 미세 조정하고 Anthropic은 “유용하고 정직하며 무해한” 기준에 대한 컨텍스트 단서에서 원래 LM을 추출하여 RLHF에 대한 초기 LM을 생성했습니다. 이것들은 내가 고가의 증강 데이터 라고 부르는 것의 소스이지만 RLHF를 이해하는 데 필요한 기술은 아닙니다.

일반적으로 RLHF의 출발점이 “어떤 모델”인지에 대한 명확한 답은 없습니다. 이것은 이 블로그의 공통 주제가 될 것입니다. RLHF 교육 옵션의 설계 공간은 철저히 탐구되지 않습니다.

다음으로 언어 모델을 사용하여 인간의 선호도가 시스템에 통합되는 방식인 보상 모델을 교육하기 위해 데이터를 생성해야 합니다 .

pretraining

보상 모델 교육

인간의 선호도로 보정된 보상 모델(RM, 선호도 모델이라고도 함)을 생성하는 것은 RLHF에서 상대적으로 새로운 연구가 시작되는 곳입니다. 근본적인 목표는 일련의 텍스트를 받아들이고 인간의 선호도를 수치적으로 나타내는 스칼라 보상을 반환하는 모델이나 시스템을 얻는 것입니다. 시스템은 엔드-투-엔드 LM이거나 보상을 출력하는 모듈식 시스템일 수 있습니다(예: 모델이 출력에 순위를 매기고 순위가 보상으로 변환됨). 스칼라 보상 인 출력은 RLHF 프로세스에서 나중에 원활하게 통합되는 기존 RL 알고리즘에 매우 중요합니다.

보상 모델링을 위한 이러한 LM은 또 다른 미세 조정된 LM이거나 기본 설정 데이터에 대해 처음부터 훈련된 LM일 수 있습니다. 예를 들어, Anthropic은 미세 조정보다 샘플이 더 효율적이라는 것을 알았기 때문에 사전 훈련(선호 모델 사전 훈련, PMP) 후 이러한 모델을 초기화하기 위해 미세 조정의 특수한 방법을 사용하지만 현재 보상 모델링의 변형이 최선의 선택으로 간주되지 않습니다.

RM에 대한 프롬프트 생성 쌍의 교육 데이터 세트는 사전 정의된 데이터 세트에서 프롬프트 세트를 샘플링하여 생성됩니다(주로 Amazon Mechanical Turk의 채팅 도구로 생성된 Anthropic의 데이터는 허브에서 사용할 수 있으며 OpenAI는 사용자가 GPT API에 제출한 프롬프트를 사용함 ) 프롬프트는 초기 언어 모델을 통해 전달되어 새 텍스트를 생성합니다.

휴먼 어노테이터는 LM에서 생성된 텍스트 출력의 순위를 매기는 데 사용됩니다. 처음에는 인간이 보상 모델을 생성하기 위해 각 텍스트에 스칼라 점수를 직접 적용해야 한다고 생각할 수 있지만 실제로는 그렇게 하기가 어렵습니다. 인간의 가치관이 다르기 때문에 이러한 점수가 보정되지 않고 시끄럽게 됩니다. 대신 순위는 여러 모델의 출력을 비교하고 훨씬 더 정규화된 데이터 세트를 만드는 데 사용됩니다.

텍스트의 순위를 매기는 방법에는 여러 가지가 있습니다. 성공한 한 가지 방법은 사용자가 동일한 프롬프트에서 조건이 지정된 두 언어 모델에서 생성된 텍스트를 비교하도록 하는 것입니다. 일대일 매치업에서 모델 출력을 비교함으로써 Elo 시스템을 사용하여 서로 상대적인 모델 및 출력의 순위를 생성할 수 있습니다. 이러한 다양한 순위 지정 방법은 훈련을 위한 스칼라 보상 신호로 정규화됩니다.

이 프로세스의 흥미로운 아티팩트는 현재까지 성공적인 RLHF 시스템이 텍스트 생성과 관련된 다양한 크기의 보상 언어 모델을 사용했다는 것입니다(예: OpenAI 175B LM, 6B 보상 모델, Anthropic은 LM을 사용하고 10B에서 52B까지의 보상 모델, DeepMind는 LM과 보상 모두에 대해 70B Chinchilla 모델을 사용합니다). 이러한 기본 설정 모델은 해당 텍스트를 생성하기 위해 모델이 필요로 하는 것처럼 그들에게 주어진 텍스트를 이해하는 유사한 능력을 가져야 한다는 것이 직관일 것입니다.

RLHF 시스템의 이 시점에서 우리는 텍스트를 생성하는 데 사용할 수 있는 초기 언어 모델과 모든 텍스트를 받아들이고 인간이 그것을 얼마나 잘 인식하는지에 대한 점수를 할당하는 선호도 모델을 가지고 있습니다. 다음으로 강화 학습(RL)을 사용하여 보상 모델과 관련하여 원래 언어 모델을 최적화합니다.

reward model

RL을 사용한 미세 조정

강화 학습으로 언어 모델을 교육하는 것은 오랫동안 사람들이 엔지니어링 및 알고리즘상의 이유로 불가능하다고 생각했을 것입니다. 여러 조직이 작업에 착수한 것으로 보이는 것은 정책 그라데이션 RL 알고리즘인 PPO(Proximal Policy Optimization)를 사용하여 초기 LM 사본 의 일부 또는 모든 매개변수를 미세 조정하는 것입니다 . 전체 10B 또는 100B+ 매개변수 모델을 미세 조정하는 것은 엄청나게 비용이 많이 들기 때문에 LM의 매개변수는 동결됩니다(자세한 내용은 LM에 대한 LoRA (Low-Rank Adaptation) 또는 DeepMind의 Sparrow LM 참조). PPO는 비교적 오랜 시간 동안 사용되어 왔으며 수많은 가이드가 있습니다 .작동 방식에 대해. 이 방법의 상대적 성숙도는 RLHF에 대한 분산 훈련의 새로운 적용으로 확장하는 데 유리한 선택이 되었습니다. RLHF를 수행하기 위한 많은 핵심 RL 개선 사항은 친숙한 알고리즘으로 이러한 대규모 모델을 업데이트하는 방법을 알아내고 있는 것으로 나타났습니다(자세한 내용은 나중에 설명).

먼저 이 미세 조정 작업을 RL 문제로 공식화해 보겠습니다. 첫째, 정책은 프롬프트를 받아 일련의 텍스트(또는 텍스트에 대한 확률 분포)를 반환하는 언어 모델입니다. 이 정책의 작업 공간 은 언어 모델의 어휘에 해당하는 모든 토큰(종종 50k 토큰 정도)이고 관찰 공간 은 가능한 입력 토큰 시퀀스의 분포이며, 이는 이전 RL 사용을 고려할 때 상당히 큽니다(차원은 대략 어휘의 크기 → 입력 토큰 시퀀스의 길이입니다). 보상 함수는 선호도 모델과 정책 전환에 대한 제약 조건의 조합입니다.

보상 기능은 시스템이 우리가 논의한 모든 모델을 하나의 RLHF 프로세스로 결합하는 곳입니다. 데이터 세트에서 프롬프트 x 가 주어지면 미세 조정된 정책의 현재 반복에 의해 텍스트 y가 생성됩니다. 원래 프롬프트와 연결된 해당 텍스트는 “preferability”의 스칼라 개념을 반환하는 기본 설정 모델로 전달됩니다.아르 자형�아르 자형θ.. 또한 RL 정책의 토큰별 확률 분포를 초기 모델의 확률 분포와 비교하여 차이에 대한 페널티를 계산합니다. OpenAI, Anthropic 및 DeepMind의 여러 논문에서 이 페널티는 토큰에 대한 이러한 분배 시퀀스 사이의 Kullback–Leibler (KL) 다이버전스의 확장된 버전으로 설계되었습니다.아르 자형KL아르 자형KL.. KL 발산 항은 RL 정책이 각 훈련 배치가 있는 초기 사전 훈련된 모델에서 크게 벗어나지 않도록 패널티를 줍니다. 이는 모델이 합리적으로 일관된 텍스트 스니펫을 출력하는지 확인하는 데 유용할 수 있습니다. 이 페널티가 없으면 최적화는 횡설수설한 텍스트를 생성하기 시작할 수 있지만 높은 보상을 제공하기 위해 보상 모델을 속일 수 있습니다. 실제로 KL 발산은 두 분포의 샘플링을 통해 근사화됩니다( 여기에서 John Schulman이 설명함 ). RL 업데이트 규칙으로 전송되는 최종 보상은아르 자형=아르 자형�-�아르 자형KL아르 자형=아르 자형θ.-λr _KL..

일부 RLHF 시스템은 보상 기능에 추가 조건을 추가했습니다. 예를 들어, OpenAI는 PPO에 대한 업데이트 규칙에 추가 사전 훈련 그래디언트(인간 주석 세트에서)를 혼합하여 InstructGPT에서 성공적으로 실험했습니다. RLHF가 더 조사됨에 따라 이 보상 함수의 공식이 계속 발전할 것입니다.

마지막으로 업데이트 규칙은 현재 데이터 배치에서 보상 지표를 최대화하는 PPO의 매개변수 업데이트입니다(PPO는 정책에 따라 매개변수가 프롬프트 생성 쌍의 현재 배치로만 업데이트됨을 의미합니다). PPO는 업데이트 단계가 학습 프로세스를 불안정하게 만들지 않도록 그라디언트에 대한 제약 조건을 사용하는 신뢰 영역 최적화 알고리즘입니다. DeepMind는 Gopher에 대해 유사한 보상 설정을 사용했지만 기울기를 최적화하기 위해 A2C( 동기적 이점 행위자 비평가 )를 사용했습니다. 이는 눈에 띄게 다르지만 외부에서 재생산되지 않았습니다.

rlhf

기술 세부 사항 참고: 위의 다이어그램은 두 모델이 동일한 프롬프트에 대해 서로 다른 응답을 생성하는 것처럼 보이지만 실제로 발생하는 것은 RL 정책이 텍스트를 생성하고 해당 텍스트가 초기 모델에 공급되어 KL 패널티에 대한 상대적 확률을 생성한다는 것입니다 .

선택적으로 RLHF는 보상 모델과 정책을 함께 반복적으로 업데이트하여 이 시점부터 계속할 수 있습니다. RL 정책이 업데이트됨에 따라 사용자는 모델의 이전 버전과 비교하여 이러한 출력의 순위를 계속 지정할 수 있습니다. 이러한 유형의 데이터를 수집하는 데 필요한 배포 모드는 참여 사용자 기반에 대한 액세스 권한이 있는 대화 에이전트에만 작동하기 때문에 대부분의 문서에서는 아직 이 작업 구현에 대해 논의하지 않았습니다. Anthropic은 이 옵션을 Iterated Online RLHF (원본 문서 참조 )로 논의하며 정책의 반복이 모델 전체의 ELO 순위 시스템에 포함됩니다. 이것은 복잡하고 공개적인 연구 질문을 나타내는 진화하는 정책 및 보상 모델의 복잡한 역학을 소개합니다.

RLHF용 오픈 소스 도구

LM에서 RLHF를 수행하기 위해 공개된 첫 번째 코드는 2019년 TensorFlow의 OpenAI에서 나왔습니다.

오늘날 PyTorch에는 이미 RLHF에 대한 몇 가지 활성 리포지토리가 있습니다. 기본 리포지토리는 TRL (Transformers Reinforcement Learning ), TRL의 포크로 시작된 TRLX 및 언어 모델용 강화 학습( RL4LMs )입니다.

TRL은 PPO를 사용하여 Hugging Face 생태계에서 사전 훈련된 LM을 미세 조정하도록 설계되었습니다. TRLX는 온라인 및 오프라인 교육을 위한 더 큰 모델을 처리하기 위해 CarperAI 에서 구축한 TRL의 확장된 포크입니다 . 현재 TRLX에는 LLM 배포에 필요한 규모(예: 330억 개의 매개변수)에서 PPO 및 암시적 언어 Q-Learning ILQL을 사용하여 프로덕션 준비가 된 RLHF가 가능한 API가 있습니다. 향후 버전의 TRLX는 최대 200B 매개변수의 언어 모델을 허용할 것입니다. 따라서 TRLX와의 인터페이스는 이 규모의 경험이 있는 기계 학습 엔지니어에게 최적화되어 있습니다.

RL4LM은 다양한 RL 알고리즘(PPO, NLPO, A2C 및 TRPO), 보상 기능 및 메트릭을 사용하여 LLM을 미세 조정하고 평가하기 위한 빌딩 블록을 제공합니다. 또한 라이브러리는 쉽게 사용자 정의할 수 있으므로 임의의 사용자 지정 보상 기능에서 인코더-디코더 또는 인코더 변환기 기반 LM을 교육할 수 있습니다. 특히, 데이터 예산 비교(전문가 데모 대 보상 모델링), 보상 해킹 및 훈련 불안정성 처리 등에 대한 몇 가지 실용적인 통찰력을 강조하는 최대 2000개의 실험에 이르는 최근 작업에서 광범위한 작업에 대해 잘 테스트되고 벤치마킹되었습니다. RL4LM의 현재 계획에는 더 큰 모델과 새로운 RL 알고리즘의 분산 훈련이 포함 됩니다 .

TRLX와 RL4LM 모두 추가 개발이 진행 중이므로 곧 더 많은 기능이 추가될 예정입니다.

허브에서 사용할 수 있는 Anthropic에서 만든 대규모 데이터 세트 가 있습니다.

RLHF의 다음 단계는 무엇입니까?

이러한 기술은 매우 유망하고 영향력이 있으며 AI에서 가장 큰 연구실의 관심을 끌었지만 여전히 분명한 한계가 있습니다. 모델은 더 나은 반면 여전히 유해하거나 사실적으로 부정확한 텍스트를 불확실성 없이 출력할 수 있습니다. 이 불완전함은 RLHF에 대한 장기적인 도전과 동기를 나타냅니다. 본질적으로 인간 문제 영역에서 작동한다는 것은 모델이 완전 하다고 표시될 수 있는 명확한 최종 선이 없다는 것을 의미합니다 .

RLHF를 사용하여 시스템을 배포할 때 인간의 선호도 데이터를 수집하는 것은 교육 루프 외부의 다른 인간 작업자를 직접 통합하기 때문에 비용이 많이 듭니다. RLHF 성능은 InstructGPT의 초기 LM 미세 조정과 같은 인간이 생성한 텍스트와 모델 출력 간의 인간 선호도 레이블의 두 가지 종류를 취하는 인간 주석의 품질만큼만 우수합니다.

특정 프롬프트에 응답하는 잘 작성된 사람의 텍스트를 생성하는 것은 제품 사용자나 크라우드 소싱에 의존할 수 있는 것이 아니라 파트 타임 직원을 고용해야 하는 경우가 많기 때문에 비용이 많이 듭니다. 고맙게도 대부분의 RLHF 애플리케이션(~50k 레이블이 지정된 기본 설정 샘플)에 대한 보상 모델을 교육하는 데 사용되는 데이터 규모는 그렇게 비싸지 않습니다. 그러나 여전히 학술 연구실이 감당할 수 있는 것보다 더 높은 비용입니다. 현재 일반 언어 모델( Anthropic ) 의 RLHF에 대한 하나의 대규모 데이터 세트 와 두 개의 소규모 작업별 데이터 세트(예: OpenAI 의 요약 데이터 )만 존재합니다. RLHF에 대한 데이터의 두 번째 문제는 사람 어노테이터가 종종 동의하지 않아 Ground Truth가 없는 교육 데이터에 상당한 잠재적 분산을 추가할 수 있다는 것입니다.

이러한 제한 사항으로 인해 미개척 설계 옵션의 막대한 범위를 통해 RLHF는 여전히 상당한 진전을 이룰 수 있습니다. 이들 중 많은 부분이 RL 옵티마이저를 개선하는 영역에 속합니다. PPO는 비교적 오래된 알고리즘이지만 다른 알고리즘이 기존 RLHF 워크플로우에 이점과 순열을 제공할 수 없는 구조적 이유는 없습니다. LM 정책을 미세 조정하는 피드백 부분의 큰 비용 중 하나는 정책에서 생성된 모든 텍스트 조각을 보상 모델에서 평가해야 한다는 것입니다(표준 RL 프레임워크에서 환경의 일부처럼 작동하므로). 비용이 많이 드는 대규모 모델의 전달을 피하기 위해 오프라인 RL을 정책 최적화 프로그램으로 사용할 수 있습니다. 최근에는 암시적 언어 Q-러닝 (ILQL) 과 같은 새로운 알고리즘이 등장했습니다. [ Talkon ILQL at CarperAI], 이러한 유형의 최적화에 특히 잘 맞습니다. 탐색-이용 균형과 같은 RL 프로세스의 다른 핵심 절충 사항도 문서화되지 않았습니다. 이러한 방향을 탐색하면 적어도 RLHF가 어떻게 기능하는지에 대한 실질적인 이해를 발전시킬 수 있으며 그렇지 않은 경우 향상된 성능을 제공합니다.

2022년 12월 13일 화요일에 이 게시물에서 확장된 강의를 주최했습니다. 여기에서 볼 수 있습니다 !

추가 자료

다음은 현재까지 RLHF에서 가장 널리 퍼진 논문 목록입니다. 이 분야는 최근 DeepRL(2017년경)의 출현으로 대중화되었으며 많은 대형 기술 회사의 LLM 응용 프로그램에 대한 광범위한 연구로 성장했습니다. 다음은 LM 포커스 이전의 RLHF에 대한 몇 가지 문서입니다.

그리고 다음은 LM에 대한 RLHF의 성능을 보여주는 “핵심” 논문 세트의 스냅샷입니다.

필드는 여러 필드의 수렴이므로 다른 영역에서도 리소스를 찾을 수 있습니다.

인용: 귀하의 학업에 이 내용이 유용하다고 생각되면 텍스트로 우리의 작업을 인용하는 것을 고려하십시오.

Lambert, et al., "Illustrating Reinforcement Learning from Human Feedback (RLHF)", Hugging Face Blog, 2022.

BibTeX 인용:

@article{lambert2022illustrating,
  author = {Lambert, Nathan and Castricato, Louis and von Werra, Leandro and Havrilla, Alex},
  title = {Illustrating Reinforcement Learning from Human Feedback (RLHF)},
  journal = {Hugging Face Blog},
  year = {2022},
  note = {https://huggingface.co/blog/rlhf},
}

RLHF의 특정 구현과 관련된 몇 가지 사실적 오류를 수정한 Robert Kirk 에게 감사드립니다 . 관련 작업을 역사 속으로 확장하는 데 도움을 준 Peter Stone , Khanh X. Nguyen 및 Yoav Artzi 에게 감사드립니다 .

답글 남기기