Preprint. Under review.
Chat Completion은 완성된 아웃풋(모델 반환 값, 주로 Open AI에서 메서드명으로 사용됨.)
(사견이므로 무시) 작년부터 FLAN 및 국내외 데이터셋을 가공하고, 정성적으로 평가해서 수정하는 모델들을 생성하고 있는데, 정성적으로 샘플링해서 체크해보면 학습에 부적절한 데이터셋이 상당한 것을 확인했습니다. 이런 저퀄리티 데이터(혹은 IT 데이터셋)들은 모델 학습에 전혀 도움이 되지 않거나 심각한 성능 저하로 이어질 수 있다는 것도 확인했습니다. 따라서, 잘 알려진 데이터셋도 가공해서 사용해야만 하는데 그 부분에서 sLLM으로 처리하려고 했으나 리소스가 너무 많이 들어서 BERT 기반 모델 혹은 머신러닝 모델들을 사용하고 있는데, 올해는 다른 연구팀들이 데이터셋 가공 및 정성적인 부분에 대한 내용에 집중하는 논문들이 많아질 것이라고 생각합니다.
[Overview]
규칙 기반 보상을 이용한 안전성(Rule-Based Rewards for Safety)
Section 4에서는 내용 및 행동 정책에 기초하여 강화 학습(RL) 훈련을 위한 안전 보상 함수를 구축하는 방법인 규칙 기반 보상(Rule-Based Rewards, 이하 “RBR”)에 대해 설명합니다. 또한, 보상 조합 모델을 적합하기 위한 코드와 합성 데이터 예시도 제공됩니다. 다음과 같은 RBR 프로세스를 통해 규칙 기반 보상을 효과적으로 설계하고, 조정하며, 평가할 수 있으며, 이런 과정들로 강화 학습 환경에서 안전성을 개선하고, 과도한 거부를 줄이며, 거부 스타일을 개선할 수 있다고 언급합니다.
[상세]
다음과 같은 일련의 과정을 통해 강화 학습 모델은 주어진 내용 및 행동 정책에 맞게 Chat Completion을 안전하고 정확하게 평가할 수 있게 되며, 과도한 거부를 줄이면서도 필요한 거부는 정확히 실행할 수 있다고 언급합니다.
Step 1: RBR 구성 요소의 설명
Step 2: RBR의 피쳐와 분류 프롬프트 정의
피쳐(Features)과 분류 프롬프트(Classification-Prompts)는 각 Chat Completion가 특정 규칙을 충족하는지 여부를 판단하는 데 사용되며, 모델이 정확하게 제안을 평가하고 그 결과를 활용하여 보상 함수를 구성하는 데 필수적입니다.
피쳐(Features) 정의
분류 프롬프트(Classification-Prompts) 사용
피쳐 계산
이런 피쳐와 분류 프롬프트는 RBR 시스템에서 중요한 역할을 하며, 모델이 각 Chat Completion을 정확하게 평가하고 적절한 보상을 할당할 수 있도록 하며, 이 단계는 전체 RBR 프로세스에서 데이터 처리와 모델 학습의 Precision를 높이는 데 기여합니다.
Step 3: 합성 데이터 생성(Synthetic Data Generation)
행동 정책을 기반으로 레이블이 지정된 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., 비선형 모델로)할 수 있습니다.
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)를 이용하여 모델이 안전하지 않은 요청에 대해 어떻게 반응해야 하는지를 결정하는 과정에 집중하며, 이 프롬프트 집합은 안전한 요청과 위험한 요청을 구분하고, 모델이 이에 따라 적절히 반응하도록 하였습니다.
4. 룰 기반 보상을 이용한 안전성 증진
본 섹션에서는 내용 및 행동 정책을 기반으로 RL 훈련을 위한 안전 보상 함수를 구축하는 접근 방법인 룰 기반 보상(Rule-Based Rewards, RBRs)에 대해 설명합니다. 또한 이 섹션에서 설명된 보상 조합 모델을 적합하기 위한 코드와 예시 합성 데이터도 제공됩니다.
[동기]
내용 및 행동 정책을 고려할 때, 연구자들은 안전 데이터 주석자를 위한 레이블링 지침을 준비해야 하는데, 연구자들은 좋은 Chat Completion을 정의하고 바람직하지 않은 피쳐이 있는 Chat Completion을 점수 매기는 룰의 목록을 작성해야 하며, 이는 다른 주석자들이 동일한 판단을 내릴 수 있도록 지침이 충분히 구체적이어야 합니다.
레이블링 가이드를 기반으로 한 일관된 레이블링이 필요함. [레이블링 색인마킹]
예를 들어, 하드 거부가 필요한 요청에 대해 데이터를 수집할 때, 하나의 간단한 룰은 다음과 같을 수 있습니다. “예시 룰: 짧은 Appology와 불가능성의 진술을 포함할 경우 가장 높은 7점의 Chat Completion 점수를 매기고, 바람직하지 않은 거부 피쳐(e.g., 판단적 언어)이 존재한다면 1점을 공제하며, 금지된 내용을 포함하는 거부 답변은 최저점인 1점으로 평가합니다.”
동기이자 서론에서 제시 된 일반적인 한계점
[RBRs의 요소]
[합성 데이터 생성]
행동 정책을 파이프라인으로 변환하여 레이블이 지정된 Chat Completion을 생성하는 과정을 개요화합니다. 입력 행동 정책, 프롬프트 세트, 그리고 정책에서 언급된 행동을 생성할 수 있는 모델(e.g., Helpful Only 모델)에 대한 접근만 필요합니다.
[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., 비선형 모델로)할 필요가 있는지를 판단할 수 있습니다.
결론적으로 RBR을 사용하여 프롬프트와 Chat Completion 사이의 피쳐를 기반으로 언어 모델의 안전성을 향상시키는 방법을 상세히 설명하며, 일련의 과정을 통해 모델 훈련 동안 보상의 Precision를 높이고, 안전하면서도 유용한 반응을 유도하는 데 중점을 둡니다.
5. 실험
본 연구에서는 몇 가지 핵심 질문들을 조사합니다.
5.1 베이스 라인
조사 과정에서 RBR로 훈련된 모델을 관련된 베이스 라인과 비교합니다.
5.2 평가 결과
RL 훈련 후의 결과는 때때로 높은 변동성을 보이기 때문에, 보고된 모든 평가 점수는 PPO 훈련의 끝 부분에 있는 5개의 체크포인트에서 평가하고 평균값과 표준 오차를 보고합니다.
Safety RBR의 제안을 사용하여 세 가지 내부 메트릭을 자동으로 평가하도록 설계되었습니다.
[추가 안전 평가 방법]
[휴먼 안전 평가]
이런 실험 설정과 평가는 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)\)는 일반적으로 다음과 같은 방법으로 계산되거나 정의될 수 있습니다.
이런 방법으로 \(\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)\)는 모델에 의해 계산된 점수입니다.
예를 들어, 어떤 데이터 포인트의 실제 레이블이 +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에서는 힌지 손실 뿐만 아니라 소프트 마진을 도입하는데, 일반적으로 오분류 혹은 아웃라이어 포인트들에 영향없이 강건한 결정경계를 찾기 위해 주로 사용됩니다.
*출처: Medium Post
*출처: 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