00:00:00

Share Your Feedback 🏝️

Self-play with Execution Feedback

Self-play with Execution Feedback

MinWoo(Daniel) Park | Tech Blog

Read more
Previous: Attention | Infini-attention Next: Character.AI - Optimizing AI Inference

Self-play with Execution Feedback

  • Related Project: Private
  • Category: Paper Review
  • Date: 2024-06-21

Self-play with Execution Feedback: Improving Instruction-following Capabilities of Large Language Models

  • url: https://arxiv.org/abs/2406.13542
  • pdf: https://arxiv.org/pdf/2406.13542
  • html: https://arxiv.org/html/2406.13542v1
  • abstract: One core capability of large language models (LLMs) is to follow natural language instructions. However, the issue of automatically constructing high-quality training data to enhance the complex instruction-following abilities of LLMs without manual annotation remains unresolved. In this paper, we introduce AutoIF, the first scalable and reliable method for automatically generating instruction-following training data. AutoIF transforms the validation of instruction-following data quality into code verification, requiring LLMs to generate instructions, the corresponding code to check the correctness of the instruction responses, and unit test samples to verify the code’s correctness. Then, execution feedback-based rejection sampling can generate data for Supervised Fine-Tuning (SFT) and Reinforcement Learning from Human Feedback (RLHF) training. AutoIF achieves significant improvements across three training algorithms, SFT, Offline DPO, and Online DPO, when applied to the top open-source LLMs, Qwen2 and LLaMA3, in self-alignment and strong-to-weak distillation settings. Our code is publicly available at this https URL.

TL;DR


대규모 언어모델의 지시사항 따르기 능력 향상을 위한 AUTOIF 방법

  1. 문제 인식: 대규모 언어모델(LLM)이 자연어 지시를 따르는 능력은 중요하지만, 높은 품질의 training dataset를 자동으로 생성하는 방법이 부족한 상황입니다.
  2. AUTOIF 소개: AUTOIF는 LLM의 명령 수행 능력을 향상시키기 위해 자동으로 명령 따르기 training dataset를 생성하는 방법입니다. 코드 검증을 통해 instruction following 데이터의 품질을 평가하는 새로운 방법을 도입하여 training dataset를 자동 생성할 수 있습니다.
  3. 이 방법은 코드로 명령의 정확성을 검증하는 기능을 포함하며, 이를 통해 자가 진화, 거부 샘플링 및 실행 피드백을 활용합니다.
  4. 실험 결과, AUTOIF는 다양한 훈련 전략에서 명령 수행 성능을 향상시켰습니다. 세 가지 학습 알고리즘(SFT, Offline DPO, Online DPO)에 적용시켜 우수한 성능 향상을 달성하고, 코드와 데이터셋을 공개합니다.

대규모 언어모델(LLM)의 핵심적인 능력 중 하나는 자연어 지시를 따르는 것이지만, 수작업으로 주석을 달지 않고 LLMs의 복잡한 instruction following 능력을 향상시키기 위한 고품질 training dataset를 자동으로 구축하는 문제는 여전히 해결되지 않고 있습니다. 이 논문에서는 최초로 확장 가능하고 신뢰할 수 있는 자동 instruction following training dataset 생성 방법인 AutoIF를 소개합니다.

AutoIF는 instruction following 데이터 품질 검증을 코드 검증으로 변환합니다. 즉, LLM이 지시, 지시 응답의 정확성을 확인하는 해당 코드, 그리고 코드의 정확성을 검증하는 단위 테스트 샘플을 생성하도록 요구합니다. 이후 실행 피드백 기반 거절 샘플링을 통해 지도 학습 파인튜닝(SFT)과 휴먼 피드백 강화 학습(RLHF) 훈련을 위한 데이터를 생성할 수 있습니다. AutoIF는 최고의 오픈소스 LLM인 Qwen2와 LLaMA3에 자기 정렬 및 강력-약함 전달 설정에서 적용 시 세 가지 훈련 알고리즘(SFT, Offline-DPO, Online-DPO) 모두에서 개선을 달성합니다.


서론

