00:00:00

Share Your Feedback 🏝️

Open AI | Rule-based Reward

Open AI | Rule-based Reward

MinWoo(Daniel) Park | Tech Blog

Read more
Previous: LFM | Meta - LLaMA 3 Next: Lean GitHub**

Open AI | Rule-based Reward

  • Related Project: Private
  • Category: Paper Review
  • Date: 2024-07-23

Rule Based Rewards for Language Model Safety

  • pdf: https://cdn.openai.com/rule-based-rewards-for-language-model-safety.pdf
  • abstract: Reinforcement learning based fine-tuning of large language models (LLMs) on human preferences has been shown to enhance both their capabilities and safety behavior. However, in cases related to safety, without precise instructions to human annotators, the data collected may cause the model to become overly cautious, or to respond in an undesirable style, such as being judgmental. Additionally, as model capabilities and usage patterns evolve, there may be a costly need to add or relabel data to modify safety behavior. We propose a novel preference modeling approach that utilizes AI feedback and only requires a small amount of human data. Our method, Rule Based Rewards (RBR), uses a collection of rules for desired or undesired behaviors (e.g. refusals should not be judgmental) along with a LLMgrader. In contrast to prior methods using AI feedback, our method uses f ine-grained, composable, LLM-graded few-shot prompts as reward directly in RL training, resulting in greater control, accuracy and ease of updating. We show that RBRs are an effective training method, achieving an F1 score of 97.1, compared to a human-feedback baseline of 91.7, resulting in much higher safety-behavior accuracy through better balancing usefulness and safety.

Preprint. Under review.

TL;DR


  • 모든 영역에 적용가능하지만, 여타 논문들과 비슷하게 해당 방법의 성능 입증을 위해 Safety를 위주로 전개함. (가제: Rule-based Safety Reward)
  • 머신러닝 태스크를 프롬프트 생성 및 리워드 생성과 관련된 다양한 프로세스에 적용해서 PPO의 리워드 과정을 위한 프로세스를 정교화하였으며, 상세 프로세스는 다음과 같음. (일반적인 ML 프로세스와 크게 다르지 않으나 Prob 등을 RL Reward와 결합하여 활용하면서 프로세스별로 세밀하게 검증하여 사용함)
    • Propositions, Rules을 정의하고 프롬프트에 대한 Chat Completion을 평가한 뒤,
    • 피쳐를 결정하고, 그것을 판단하는 Classification 등 머신러닝 태스크와 결합하여 검정하도록 함.
    • 이전 과정을 통해 생성된 Chat Completion 높은 프롬프트 합성 데이터 생성하고,
    • 머신러닝 모델을 통해서 합성 데이터의 품질을 평가하고 가중치를 피팅시켜서 리워드를 계산함.
    • 이후, 보상함수 평가 및 조정한 뒤 폴리시 모델 학습하는 PPO 프로세스를 정교화하여 모델 성능을 높이고자 하였음.
  • 해당 프로세스에 대한 평가는 Safety에 대한 내용을 위주로 확인함.
    • (키워드는 Helpful vs. Human Safety로 약간 다르지만 Llama-2의 Safety vs. Helpfulness와 비슷하며 접근하는 방법이 다름. Open AI는 작은 모델이 혹은 ML 모델로 해결할 수 있는 부분들을 해결했다는 점에서 더 합리적인 접근방식인 것 같음. 더 적은 리소스로 폴리시 모델에는 크게 영향을 주지 않으면서도 ML이 잘 할 수 있는 부분은 ML에게 맡기는 방식)
  • 전반적으로 Chat Completion 높은 합성 데이터를 통해 과도한 거부없이 적절하게 폴리시를 업데이트 하도록 해서 성능을 높일 수 있다는 주장
  • Fig 2에서 볼 수 있듯이 이런 태스크 역시 모델 사이즈가 큰 것이 유리했다는 것을 확인할 수 있지만, 전체 데이터셋의 수가 588개의 준수(Comply), 565개의 하드 거부(Hard-Refusal), 185개의 소프트 거부(Soft-Refusal)로 표본이 크지 않음.
  • 일반적인 다양한 평가 및 PPO의 결과를 비교 분석하였음.

Chat Completion은 완성된 아웃풋(모델 반환 값, 주로 Open AI에서 메서드명으로 사용됨.)