대규모 언어모델(LLM)의 명령 수행 능력은 자연어로 주어진 명령을 이해하고 해석하며 실행할 수 있는 능력을 의미합니다. 이는 현대 LLM에서 필수적인 능력으로, 사용자의 요구에 맞게 적응하고 복잡한 작업을 수행할 수 있게 합니다. 그러나 명령 수행 능력을 확장하고 신뢰할 수 있는 방법을 개발하는 것은 여전히 어려운 문제로 남아 있습니다.

현재의 접근 방식은 주로 수작업 주석과 행동 모방으로 나뉩니다. 수작업 주석은 사람이 명령과 해당 응답을 설계하는 방식이며, 행동 모방은 더 발전된 LLM으로부터 응답을 증류하는 방식입니다. 그러나 이런 방법은 확장성에 한계가 있으며, 특히 복잡한 명령을 정확하게 수행하는 데 어려움이 있습니다.

이에 따라 AUTOIF를 소개합니다. AUTOIF는 지도학습(SFT) 또는 휴먼 피드백을 통한 강화 학습(RLHF)에서 사용할 수 있는 명령 따르기 training dataset를 자동으로 생성하는 첫 번째 확장 가능하고 신뢰할 수 있는 방법입니다. AUTOIF의 핵심 아이디어는 코드를 사용하여 명령을 따르는 정확성을 검증하는 것입니다.

방법: AUTOIF

AUTOIF는 명령 I와 해당 명령의 특정 질의 $q$가 주어졌을 때, 명령을 올바르게 수행하는지 검증하는 함수 $fI$가 존재한다고 가정합니다. 이 검증 함수는 모델의 응답 $y$가 명령을 올바르게 따르는 경우 true를 반환합니다.

\[f_I(y) = \begin{cases} true & \text{if } y \text{ follows the instruction } I \\ false & \text{otherwise} \end{cases}\]

Step 1: 명령 증강 및 검증

먼저, 소수의 수작업으로 작성된 시드 명령 세트 $D_{seed}$를 제공합니다. 그런 다음, LLM을 사용하여 각 시드 명령에 대해 $K$개의 명령 재작성(instruction rewrites)을 수행하여 증강된 명령 세트 $D_{aug}$를 생성합니다. 시드 및 증강된 데이터셋을 결합하여 중복을 제거한 $D_{ins}$를 얻습니다.

  • 수식 자동 품질 교차 검증을 통해 각 명령에 대해 $K$개의 검증 함수 $f_I$와 테스트 케이스 $c_I$를 생성합니다. 이 검증 함수와 테스트 케이스는 다음 조건을 만족해야 합니다.
  • 검증 함수가 Python 실행기에서 성공적으로 컴파일 되어야 합니다.
  • 모든 테스트 케이스에서 각 검증 함수가 0.5 이상의 정확도를 가져야 합니다.
  • 각 명령은 최소 하나의 검증 함수와 테스트 케이스를 포함해야 합니다.
  • 이를 통해 얻어진 품질 필터링된 명령 세트 \(D_ins^2\)는 다음과 같습니다.

    \[D_{ins}^{(2)} = \{ I^{(2)}, f_I^{(2)} \}\]

Step 2: 질의 증강 및 검증

확인된 명령과 검증 함수를 사용하여 training dataset를 생성합니다. ShareGPT에서 K개의 사용자 질의를 무작위로 선택하고, 이를 결합하여 시드 질의 데이터셋 D_q를 구성합니다. LLM을 사용하여 K개의 응답 y_x를 생성하여 데이터셋를 확장합니다.

  • 수식 각 응답이 모든 검증 함수에서 0.5 이상의 정확도를 가져야 하며, 각 입력은 최소 하나의 검증 함수와 응답을 포함해야 합니다. 이를 통해 얻어진 데이터셋 D_q^2는 다음과 같습니다.

    \[D_{q}^{(2)} = \{ x^{(2)}, f_I^{(3)}, y^{(2)} \}\]

Step 3: 훈련 전략