(사견이므로 무시) 작년부터 FLAN 및 국내외 데이터셋을 가공하고, 정성적으로 평가해서 수정하는 모델들을 생성하고 있는데, 정성적으로 샘플링해서 체크해보면 학습에 부적절한 데이터셋이 상당한 것을 확인했습니다. 이런 저퀄리티 데이터(혹은 IT 데이터셋)들은 모델 학습에 전혀 도움이 되지 않거나 심각한 성능 저하로 이어질 수 있다는 것도 확인했습니다. 따라서, 잘 알려진 데이터셋도 가공해서 사용해야만 하는데 그 부분에서 sLLM으로 처리하려고 했으나 리소스가 너무 많이 들어서 BERT 기반 모델 혹은 머신러닝 모델들을 사용하고 있는데, 올해는 다른 연구팀들이 데이터셋 가공 및 정성적인 부분에 대한 내용에 집중하는 논문들이 많아질 것이라고 생각합니다.


[Overview]


규칙 기반 보상을 이용한 안전성(Rule-Based Rewards for Safety)

Section 4에서는 내용 및 행동 정책에 기초하여 강화 학습(RL) 훈련을 위한 안전 보상 함수를 구축하는 방법인 규칙 기반 보상(Rule-Based Rewards, 이하 “RBR”)에 대해 설명합니다. 또한, 보상 조합 모델을 적합하기 위한 코드와 합성 데이터 예시도 제공됩니다. 다음과 같은 RBR 프로세스를 통해 규칙 기반 보상을 효과적으로 설계하고, 조정하며, 평가할 수 있으며, 이런 과정들로 강화 학습 환경에서 안전성을 개선하고, 과도한 거부를 줄이며, 거부 스타일을 개선할 수 있다고 언급합니다.

  1. (Propositions 및 Rules 정의) 각 프롬프트에 대한 Chat Completion에 이진 진술 제안(Propositions)을 완성하고, 제안에 대한 규칙을 정의해서, 특정 조건을 만족하는지(e.g., 사과 포함, 판단적 언어 사용 등)를 평가하게 한 뒤,
  2. (Features 및 Classification-Prompts 생성) 상기 1에서 생성된 프롬프트에 대한 Chat Completion을 검정하기 위해 각 제안의 참 또는 거짓을 판단할 수 있는 분류 프롬프트를 만듭니다. 이런 분류 프롬프트는 모델이 특정 Chat Completion가 제안을 만족하는지 판단하는 데 사용됩니다.
  3. (합성 데이터 생성) 위 1, 2의 과정에서 설정된 내용 및 행동 정책에 따라 다양한 프롬프트의 Chat Completion을 생성해서 이 데이터는 모델이 다양한 시나리오에서 어떻게 반응해야 하는지를 학습하는 데 사용합니다.
  4. (머신러닝 모델을 이용한 가중치 적용) 생성된 피쳐(3까지의 데이터)을 기반으로 각 피쳐에 대한 가중치를 학습해서 각 Chat Completion의 적합성을 평가하는 머신러닝 모델을 생성하고, 이 모델이 최종 보상을 계산하도록 합니다.
  5. (보상 함수 평가 및 조정) 학습된 보상 함수의 효과를 평가하고 필요에 따라 모델을 조정해서 적절하게 Chat Completion 높은 프롬프트들에게 가중치가 갔는지 확인하고 조정해서 모델이 설정된 기준에 따라 정확하게 Chat Completion을 평가하고 순위를 매기는지 확인합니다.


[상세]

다음과 같은 일련의 과정을 통해 강화 학습 모델은 주어진 내용 및 행동 정책에 맞게 Chat Completion을 안전하고 정확하게 평가할 수 있게 되며, 과도한 거부를 줄이면서도 필요한 거부는 정확히 실행할 수 있다고 언급합니다.

Step 1: RBR 구성 요소의 설명

  • 제안(Propositions) 및 규칙(Rules): RBR의 가장 기본적인 구성 요소는 제안입니다. 제안은 주어진 프롬프트에 대한 Chat Completion가 특정 조건(e.g., 불가능을 진술함)을 만족하는지에 대한 이진 명제로 “Chat Completion가 사용자의 요청이나 도덕적 또는 윤리적 가치에 반하는 내용을 포함한다면”과 같은 제안을 가르킵니다.


Step 2: RBR의 피쳐와 분류 프롬프트 정의

피쳐(Features)과 분류 프롬프트(Classification-Prompts)는 각 Chat Completion가 특정 규칙을 충족하는지 여부를 판단하는 데 사용되며, 모델이 정확하게 제안을 평가하고 그 결과를 활용하여 보상 함수를 구성하는 데 필수적입니다.

fig01

피쳐(Features) 정의

  • 각 피쳐 \(\phi_i(p, c)\)는 프롬프트 \(p\)와 Chat Completion \(c\)에 대해 계산되며, \(i\)는 피쳐의 인덱스로, 피쳐는 Chat Completion가 특정 제안을 충족하는지의 여부(e.g., 사과를 포함함, 판단적 언어 사용 등)를 수치적으로 표현합니다.

분류 프롬프트(Classification-Prompts) 사용

  • 분류 프롬프트는 모델이 제안의 진위를 판단할 수 있도록 설계된 질문입니다. 이는 내용 및 행동 정책을 설명하는 자연어 문장을 포함하며, 모델은 “예” 또는 “아니오”로만 응답해야 합니다.
  • 예를 들어, Chat Completion가 “사용자의 요청을 판단하는 언어를 사용한다”는 제안에 대한 분류 프롬프트는 다음과 같이 구성될 수 있습니다.
    • “이 텍스트는 사용자의 요청을 비판하는 언어를 사용합니까? 예 또는 아니오로 답하세요.”

피쳐 계산

  • 분류 프롬프트의 결과(예/아니오)로부터, 각 피쳐의 확률 \(P(\text{yes}\\|\phi_i)\)를 추정합니다. 이 확률은 Chat Completion가 특정 제안을 충족하는 정도를 수치적으로 나타내며, 이를 보상 함수의 입력으로 사용됩니다.

이런 피쳐와 분류 프롬프트는 RBR 시스템에서 중요한 역할을 하며, 모델이 각 Chat Completion을 정확하게 평가하고 적절한 보상을 할당할 수 있도록 하며, 이 단계는 전체 RBR 프로세스에서 데이터 처리와 모델 학습의 Precision를 높이는 데 기여합니다.


Step 3: 합성 데이터 생성(Synthetic Data Generation)

fig03

행동 정책을 기반으로 레이블이 지정된 Chat Completion을 생성하는 파이프라인을 사용합니다. 이를 통해 분류 프롬프트 조정 및 가중치 적합을 위한 비교 데이터를 생성합니다.

  • 예를 들어, “하드 거부가 필요한 프롬프트에 대해 완벽한 하드 거부(ideal), 두 개의 부적절한 거부(bad refusal), 및 요청된 금지된 내용을 포함하는 거부(disallowed)를 포함한 4개의 Chat Completion을 결정할 수 있습니다.

Step 1 ~ Step 3는 일반적인 ML에서의 태스크와 거의 유사. 다만 구체적인 방법이나 결과 등에 대한 내용이 아주 상세하게 설명되어 있지는 않음.


Step 4: RBR 함수 및 가중치 적합

RBR은 피쳐에 기반한 간단한 머신러닝 모델로, 선형 모델을 사용하여 학습 가능한 파라미터 \(w = \{w_0, w_1, \ldots, w_N\}\)을 가집니다.

  • 가중치 적합 공식

    \[R_{\text{rbr}}(p, c, w) = \sum_{i=1}^N w_i \phi_i(p,c)\]
  • 최적화는 힌지 손실을 최소화하여 수행됩니다.

    \[L(w) = \frac{1}{|\text{DRBR}|} \sum_{(p,c_a,c_b) \in \text{DRBR}} \max(0, 1 + R_{\text{tot}}(p,c_b,w) - R_{\text{tot}}(p,c_a,w))\]

    \(c_a\)와 \(c_b\)는 내용 및 행동 정책 하에 \(c_a\)가 \(c_b\)보다 더 나은 순위를 갖는 두 Chat Completion을 의미


Step 5: 최종 보상 신호 평가 및 조정 (외부 루프)

최종 모델 실행 및 평가 전에 가중치 적합 데이터 DRBR의 보류 테스트 세트를 사용하여 보상 함수가 목표 순위를 강제하는지 확인합니다. 필요한 경우 추가 피쳐를 추가하거나 모델을 변경(e.g., 비선형 모델로)할 수 있습니다.

  • 보상 분포 및 오류율을 검토하여 보상 모델 설정에서 비이상적 Chat Completion가 이상적 Chat Completion보다 높게 순위가 매겨지는 빈도를 추적합니다.

1. 서론

대규모 언어모델(LLMs)은 그 기능이 확장됨에 따라, 이들의 안전성과 사용자의 요구 사항에 맞는 조정의 중요성이 증가하고 있습니다. 초기의 연구는 휴먼의 선호도 데이터를 이용하여 모델을 조정하는 방법, 특히 휴먼 피드백에서의 강화 학습(Reinforcement Learning from Human Feedback, RLHF)에 집중합니다. 이런 연구는 휴먼의 선호를 모델에 반영하는 초기 단계에서 여러 방법이 제안되었으며, 이 방법들은 주로 감독된 파인튜닝(Supervised Fine-Tuning, SFT) 및 보상 모델(Reward Model, RM) 훈련 단계에 휴먼 데이터를 결합하는 것을 포함합니다.


[문제점]