AUTOIF는 다양한 훈련 전략에 적응할 수 있는 다면적인 감독을 제공합니다. 다음과 같은 훈련 접근 방식을 제안합니다.

  • 지도학습(SFT)

    \[L(\theta) = \sum_{(x_i, y_i) \in D_{train}} \log P_{\theta}(y_i | x_i)\]
  • 오프라인 DPO

    \[L_{DPO}(\pi_{\theta}^{SFT}; \pi_{ref}) = -E_{(x, y_w, y_l) \sim D} \left[\log \sigma\left(\beta \log \frac{\pi_{\theta}^{SFT}(y_w|x)}{\pi_{ref}(y_w|x)} - \beta \log \frac{\pi_{\theta}^{SFT}(y_l|x)}{\pi_{ref}(y_l|x)}\right)\right]\]
  • 실험 결과 Qwen2-72B 및 LLaMA3-70B 모델을 사용하여 AUTOIF의 효과를 입증했습니다. IFEval 및 FollowBench 벤치마크에서 AUTOIF는 모든 설정에서 명령 수행 성능을 향상시켰습니다. 특히, Qwen2-72B는 IFEval에서 88.0\%의 느슨한 명령 정확도를 확인합니다.


[참고자료 1] DPO의 원리와 이론

직접 선호 최적화(Direct Preference Optimization, DPO)는 모델의 성능을 개선하기 위해 훈련 중 실시간으로 데이터를 생성하고 최적화하는 기법입니다. 이 접근 방식은 모델이 훈련 중 얻은 피드백을 바탕으로 지속적으로 자기 개선을 할 수 있도록 합니다.

기본 개념

DPO는 다음을 목표로 합니다.

  • 주어진 입력 \(x\)에 대해 모델이 생성한 여러 응답 중, 선호되는 응답을 더 높은 확률로 선택하도록 학습합니다.
  • 이를 위해, 선호되는 응답과 그렇지 않은 응답 쌍을 비교하여 선호되는 응답의 로그 확률을 극대화합니다.

수학적 배경

  • 목적함수

    DPO의 핵심 목적함수는 다음과 같습니다. 선호되는 응답 \(y_w\)와 그렇지 않은 응답 \(y_l\)에 대해, 모델 \(\pi_\theta\)는 다음의 손실 함수를 최소화합니다.

    \[L_{DPO}(\pi_\theta; \pi_{ref}) = -\mathbb{E}_{(x, y_w, y_l) \sim D} \left[ \log \sigma \left( \beta \left( \log \frac{\pi_\theta(y_w \\| x)}{\pi_{ref}(y_w \\| x)} - \log \frac{\pi_\theta(y_l \\| x)}{\pi_{ref}(y_l \\| x)} \right) \right) \right]\]
    • \(x\): 주어진 입력
    • \(y_w\): 선호되는 응답
    • \(y_l\): 선호되지 않는 응답
    • \(\pi_\theta\): 현재 모델
    • \(\pi_{ref}\): Baseline Model (초기에는 \(\pi_\theta\)와 동일)
    • \(\beta\): 조정 가능한 하이퍼파라미터
    • \(\sigma\): 시그모이드 함수 \(\sigma(z) = \frac{1}{1 + e^{-z}}\)
  • 시그모이드 함수

    시그모이드 함수는 모델의 예측 확률을 변환하여, 선호되는 응답과 선호되지 않는 응답 간의 차이를 강조하며, 다음과 같이 정의됩니다.

    \[\sigma(z) = \frac{1}{1 + e^{-z}}\]
  • 손실 함수의 유도

    1. 로그 확률 차이 계산:
      • 모델 \(\pi_\theta\)가 입력 \(x\)에 대해 응답 \(y_w\)를 생성할 확률의 로그 값: \(\log \pi_\theta(y_w \\| x)\)
      • 모델 \(\pi_\theta\)가 입력 \(x\)에 대해 응답 \(y_l\)를 생성할 확률의 로그 값: \(\log \pi_\theta(y_l \\| x)\)
      • Baseline Model \(\pi_{ref}\)의 확률 값에 대한 로그 값: \(\log \pi_{ref}(y_w \\| x)\) 및 \(\log \pi_{ref}(y_l \\| x)\)
    2. 차이 계산:
      • \(\log \pi_\theta(y_w \\| x) - \log \pi_{ref}(y_w \\| x)\)와 \(\log \pi_\theta(y_l \\| x) - \log \pi_{ref}(y_l \\| x)\)의 차이를 계산합니다.
      • 이 차이를 통해 모델 \(\pi_\theta\)가 \(\pi_{ref}\)에 비해 선호되는 응답을 더 잘 예측하는지를 측정합니다.
    3. 시그모이드 적용:
      • 계산된 차이에 시그모이드 함수를 적용하여 확률 값으로 변환합니다.
      • 이 값은 \(\sigma \left( \beta \left( \log \frac{\pi_\theta(y_w \\| x)}{\pi_{ref}(y_w \\| x)} - \log \frac{\pi_\theta(y_l \\| x)}{\pi_{ref}(y_l \\| x)} \right) \right)\)로 표현됩니다.
    4. 손실 함수:
      • 최종 손실 함수는 이 확률 값을 로그 값으로 변환한 후, 그 음수를 취하여 최소화합니다.
      • 이는 선호되는 응답이 더 높은 확률로 선택되도록 모델을 학습시키는 효과를 가집니다.
      \[L_{DPO}(\pi_\theta; \pi_{ref}) = -\mathbb{E}{(x, y_w, y_l) \sim D} \left[ \log \sigma \left( \beta \left( \log \frac{\pi\theta(y_w | x)}{\pi_{ref}(y_w | x)} - \log \frac{\pi_\theta(y_l | x)}{\pi_{ref}(y_l | x)} \right) \right) \right]\]