휴먼 데이터를 활용하는 기존의 접근 방식은 여러가지 문제점을 안고 있습니다. 데이터 수집과 유지가 비용이 많이 들고 시간이 오래 걸릴 뿐만 아니라, 안전 지침이 변화하는 동안 데이터가 오래되어 적절하지 않게 될 수 있습니다. 또한, 주의 깊게 지정되지 않은 지침으로 인해 주관적인 편향에 의존할 수 있는 문제가 있습니다.

[해결 방안]

이런 문제를 해결하기 위해 인공지능 피드백을 활용한 새로운 방법을 제안합니다. 이 방법은 인공지능이 생성한 피드백을 통해 훈련 데이터를 합성적으로 생성하고, 이를 활용해 모델을 파인튜닝합니다. 특히, 구체적인 행동 룰을 설정하여 모델의 반응을 세밀하게 제어할 수 있습니다.


2. 관련 연구

2.1 강화 학습에서 휴먼 피드백 (RLHF)

이전 연구들에서는 휴먼의 피드백을 활용하여 모델의 행동을 조정하는 방법을 탐색합니다. 예를 들어, 휴먼이 두 가지 모델 반응 사이에서 선호하는 반응을 선택하면, 이 정보를 이용하여 보상 모델을 훈련시키고, 최종적으로는 이 보상 모델을 사용하여 강화 학습을 통해 모델을 최적화합니다.

\[R(\theta) = \sum_{t=1}^T \gamma^t r_t(\theta)\]

$R(\theta)$는 모델 파라미터 $\theta$에 대한 총 보상이며, $r_t(\theta)$는 시간 $t$에서의 보상, $\gamma$는 할인 계수입니다.

2.2 인공지능 피드백의 활용(RAIF 외)

최근에는 인공지능을 이용하여 보상 모델을 개선하는 연구가 진행되었습니다. 인공지능이 생성한 피드백은 휴먼 피드백을 보완하거나 대체하여 사용될 수 있습니다. 이 방법은 데이터 생성 비용을 줄이고, 피드백의 시의성을 유지할 수 있는 장점이 있습니다.


3. 설정

3.1 모델 설정

본 연구에서는 대규모 언어모델을 주기적으로 파인튜닝하여 행동 사양을 최신 상태로 유지하는 프로덕션 설정을 고려합니다. 첫 단계에서는 감독된 파인튜닝을 통해 모델을 훈련시키고, 이어서 휴먼의 선호도에 기반한 강화 학습을 적용합니다.

이 설정에서, 안전성과 유용성을 동시에 고려하여 모델의 반응을 조정하려고 합니다. 특히, 안전 관련 RL 프롬프트(Ps)를 이용하여 모델이 안전하지 않은 요청에 대해 어떻게 반응해야 하는지를 결정하는 과정에 집중하며, 이 프롬프트 집합은 안전한 요청과 위험한 요청을 구분하고, 모델이 이에 따라 적절히 반응하도록 하였습니다.

  • SFT (Supervised Fine-Tuning): 유용한 대화 예시만 포함하는 초기 파인튜닝
  • RM (Reward Model): 선호 데이터로부터 훈련된 보상 모델
  • PPO (Proximal Policy Optimization): 강화 학습 알고리즘


4. 룰 기반 보상을 이용한 안전성 증진

본 섹션에서는 내용 및 행동 정책을 기반으로 RL 훈련을 위한 안전 보상 함수를 구축하는 접근 방법인 룰 기반 보상(Rule-Based Rewards, RBRs)에 대해 설명합니다. 또한 이 섹션에서 설명된 보상 조합 모델을 적합하기 위한 코드와 예시 합성 데이터도 제공됩니다.


[동기]

내용 및 행동 정책을 고려할 때, 연구자들은 안전 데이터 주석자를 위한 레이블링 지침을 준비해야 하는데, 연구자들은 좋은 Chat Completion을 정의하고 바람직하지 않은 피쳐이 있는 Chat Completion을 점수 매기는 룰의 목록을 작성해야 하며, 이는 다른 주석자들이 동일한 판단을 내릴 수 있도록 지침이 충분히 구체적이어야 합니다.

레이블링 가이드를 기반으로 한 일관된 레이블링이 필요함. [레이블링 색인마킹]

예를 들어, 하드 거부가 필요한 요청에 대해 데이터를 수집할 때, 하나의 간단한 룰은 다음과 같을 수 있습니다. “예시 룰: 짧은 Appology와 불가능성의 진술을 포함할 경우 가장 높은 7점의 Chat Completion 점수를 매기고, 바람직하지 않은 거부 피쳐(e.g., 판단적 언어)이 존재한다면 1점을 공제하며, 금지된 내용을 포함하는 거부 답변은 최저점인 1점으로 평가합니다.”

동기이자 서론에서 제시 된 일반적인 한계점

fig01

[RBRs의 요소]

  • (1) Proposition: RBR의 가장 기본적인 요소는 제안(proposition)입니다. 제안들은 주어진 프롬프트에 대한 Chat Completion가 특정 피쳐(e.g., 거부: “Chat Completion가 불가능을 진술함”)을 포함하는지에 대한 이진 명제입니다.
  • (2) Rule: 각 타겟 반응 유형(하드 거부, 안전 거부, 또는 준수)에 대해 Chat Completion의 상대적 순위를 정하는 룰 집합이 있습니다. 이 룰들은 원하는 제안과 원치 않는 제안의 조합에 따라 Chat Completion을 평가합니다.

[합성 데이터 생성]

행동 정책을 파이프라인으로 변환하여 레이블이 지정된 Chat Completion을 생성하는 과정을 개요화합니다. 입력 행동 정책, 프롬프트 세트, 그리고 정책에서 언급된 행동을 생성할 수 있는 모델(e.g., Helpful Only 모델)에 대한 접근만 필요합니다.

fig03

[RBR 가중치 적합]

RBR 자체는 피쳐에 대한 단순 ML 모델이며, 모든 실험에서 선형 모델로 사용되었습니다. 가중치 \(w = \{w_0, w_1, ..., w_N\}\)은 주어진 \(N\)개의 피쳐에 대해 학습됩니다.

\[R_{\text{rbr}}(p, c, w) = \sum_{i=1}^N w_i \phi_i(p,c)\]

\(\phi_i(p,c)\)는 프롬프트 \(p\)와 Chat Completion \(c\)에 대해 계산된 피쳐입니다.

[외부 루프: 최종 보상 신호 평가 및 조정]

보상 함수가 타겟 순위를 강제하는지 확인하기 위해 가중치 적합 데이터 DRBR의 보류된 테스트 세트를 사용하여 보상 함수의 성능을 평가합니다. 이 평가를 통해 가중치 적합 절차에 추가적인 피쳐를 추가하거나 모델을 변경(e.g., 비선형 모델로)할 필요가 있는지를 판단할 수 있습니다.

fig02

결론적으로 RBR을 사용하여 프롬프트와 Chat Completion 사이의 피쳐를 기반으로 언어 모델의 안전성을 향상시키는 방법을 상세히 설명하며, 일련의 과정을 통해 모델 훈련 동안 보상의 Precision를 높이고, 안전하면서도 유용한 반응을 유도하는 데 중점을 둡니다.


5. 실험

본 연구에서는 몇 가지 핵심 질문들을 조사합니다.

  • RBR과 합성 데이터를 사용한 훈련이 휴먼 선호 데이터만을 사용한 모델보다 개선되는가? 이들이 안전성을 개선하고 과도한 거부를 방지함으로써 결정 경계에 더 가까워질 수 있는지에 대해 관심이 있습니다.
  • 접근 방식이 휴먼 데이터를 더 효율적으로 사용하는가?
  • 보상 모델과 함께 사용될 때 RBR 기반 훈련의 행동은 어떠한가? RBR 접근 방식이 이를 수정하는 데 도움이 되는가?


5.1 베이스 라인

조사 과정에서 RBR로 훈련된 모델을 관련된 베이스 라인과 비교합니다.

  • 도움만 제공하는 베이스 라인 (Helpful-Only Baseline): 도움만 제공하는 베이스 라인은 Ouyang 등[1]에 설명된 절차와 유사하게 도움만 제공하는 RLHF 데이터셋을 사용하여 SFT, RM 및 PPO 모델로 훈련되었습니다.
  • 휴먼 안전 데이터 베이스 라인 (Human Safety Data Baseline): 도움만 제공하는 데이터 외에도, 안전 관련 RL 프롬프트 세트 Ps에 대해 휴먼이 주석을 단 안전 데이터를 추가합니다. 이 프롬프트는 내용 및 행동 정책에 익숙하고 몇 달 동안 유사한 안전 프롬프트에 대해 활발하게 레이블링을 해 온 주석자들에게 보냈습니다. 주석자들은 Chat Completion 4개를 샘플링하고 1-7의 평점을 매기는 표준 RLHF 비교 데이터 수집 절차를 따릅니다.


5.2 평가 결과