DPO의 구현 과정

  1. 초기 모델 학습
    • 먼저, 기본 모델 \(\pi_\theta\)를 표준 지도학습(SFT)으로 학습합니다.
  2. 응답 생성
    • 학습된 모델 \(\pi_\theta\)를 사용하여 각 입력 \(x\)에 대해 여러 응답을 생성합니다.
    • 생성된 응답은 선호되는 응답과 선호되지 않는 응답으로 분류됩니다.
  3. 검증 함수
    • 각 응답에 대해 검증 함수를 적용하여 응답의 품질을 평가합니다.
    • 이 과정에서 선호되는 응답과 선호되지 않는 응답을 구분합니다.
  4. 손실 함수 계산
    • 위에서 설명한 손실 함수를 사용하여 모델 \(\pi_\theta\)의 파라미터를 업데이트합니다.
    • 이 과정은 모델이 점점 더 선호되는 응답을 높은 확률로 생성하도록 학습시킵니다.

[참고자료 2] 온라인 DPO vs. 오프라인 DPO

온라인 DPO(Direct Preference Optimization)와 오프라인 DPO는 모델 학습 과정에서의 데이터 사용 방식과 피드백 적용 방식에서 약간의 차이가 있습니다.

특징 온라인 DPO 오프라인 DPO
데이터 생성 시점 실시간 데이터 생성 사전 데이터 생성
피드백 적용 방식 반복적인 실시간 피드백 사전 수집된 피드백
피드백 루프 적응형 피드백 루프 고정 피드백 루프
학습 방식 온폴리시 학습 오프폴리시 학습
데이터 다양성 다양한 데이터 생성 가능 데이터 다양성 제한
데이터 품질 관리 동적 품질 관리 가능 정적 품질 관리
학습 효율성 효율적인 학습 가능 일괄 학습
반복적인 개선 반복적인 성능 개선 가능 한정된 개선 가능

1. 데이터 생성 및 피드백 적용 시점

[온라인 DPO]

  • 실시간 데이터 생성: 모델 훈련 중 실시간으로 데이터를 생성합니다. 모델이 생성한 응답에 대해 즉각적인 피드백을 받아 그에 따라 모델을 업데이트합니다.
  • 반복적인 피드백 적용: 훈련 과정에서 모델의 응답을 검증하고, 그 결과를 바탕으로 모델을 지속적으로 조정합니다. 이 과정에서 매 반복마다 새로운 데이터를 생성하고 이를 사용하여 모델을 업데이트합니다.