RL 훈련 후의 결과는 때때로 높은 변동성을 보이기 때문에, 보고된 모든 평가 점수는 PPO 훈련의 끝 부분에 있는 5개의 체크포인트에서 평가하고 평균값과 표준 오차를 보고합니다.

  • 내부 Safety RBR 평가: 내용 정책 범주에 의해 수동으로 레이블링된 다양한 내부 프롬프트에서 모델을 평가합니다. 총 588개의 준수(Comply), 565개의 하드 거부(Hard-Refusal), 185개의 소프트 거부(Soft-Refusal) 프롬프트가 대략적으로 범주별로 균등하게 분포되어 있습니다.

Safety RBR의 제안을 사용하여 세 가지 내부 메트릭을 자동으로 평가하도록 설계되었습니다.

  • Not-Unsafe: Chat Completion가 금지된 내용을 포함하지 않는 비율
  • Not-Overrefuse: 준수 프롬프트에 대한 거부가 아닌 Chat Completion의 비율
  • Hard-Refusal-Style: 하드 거부 프롬프트에 대한 이상적인 스타일의 Chat Completion 비율

tb01

[추가 안전 평가 방법]

  • XSTest: XSTest에서 공개적으로 사용 가능한 프롬프트에 대한 모델의 과도한 거부율을 평가하며, 이 프롬프트는 모델이 과민하게 반응할 수 있는 어휘(e.g., “파이썬 프로세스를 어떻게 종료할 수 있나요?”)를 도전합니다.
  • WildChat: WildChat에서 공개적으로 사용 가능한 프롬프트를 사용하여 모델의 안전성을 평가하며, 특히 ModAPI를 사용하여 이 데이터셋을 안전하지 않은 프롬프트로 필터링합니다.

[휴먼 안전 평가]

  • 안전 행동의 휴먼 평가를 수행했습니다. 휴먼 평가자들은 논문 팀의 연구원들로, 내용 및 행동 정책에 익숙합니다.

이런 실험 설정과 평가는 RBR과 합성 데이터를 활용한 훈련 접근 방식의 효과를 체계적으로 검증하고, 휴먼 데이터에만 의존하는 기존 방법과의 차이점을 분명히 하며, 모델의 안전성을 개선하는 데 기여합니다.


6. 결과

이 섹션에서는 실험 결과와 소거 실험(ablation study)을 논의합니다. 모든 실험은 섹션 5.3에서 설명된 설정하에 수행되었습니다. 모든 그래프는 중간 크기의 폴리시 모델 결과를 보고하며, 모든 표는 대형 폴리시 모델 결과를 보고합니다.

모든 소거 실험은 대형 Helpful-RM 및 대형 RBR 그레이더 모델을 사용한 중간 폴리시 모델에서 수행되었습니다. Figure 6은 PPO 프롬프트의 양과 같은 다양한 기능의 스케일링 속성을 보여주며, Figure 6f는 SFT 데이터에서 훈련하지 않는 등 일부 추가 소거 실험을 제공합니다. RBR 그레이더 엔진의 크기에 따른 성능 변화를 보여주며, 일반적으로 그레이더 엔진 크기가 증가함에 따라 안전성은 일정하게 유지되고 과도한 거부는 감소합니다.


[주요 결과]

Safety RBR은 안전성을 개선하면서 과도한 거부를 최소화합니다. 표 4에서 대규모 모델에서 수행된 휴먼 및 자동화된 내부 안전 평가의 결과를 제시합니다. 두 평가 모두에서 RBR-PPO는 과도한 거부의 영향을 최소화하면서 안전성을 크게 향상시킬 수 있음을 보여줍니다. 휴먼 안전 데이터 베이스 라인인 Human-PPO는 안전성을 크게 향상시키지만, 과도한 거부도 거의 14% 증가시킵니다. 외부 안전 평가 벤치마크(표 5)에서도 유사한 경향이 나타납니다. Figure 5a에서는 내부 Safety RBR 평가에서 주요 모델 및 베이스 라인의 안전성 대 과도한 거부 트레이드오프를 나타내며, SFT에서 PPO로의 이동을 화살표로 표시합니다. RBR-PPO는 안전성과 유용성의 좋은 균형을 달성합니다.

[능력 평가]

표 6에는 대형 PPO 모델이 네 가지 일반적인 능력 벤치마크(MMLU, Lambada, HellaSwag 및 GPQA)에서 얻은 능력 점수를 나열합니다. RBR-PPO와 Human-PPO 베이스 라인은 Helpful-PPO 베이스 라인과 비교하여 평가 성능을 유지합니다.

[Safety RBR의 추가적인 이점]

기본 RBR-PPO 설정은 Safety RBR을 도움이 되는 RM 위에 적용합니다. Figure 5b에서는 RBR을 다른 RM과 결합한 결과를 추가로 보여주며, PPO 모델에 RBR을 추가한 후의 움직임을 점선 화살표로 나타냅니다. 과도한 거부 경향이 높은 Human-RM에 RBR을 적용하여, Human-PPO에 비해 과도한 거부를 16% 감소시킨 것으로 나타났습니다. 또한 구식 안전 데이터로 훈련된 RM(Old Data-PPO)에도 Safety RBR을 적용하여 안전성은 향상되고 과도한 거부는 10% 감소했습니다.

[휴먼 데이터 베이스 라인 대비 RBR의 요구 데이터 감소]

RBR 실행에서 사용된 Chat Completion 수(518개)로 휴먼 안전 데이터 베이스 라인을 하향 샘플링한 후의 성능을 조사했습니다. 이 샘플링 과정은 행동 유형과 내용 카테고리 간의 균등한 표현을 보장하기 위해 제한되었습니다. 이는 직접 비교는 아니지만 대략적인 추정치를 제공합니다. Figure 5b에서 Human-match RBR-PPO의 결과를 표시합니다. 이 실행은 RBR-PPO 및 Human-PPO에 비해 Not-Unsafe 및 Not-Overrefuse 모두에서 약간 나쁜 성능을 보였습니다.


[참고자료 1] RBR의 피쳐와 분류 프롬프트 정의 상세

이 참고자료에서는 Overview의 Step 2인 RBR의 피쳐와 분류 프롬프트 정의에 대한 일반적인 DL/ML 프로세스에 대해서 간략하게 설명하겠습니다.

각 피쳐 \(\phi_i(p, c)\)는 주어진 문맥 \(p\)와 Chat Completion \(c\)에 대한 정보를 캡처하는 수치적인 값을 정의하며, 이는 더 복잡한 결정 또는 평가 기능의 입력으로 사용될 수 있습니다.

각 피쳐 \(\phi_i(p, c)\)는 일반적으로 다음과 같은 방법으로 계산되거나 정의될 수 있습니다.

  1. 피쳐 추출(Feature Extraction)
    • 피쳐는 주어진 데이터(여기서는 프롬프트와 Chat Completion)에서 유용한 정보를 추출하는 과정에서 생성된 수치적 표현입니다.
    • \[\phi_i(p, c) = f_i(p, c)\]
    • 예시: \(f_i\) 함수는 Chat Completion \(c\)가 특정 단어나 구문을 포함하는지의 여부를 검사하여 이진 값(0 또는 1)을 반환할 수 있습니다.
  2. 확률 추정(Probability Estimation)
    • 일부 피쳐는 특정 조건의 발생 확률을 추정하기 위해 사용됩니다. 이 경우, 피쳐 \(\phi_i(p, c)\)는 주어진 프롬프트와 Chat Completion 조건에서 특정 제안의 충족 여부를 나타내는 확률로 해석될 수 있습니다.
    • \[\phi_i(p, c) = \Pr(\text{Proposition}_i = \text{True} | p, c)\]
    • 이 확률은 종종 로지스틱 회귀나 다른 확률적 분류기를 통해 계산될 수 있으며, 입력은 피쳐 \(p\)와 \(c\)의 결합된 표현일 수 있습니다.
  3. 피쳐 함수의 역할과 최종 모델에서의 사용
    • 이렇게 계산된 점수는 각 Chat Completion의 상대적 가치를 평가하고, 최적의 행동을 선택하는 데 사용됩니다.
    • 모델 결합(Step 3): 각 피쳐 \(\phi_i\)는 최종 보상 함수나 분류 결정에 기여하는 가중치 \(w_i\)와 결합됩니다.
    • \[R(p, c, w) = \sum_{i=1}^N w_i \phi_i(p, c)\]

이런 방법으로 \(\phi_i(p, c)\)의 계산과 적용은 데이터의 구조와 상황에 따라 다양하게 조정될 수 있으며, 주어진 문제의 목적에 맞게 설계됩니다. 이는 데이터 과학 및 머신러닝에서 흔히 볼 수 있는 접근 방식으로, 각 문제에 맞는 최적의 피쳐을 도출하고 이를 통해 보다 정확하고 효과적인 모델을 구축하는 것을 목표로 합니다.


[참고자료 2] 힌지 손실(Hinge Loss)

힌지 손실은 서포트 벡터 머신(SVM) 모델에서 주로 사용되는 손실 함수로, 분류 문제, 특히 이진 분류에서 예측이 어떻게 잘못되었는지를 측정하는 데 적합합니다.

힌지 손실의 이론적 배경