[오프라인 DPO]

  • (사전 데이터 생성) 훈련 전에 미리 준비된 데이터셋를 사용하며, 이 데이터셋은 모델이 사전에 생성한 응답과 이에 대한 피드백을 포함합니다.
  • 훈련 과정에서 미리 준비된 데이터셋를 사용하여 한 번에 모델을 학습시킵니다. 피드백은 훈련 전에 이미 수집된 것이므로 실시간 피드백 적용은 없습니다. (일괄 처리)

2. 피드백 루프

[온라인 DPO]

  • 적응형 피드백 루프: 모델이 응답을 생성하고 이에 대한 피드백을 실시간으로 받아 모델을 즉시 업데이트합니다. 이로 인해 모델은 훈련 과정에서 지속적으로 향상됩니다.
  • 온폴리시 학습: 모델의 현재 상태에 따라 실시간으로 데이터를 생성하고, 이를 기반으로 학습합니다. 이는 모델이 특정 작업에 적응할 수 있게 하며, 학습 과정에서 발견된 문제를 즉시 수정할 수 있게 합니다.

[오프라인 DPO]

  • 고정 피드백 루프: 피드백은 사전에 수집된 데이터에서 제공됩니다. 모델은 미리 준비된 데이터셋를 통해 학습하며, 실시간 피드백은 제공되지 않습니다.
  • 오프폴리시 학습: 이미 생성된 데이터를 사용하여 학습하므로, 모델의 현재 상태나 성능에 따라 데이터가 생성되지 않습니다. 이는 모델이 새로운 문제에 적응하는 능력을 제한할 수 있습니다.

3. 데이터 품질 및 다양성

[온라인 DPO]

  • 다양한 데이터 생성: 실시간으로 데이터를 생성하므로, 다양한 상황에 대한 응답을 포함할 수 있습니다. 이는 데이터의 다양성을 높이고 모델의 일반화 능력을 향상시킵니다.
  • 동적 품질 관리: 훈련 중 실시간으로 응답의 품질을 평가하고 조정할 수 있어, 데이터 품질을 지속적으로 유지하고 개선할 수 있습니다.

[오프라인 DPO]

  • 제한된 데이터 다양성: 사전에 준비된 데이터셋를 사용하므로, 데이터의 다양성이 제한될 수 있습니다. 이는 모델이 새로운 상황에 적응하는 능력을 저해할 수 있습니다.
  • 정적 품질 관리: 데이터 품질은 사전 평가에 의존하므로, 실시간으로 데이터 품질을 조정할 수 없습니다. 이는 데이터 품질 관리에 한계를 가질 수 있습니다.

4. 학습 효율성

[온라인 DPO]

  • 효율적인 학습: 실시간으로 피드백을 제공받아 학습하므로, 모델의 학습 효율성이 높아질 수 있습니다. 특히, 실시간 피드백을 통해 모델의 약점을 즉시 보완할 수 있습니다.
  • 반복적인 개선: 훈련 과정에서 모델의 성능을 지속적으로 모니터링하고 개선할 수 있습니다. 이는 모델의 최종 성능을 높이는 데 기여합니다.

[오프라인 DPO]

  • 일괄 학습: 미리 준비된 데이터셋를 사용하여 한 번에 학습하므로, 실시간 피드백 적용에 비해 학습 효율성이 낮을 수 있습니다.
  • 한정된 개선: 모델의 약점을 사전에 준비된 데이터로만 보완할 수 있으므로, 실시간으로 발생하는 문제를 즉시 해결하기 어렵습니다.

온라인 DPO와 오프라인 DPO는 데이터 생성 시점과 피드백 적용 방식에서 큰 차이를 보입니다. 온라인 DPO는 실시간 피드백을 통해 모델의 학습 과정을 동적으로 조정하고 개선할 수 있는 반면, 오프라인 DPO는 사전에 준비된 데이터셋를 통해 일괄적으로 학습합니다. 이런 차이는 각 방법의 데이터 다양성, 품질 관리, 학습 효율성에 영향을 미치며, 최종적으로 모델의 성능에도 영향을 미칩니다.


Previous: Attention | Infini-attention Next: Character.AI - Optimizing AI Inference

post contain ""

    No matching posts found containing ""