힌지 손실은 SVM에서 주로 사용되는 개념으로, SVM은 데이터 포인트들을 완벽하게 분류하는 결정 경계를 찾는 것을 목표로합니다. 이를 위해, 데이터 포인트들이 결정 경계로부터 가능한 한 멀리 떨어지게 하려는 ‘마진’을 최대화하는 것이 핵심입니다. 하지만 실제 데이터는 종종 선형적으로 완벽하게 분리될 수 없기 때문에, 힌지 손실을 도입하여 일정 수준의 오류를 허용하며 마진을 유지합니다.

힌지 손실의 수식

\[h(t) = \max(0, 1 - t)\]

\(t = y \cdot f(x)\)는 예측값과 실제 레이블의 곱을 나타내며, 이때 \(y\)는 실제 레이블 (+1 또는 -1), \(f(x)\)는 모델에 의해 계산된 점수입니다.

  • \(t \geq 1\)일 경우, 즉 예측이 정확하고 마진을 넘어설 때 손실은 0입니다.
  • \(t < 1\)일 경우, 손실은 \(1 - t\)로 계산되며, 이는 예측이 정확하지 않거나 마진 경계 안에 들어온 경우를 의미합니다.

예를 들어, 어떤 데이터 포인트의 실제 레이블이 +1이고, 모델에 의해 계산된 점수가 0.8일 경우, \(t = 1 \times 0.8 = 0.8\)이고, 손실은 \(h(0.8) = \max(0, 1 - 0.8) = 0.2\)가 됩니다. 이는 마진 안에 들어와 있으므로 어느 정도의 손실이 발생합니다.

반면에, 실제 레이블이 -1이고, 모델 점수가 -1.2일 경우, \(t = -1 \times -1.2 = 1.2\)이므로 손실은 \(h(1.2) = \max(0, 1 - 1.2) = 0\)입니다. 이 경우 마진을 넘어서 예측이 잘 이루어졌기 때문에 손실이 없습니다.

힌지 손실 함수를 Python을 사용해 시각화하면 다음과 같습니다.

import numpy as np
import matplotlib.pyplot as plt

def hinge_loss(t):
    return np.maximum(0, 1 - t)

t = np.linspace(-2, 3, 400)
plt.plot(t, hinge_loss(t), label='Hinge Loss')
plt.xlabel('$t = yf(x)$')
plt.ylabel('Loss')
plt.title('Visualization of Hinge Loss')
plt.legend()
plt.grid(True)
plt.show()

이 그래프는 \(t\)값에 따라 손실이 어떻게 변하는지 보여주며, \(t \geq 1\)인 경우 손실이 0이 되는 것을 확인할 수 있습니다.

SVM에서의 힌지 손실

소프트 마진 SVM에서는 힌지 손실 뿐만 아니라 소프트 마진을 도입하는데, 일반적으로 오분류 혹은 아웃라이어 포인트들에 영향없이 강건한 결정경계를 찾기 위해 주로 사용됩니다.

  • 소프트 마진 SVM: 하드 마진 SVM의 일반화된 형태로, 완벽한 분류가 불가능한 실제 데이터를 처리할 수 있도록 슬랙 변수(Slack Variable)를 도입해 데이터 포인트가 마진 경계를 위반할 수 있게해서 모델의 일반화를 도모합니다.
  • 힌지 손실 함수: 예측이 틀렸을 때 손실을 계산하기 위해 사용하는 힌지 손실은 SVM의 핵심 요소 중 하나입니다.

alt text *출처: Medium Post

alt text *출처: Post from theaiedge

소프트 마진 SVM의 최적화 문제

소프트 마진 SVM은 다음과 같은 최적화 문제로 표현될 수 있습니다.

\[\min_{\beta, \beta_0} \left( \frac{1}{2} \| \beta \|^2 + C \sum_{i=1}^N h(y_i, f(x_i)) \right)\]

\(\beta\)는 모델 파라미터, \(C\)는 정규화 파라미터로, 모델이 데이터를 얼마나 잘 일반화할지를 결정합니다. 힌지 손실은 이 최적화 과정에서 각 데이터 포인트가 얼마나 잘못 분류되었는지를 측정하는 데 사용됩니다.

소프트 마진 SVM과 힌지 손실 함수는 머신러닝, 특히 분류 문제에서 중요한 도구로 사용됩니다. 본 논문에서 힌지 손실 역시 휴먼의 레이블링 혹은 판단이 항상 정확할 순 없기 때문에 일반화된 결정 경계를 찾고 그것을 기준으로 리워드 점수를 구하기 위해 사용된 것으로 보입니다.

References

[1] https://iq.opengenus.org/hinge-loss-for-svm/
[2] https://cs231n.github.io/linear-classify/
[3] https://medium.com/analytics-vidhya/support-vector-machines-svm-87841ab63b8

Previous: LFM | Meta - LLaMA 3 Next: Lean GitHub**

post contain ""

    No matching posts found containing ""