최근에 매우 빠른 LLM의 개발과 함께 LLM과의 대화가 매우 많이 늘어나고 있다. 다양한 대화 애플리케이션에도 불구하고, Emotional Support Conversation(ESC)는 매우 유망한 곳이다.여기서는 사람들이 쉽게 자신의 경험과 우려를 공유하고 감정적 위로를 받는다. 최근에 LLM 기반의 Coneversation이 증가하고 있지만, 포괄적인 평가는 매우 어렵다.
현재 ESC 평가는 2가지 방식으로 평가하고 있다.
평가 방식
장점
단점
예시
text-based statistical metric
자동
가격, 시간 효율적
텍스트의 의미가 아닌 텍스트의 유사도 평가
BLEU, ROUGE
manual evaluation
수동
의미에 대한 파악이 확실
가격, 시간 비효율적 평가가 단조로움(특정 주제에 대해서만 대화)
사람과 AI의 대화
두 가지의 평가 방식에 대해 해결하기 위해 논문에서는 ESC-Eval Framework를 제안한다. Figure 1 에서 오른쪽을 보면 된다. 여기서 LLM에게 인간의 평가 방식을 입혀 효율적인 평가 방식을 입힌다. 이를 통해 전통적인 평가방식을 대체할 수 있을 것으로 보고있다. 여기서 제시하는 Framework를 보장하기 위해 2가지 요소가 중요하다.
다양한 사례에서 문제를 겪는 사람들에게로 수집한 role card, 평가 중 LLM 역할 수행을 하고 평가를 보장한다.
실제 사람의 행동을 반영하는 Chatbot으로, 실제 사람의 대화를 반영하여 객관성과 공정성을 보장한다.
2가지 요소를 달성하기 위해 2가지 방식을 취했다.
7개의 데이터셋으로부터 GPT-4를 이용하여 role card를 추출한다. 추출시 GPT4와 사람 판단을 포함하여 필터링을 하여 2,801개의 role card를 획득하였다.
Chatbot 구축을 위해 ESC-Eval을 위한 Chatbot을 개발한다. Qwen1.5를 fine-tuning하여 ESC-Role이라는 역할을 수행한다. 특히 이 모델은 GPT-4 보다 사람보다 유사하게 행동한다.
About ESC-Eval
ESC-Eval은 역할 수행 모델과 역할 카드를 활용하여 평가 중인 ESC 모델과 상호작용하고, 획득한 대화 데이터를 수동으로 주석 처리한다. 다양한 역할 카드와 신뢰할 수 있는 역할 수행 에이전트의 존재가 매우 중요하기에 이후 섹션에서는 이러한 두 가지 주요 요소의 신뢰성을 보장하기 위해 한 일에 대해 설명한다
세 개의 계층적 레이어와 37개의 카테고리로 구성된 분류 시스템을 먼저 구축한다. 그런 다음, 공개 데이터에서 역할 카드를 재구성하고 각 카테고리 내에서 역할 카드를 식별하는 방법을 사용한다. 3가지 단계로 구성된다.
Role Card Acquisition
오픈 데이터셋 수집
GPT-4를 이용하여 역할을 추출한 뒤, 저품질 데이터를 필터링
수동 annotation Process를 통해 High, Middle를 나눈다. 그리고 그에 대한 내용은 Table 9에 나타나있다.
ESC-Role
ESC 시나리오에 특화된 역할 수행 에이전트인 ESC-Role을 구축하기 위해, 일반 데이터와 ESC 데이터셋을 사용하여 모델을 훈련한다. ESC-Role은 인간처럼 행동하는 대화 모델을 목표로 한다.
데이터 수집 :Smile, ESConv, ExTES 데이터셋을 포함한 여러 ESC 시나리오 데이터에서 3,390개의 역할 수행 데이터를 수집했다. 추가적으로 Huggingface에서 제공하는 다중 회차 대화 데이터셋을 활용하여, ESC 및 일반 역할 수행 데이터를 포함한 총 14K의 데이터를 확보했다.
구현 및 평가 지표 :ESC-Role의 기본 모델로 Qwen1.5-14BChat을 선택하고, LoRA를 이용해 파라미터 효율적으로 미세 조정했다. 평가 지표로는 유창성, 일관성, 주제 일치, 감정 일치, 인간 유사성 등 6가지 기준을 설정하고, 수동 평가와 쌍별 비교 평가를 통해 모델의 성능을 측정한다.
평가 결과 : ESC-Role은 GPT-4와 Baichuan-NPC보다 ESC의 도메인 특화 지표에서 더 인간다운 성능을 보였다. 또한, 인간 평가에서는 ESC-Role의 대화가 실제 인간 대화와 구분하기 어려웠으며, GPT-4와 Baichuan-NPC보다 우수한 성과를 보였다.
Evaluation
평가에 사용된 14개의 모델은 다음과 같다.
Closed-source: GPT-4, ChatGPT
Open-source: Vicuna, llama3, WizardLM, Qwen1.5, Chatglm3, Yi
최근에 동아리에서 구현해야 할 기술에 대해 고민을 하고 있는데 범위가 상당하다 보니 데이터를 만들어서 진행하는 것은 어렵다고 판단했다. 그래서 데이터베이스에서 가져오는 방법을 고민하고 있으며 그중에서 NAACL에 대해서 찾아보다가 알게 되어서 논문을 읽어보았다.
논문링크 https://arxiv.org/pdf/2406.12430
Introduction
현실세계에서 사업과 관련된 상황에서 결정을 하는 것은 매우 중요한 일이다. 결정을 하기 위해서는 데이터 분석을 통해 가장 적절한 결정을 해서 목표를 달성하는 것이다. 일반적으로 결정을 하는 일은 3가지 과정을 요구한다.
결정에 필요한 데이터들을 분석하여 계획을 세운다.
관련된 필수적인 데이터를 검색한다.
데이터를 기반으로하여 걸 정한다.
여기서 2번과 3번 과정을 쉽게 하기 위해, 지난 몇 십 년간 결정을 도와주는 시스템을 구축했다. 하지만, 1번 단계는 사람이 도맡아서 하고 있다. 그래서 이 논문에서는 Large Language Model(LLM)을 이용해서 end-to-end 시스템을 구축한다.
이 시스템 구축을 위해 Decision QA 데이터를 구축했다. 이 데이터는 Language Model(LM)이 의사결정을 하도록 하는 데이터셋이다. 관련 내용은 아래에 자세하게 설명하겠다.
마지막으로 (1) 번 단계를 LM이 실행할 수 있도록 하는 것이 Retrieval Augmented Generation(RAG) 방식이었는데, 이전의 방식은 단일 정보만을 가져오는 방식보다는 보다 의사결정을 잘할 수 있는 plan-then-retrieval augmented generation technique, PlanRAG 방식을 구축했다. 간단하게 설명하면 3단계로 구성된다.
the planning step : 분석을 위해 필요한 정보들을 가져오는 데이터 스키마와 질문들을 생성한다.
the retrieving step : 분석을 위한 데이터를 검색
the answering step : 데이터를 기반으로 하여 결정하기
이에 대해서도 아래에 자세하게 설명하려고 한다. 논문의 기여는 다음과 같다.
Decision QA를 위한 벤치마크인 DQA를 제안한다.
PlanRAG라는 새로운 검색-증강 생성 기술을 제안하며, 이는 LLM(대형 언어 모델)의 의사 결정 능력을 크게 향상할 수 있다.
PlanRAG가 Decision QA에서 반복적인 RAG 기술보다 훨씬 효과적이라는 것을 입증했다.
About Decision QA(DQA)
Dataset
데이터는 무역 데이터를 기반으로 작성되었다. 무역 게임은 Enropa Universalis IV와 Victoria 3을 기반으로 데이터를 만들었다. 무역게임으로 만든 이유는 현실의 데이터는 구성하기 힘들기 때문이며, 이와 비슷한 무역게임으로 구성했다.
$d_{best}$ : 가장 좋은 결정
$Q$ : 의사결정과 관련된 질문
$D$ : Database
$R$ : Business Rule
위의 데이터를 이용해서 가장 이득을 취할 수 있는 방법을 찾는 것이다.
데이터베이스 형식은 2가지로 되어있다. Labeled Property Graph(LPG)(=Graph Database, GDB)와 Relational Database(RDB)로 구성되어 있다.
각각 301개씩 총 602개로 구성되어 있다.
Benchmark
Locating Scenario
이 시나리오의 데이터베이스는 4개의 테이블로 구성되어 있다.
트레이딩플로우와 노드국가는 간선, 트레이딩노드와 국가는 정점으로 그래프 데이터베이스로 표현할 수 있다.
비즈니스 규칙에 따라 열 값이 다른 데이터와 사용자 결정으로 계산된다.
사용자가 트레이딩 노드에 상인을 배치하면, 그 노드에서 해당 국가의 홈 노드로 흐름이 증가한다.
주요 변수는 국가(c), 트레이딩 노드(n), 출발 노드(src), 목적지 노드(dest), 홈 노드(h)이다.
목표는 ∆profit(c)를 최대화할 수 있는 트레이딩 노드를 선택하는 것이다.
Building Scenario
이 시나리오에서 데이터베이스 D는 관계형 데이터베이스(RDB) 일 때 4개의 테이블로 구성된다.
Demand와 Supply는 간선, Goods와 Buildings는 정점으로 간주하여 그래프 데이터베이스(GDB)로 쉽게 표현할 수 있다.
기본적인 비즈니스 규칙은 의사 결정자가 공장 건물 b를 확장하면, 해당 상품 g의 CO(g, b)가 증가한다는 것이다.
주요 변수는 상품(g)과 건물(b)이다.
Supply 집합을 Sup, Demand 집합을 Dem으로 나타내며, T D는 총 수요, T S는 총공급을 의미한다.
목표는 주어진 상품 g에 대해 CP(g)를 최소화하는 것이다.
About Plan-RAG
기존 RAG 기술은 데이터 분석 쿼리를 사용하여 데이터베이스 D에서 검색된 결과를 기반으로 주어진 ⟨Q, S, R⟩에 대한 최적의 결정을 도출하려고 한다. 한 번만 검색이 이루어지면 이를 단일 회차 RAG(single-turn RAG)라고 하며, 여러 번 검색이 이루어지면 반복 RAG(iterative RAG)라고 한다. PlanRAG 기술은 두 가지 유형의 추론을 사용하여 최적의 결정을 도출하려고 한다.
첫 번째는 계획 수립, 두 번째는 기존 RAG와 유사한 방식으로, 데이터 분석 쿼리를 통해 검색된 결과를 바탕으로 답변하는 것이다. PlanRAG는 계획과 재계획을 수행할 수 있는 단일 언어 모델을 사용하여, 별도의 모델을 사용하는 부작용을 줄였다. 이 모델은 ReAct(Yao et al., 2023)의 'Plan'과 'Re-plan' 지시문을 추가하여 프롬프트를 작성했다.
PlanRAG의 추론 과정은 (1) Planning, (2) Retrieving & Answering, (3) Re-planning의 단계를 포함한다.
Planning
LM이 입력으로 ⟨Q, S, R⟩가 주어지며 데이터 분석을 위한 초기의 계획을 생성한다. 초기 계획은 검색 절차에서 수행에 필요한 일련의 데이터들을 계획하는 것이다.
Retrieving & Answering
이전 RAG과 달리 ⟨Q, S, R⟩뿐만 아니라 초기 계획도 가치 입력된다.
Re-planning
초기에 세워진 계획이 문제 해결에 충분하지 않다고 생각이 되면 다시 계획하여 필요한 정보들을 더 가져오는 방식이다.
Experiments
Experimental Setup
모델들은 다음과 같다.
SingleRAG-LM → Single-turnLM
IterRAG-LM → Iterative RAG
PlanRG-LM → PlanRAG
PlanRG-LM w/o RP(Re-Planning)
모든 결정은 GPT-4로 생성되었으며 temperature = 0 그리고 LangCahin library로 구성되어 있다. 모든 실험은 0-shot으로 진행했는데 그 이유는 few-shot의 경우는 모델의 오버피팅을 야기하며, 현실에서는 예시가 주어지지 않기 때문이다.
Results & Analysis
Main Results
여기서 계획한 PlanRAG가 SOTA를 달성했으며, 표를 통한 결과는 다음과 같다.
Building score이 낮은 이유 : Building Scenario는 Location에 비해 더욱 긴 traversal을 요구하기 때문에 낮은 점수가 나왔다.
SingleRAG-LM이 낮은 이유 : 여기서 제시하는 문제들은 여러 turn을 요구하기 때문에 낮은 점수가 나왔다.
RP의 효과 : 다시 계획하는 것을 통해 PlanRAG-LM이 가장 좋은 점수를 달성하였다.
Analysis for SR and MR
데이터의 난이도에 따라 얼마나 문제를 잘 해결하는지에 대해 탐구했다. IterRAG-LM이 문제 해결을 위해 검색을 얼마나 했는지에 따라 데이터는 2가지로 나누었다. Single Retrieval, SR : 정보 검색을 한 번만 한 것(84개). 정보 검색이 쉬운 것이며 Multiple Retrieval, MR : 정보 검색을 여러 번 한 것(518개). 정보 검색이 어려운 것이다.
PlanRAG-LM은 SR 질문에서 IterRAG-LM보다 훨씬 더 우수한 성능 : SR 질문들이 단일 검색으로는 해결하기 어려운 경우가 많기 때문이다.
IterRAG-LM은 이러한 질문들의 난이도를 과소평가하여 단일 검색만 사용하려 했지만, 실제로는 여러 번의 검색이 필요한 경우가 많았다.
PlanRAG-LM은 계획 단계를 통해 질문의 난이도를 더 잘 이해하고, 계획에 따라 여러 번 검색을 수행하여 정확성을 크게 향상했다. MR 질문에서도 PlanRAG-LM이 더 체계적으로 검색을 수행하여 IterRAG-LM보다 더 효과적이다.
Rate of missed data analysis
PlanRAG-LM은 IterRAG-LM보다 더 효과적인 이유를 분석하기 위해 데이터 분석 누락 비율을 측정했다. Locating에서는 IV와 T Ptotal, Building에서는 CO와 PD를 기준으로 사용했다.
PlanRAG-LM의 누락 비율은 1.3%와 21.8%로 낮았고, IterRAG-LM은 3.3%와 33.2%로 더 높았다. 이는 IterRAG-LM이 완벽하게 추론을 수행하더라도 정확도가 PlanRAG-LM보다 낮을 가능성이 있음을 의미한다.
PlanRAG-LM은 Locating에서 98.7%의 정확도를 달성할 수 있지만, 실제 정확도는 그보다 낮았으며, 이는 추론(계획 포함) 자체가 매우 도전적인 작업이기 때문이다.
Analysis for failure cases
우리는 각 실패 사례를 다섯 가지 오류 카테고리로 분류한다:
CAN: 잘못된 후보를 고려하여 질문을 해결하지 못한 경우
MIS: 데이터 분석 누락
DEEP: 검색된 데이터나 방정식을 잘못 사용한 경우
QUR: 쿼리 생성 오류
OTH: 기타 오류 (예: 토큰 길이 제한 초과)
PlanRAG-LM은 두 시나리오 모두에서 CAN과 MIS 오류를 크게 줄였다. 이는 PlanRAG-LM이 Decision QA 질문을 더 잘 이해하고, IterRAG-LM보다 중요한 데이터를 더 잘 쿼리 할 수 있음을 의미한다. 또한, PlanRAG-LM이 두 시나리오 모두에서 IterRAG-LM보다 약간 더 많은 DEEP 사례를 가지고 있음을 주목할 수 있다. 우리의 관찰에 따르면, DEEP 오류는 CAN 또는 MIS 오류가 없을 때만 발생한다.
Anylsis for re-planning
PlanRAG-LM은 Locating 시나리오보다 Building 시나리오에서 재계획을 더 자주 수행한다. 네 번 이상 재계획이 이루어진 질문의 비율은 Building에서 훨씬 높다(30개 질문, 14.85%)가 Locating에서는 7개(1.75%)에 불과하다. 이는 원래 계획이 불충분할 경우 모델이 재계획을 수행한다는 것을 의미하며, 이는 Building에서 PlanRAG-LM과 다른 기술들 간의 성능 차이가 상대적으로 적은 이유를 설명한다. 또한, 재계획 횟수가 많아질수록 재계획으로 인해 향상되는 정확도가 감소한다는 Table 7의 결과와 일치한다.
Conclusion
복잡한 의사 결정 질문에 답하는 새로운 과제인 Decision QA를 제안했다. 이를 위해 DQA라는 벤치마크를 만들었으며, 301개의 데이터베이스 세트와 질문, 정답을 사용하여 구성했다. 또한, 검색 전에 계획을 세우고 계획이 충분하지 않을 경우 재계획을 수행하는 PlanRAG라는 새로운 RAG 기술을 제안했다
오늘은 RAG에 대해 좀 더 진화한 Self-RAG에 대해 알아보았고 페이퍼 리뷰를 적어보려고 한다.
논문링크 https://arxiv.org/abs/2310.11511
Introduction
최근의 State-Of-The-Art(SOTA) 모델들은 사실적 오류(할루시네이션 등)에 대해 방지하고자 Retrieval-Augmented Generation(RAG) 방식을 사용하고 있다. 하지만 이런 방식은 Large Language Models(LLMs)의 다재다능과 불필요한 정보들을 추가할 수 있기 때문에 오히려 문제가 생길 수 있다. 특히, 품질이 떨어지는 정보들을 가져올 수 있기 때문이다. 그래서 여기서는 Self-Reflective Retrieval-augmented Generation(SELF-RAG) 방식을 사용하고 있다. 이 방식은 간단히 설명해서 정보가 필요할 하는지에 대해 판단하고, 가져왔다면 정보가 문제를 푸는데 실질적으로 도움주는지에 대해 판단하는 시스템이다. 이를 통해 더욱 중요한 정보만을 가져와서 모델의 정확성을 향상하는 방식이다. 순서를 나열하면 다음과 같다.
Retrieval Token 생성 : 주어진 입력 프롬프트 + 이전 입력을 바탕으로 추가적인 정보 검색이 필요한지 판단한다.
검생된 문서의 처리 및 출력 생성 : 검색이 필요한 경우, Self-RAG은 여러 개의 검색된 문서를 처리한다.
Critique Token을 이용한 자체 평가 : 생성된 결과물에 대해 품질을 평가하여 가장 알맞은 결과물을 가져온다.
여기서 사용하는 inference algorithm은 다음을 할 수 있게 했다.
각 downstream task에 대해 융퉁성 있게 검색할 수 있다.
segment-level beam search를 이용해 모델의 선호도를 변화할 수 있다.
논문에서는 총 6가지 Task에 실험을 진행했다. Open-domain QA, Reasoning, Fact Verification, Long-from Generation 등등
Abuot Self-RAG
Retrieve Token & Critique Token
각 토큰에 대한 설명이다.
Problem Formalization and Overview
Inference Overview
SELF-RAG의 추론(inference) 과정은 다음과 같다.
Retrieval Token 평가: 주어진 입력 $x$와 이전 생성 $y_{<t}$에 대해, 모델은 검색이 필요한지 판단하기 위해 retrieval token을 디코딩한다. 검색이 필요하지 않으면 모델은 표준 언어 모델처럼 다음 출력 세그먼트를 예측한다.
검색 및 Critique Token 생성: 만약 검색이 필요하다고 판단되면, 모델은 검색된 문서의 관련성을 평가하는 critique token을 생성한다. 이 모델은 다음 응답 세그먼트를 생성하고, 해당 응답이 검색된 문서로부터 지원되는지 비평하는 또 다른 critique token을 생성한다.
전체 응답 평가: 마지막으로, 모델은 응답의 전체적인 유용성을 평가하는 새로운 critique token을 생성한다. 이러한 과정을 통해, SELF-RAG는 생성된 각 세그먼트가 검색된 문서와 어떻게 연관되는지를 스스로 평가한다.
병렬 처리: SELF-RAG는 여러 검색된 문서를 처리하고, 자체적으로 생성한 reflection tokens를 사용해 생성된 출력을 제어한다. 예를 들어, 그림 1에서는 문서 $d_1$이 처음 선택되고, $d_2$는 직접적인 증거를 제공하지 않으며($d_2$는 "Irrevant"으로 표시), $d_3$는 부분적으로만 지원되는 반면 $d_1$은 완전히 지원된다.
Training Overview
SELF-RAG의 훈련 과정은 다음과 같다.
Reflection Token 생성 훈련: SELF-RAG는 확장된 모델 어휘(원래 어휘 + reflection tokens)를 사용해 reflection tokens를 생성하는 방법을 훈련한다. 이를 위해 generator model $M$을 훈련하는데, 이때 retriever model $R$이 검색한 문서와 critic model $C$이 예측한 비평 토큰들이 함께 사용된다.
Critic Model 훈련: Critic Model $C$은 검색된 문서와 주어진 작업 출력의 품질을 평가하는 reflection tokens를 생성하도록 훈련된다. 이를 통해 모델은 검색된 문서가 관련성이 있는지, 출력이 해당 문서로부터 충분히 지원받고 있는지를 스스로 평가할 수 있게 된다.
Final Generator Model 훈련: Critic Model을 통해 학습된 데이터를 바탕으로, Final generator Model $M$은 기존 언어 모델 목표로 훈련되어, 추론 시 Critic 모델에 의존하지 않고도 reflection tokens를 자체적으로 생성할 수 있게 된다.
Training
여기서 2가지 모델을 훈련시킨다. Critic Model $C$와 Generator Model $M$ 2가지이다.
Training the Critic Model
Data collection for critic model : 사람이 하나하나 라벨링 하기에는 비용이 매우 많이 발생하기에 GPT4를 이용하여 라벨링을 진행했다. 데이터를 생성하는 지시문에 대해서는 부록을 참고하면 된다. 여기서 알아둬야 할 점은 Input과 output에서 여러 토큰과 그에 대해 필요한 정보들을 추가했다는 것이다.
Critic Learning : 이 목표는 우도(likelihood)를 최대화하는 방식으로 훈련되며, 주어진 입력에 대해 올바른 출력을 예측하는 확률을 최대화하는 방향으로 모델을 학습시킨다. 다음 토큰 예측에 대해 학습을 진행한다.
여기서 사용되는 Critic Model은 Llama2-7B 모델을 사용했다. 여기서 reflection token 카테고리는 GPT-4 기반 예측과 90% 이상의일치를 보여주었다. 이것은 상당히 높은 정확도로 문서의 관련성을 평가한다는 것이다.
Training the Generator Model
Data collection for Generator model : 밑의 그림을 보게되면 기본적인 데이터는 왼쪽이지만 Generator Model을 위해 오른쪽과 같이 데이터를 변형시킨다. 이러한 방식으로 데이터를 모았다.
데이터를 모으는 알고리즘은 다음과 같다.
Generator Learning : 여기서는 2가지를 예측한다.
target output 예측
Reflection token 예측(Critique, Retrieve)
Experiments
Results
without retrieval
SELF-RAG의 성능 우위: SELF-RAG는 모든 작업에서 감독 학습으로 미세 조정된 대형 언어 모델(LLM)보다 성능이 뛰어났으며, PubHealth, PopQA, 전기 생성(biography generation), ASQA와 같은 작업에서는 ChatGPT보다도 더 나은 성능을 보였다.
동시 연구 모델과의 비교: SELF-RAG는 CoVE(Dhuliawala et al., 2023)와 같은 다른 동시 연구 모델들보다 전기 생성 작업에서 우수한 성과를 보였다. SELF-RAG의 7B와 13B 모델이 이를 능가한 성과를 냈습니다.
with retrieval
RAG 모델 대비 우수성: SELF-RAG는 기존의 Retrieval-Augmented Generation (RAG) 모델들에 비해 대부분의 작업에서 더 나은 성능을 발휘했다. 특히 open-source 모델 중에서 최고 선능을 달성했다.
Citation Precision: SELF-RAG는 인용 정확도 측면에서 ChatGPT를 능가했다. 특히 ASQA 작업에서 SELF-RAG는 높은 인용 정밀도와 재현율을 기록하며, ChatGPT를 제외한 모든 모델을 압도했다.
Analysis
Ablation studies
No Retriever 모델은 검색된 문서를 사용하지 않고 표준 입력-출력 쌍으로만 훈련되며, SELF-RAG에 비해 성능이 크게 떨어진다. 이는 검색된 문서의 중요성을 나타낸다.
No Critic 모델은 Critic 없이 검색된 문서만 사용해 훈련된다. 이 모델도 성능이 떨어지며, Critic 모델이 성능 향상에 큰 역할을 한다는 점을 시사한다.
Effects of inference-time customize
No Retrieval는 검색 없이 추론을 진행하는 방식으로, 성능이 크게 떨어진다. 이는 필요할 때 검색을 하지 않으면 모델 성능이 저하될 수 있음을 보여준다.
Hard Constraints는 검색이 필요할 때 항상 검색을 강제하는 방식인데, 동적으로 검색을 조정하는 SELF-RAG 방식이 더 나은 결과를 보인다.
Retrieve Top 1은 검색된 문서 중 상위 한 개 문서만 사용하는 방식으로, ASQA와 PopQA에서 성능이 크게 떨어진다. 이는 상위 문서만이 항상 최선이 아님을 나타낸다.
Conclusion
SELF-RAG는 reflection tokens을 활용하여 추론(test) 시 모델의 동작을 세밀하게 조정할 수 있다. 여러 작업에서 다양한 평가 지표를 사용해 SELF-RAG를 평가한 결과, 더 많은 매개변수를 가진 LLM들이나 기존의 검색 기반 생성 모델들보다 성능이 우수하다는 점을 입증하였다. 이는 SELF-RAG가 기존 방식보다 효율적이며, 더욱 정확한 결과를 제공할 수 있음을 보여준다.
이 논문은 상당히 좋은 논문 같다. LLM에게 직접 생각을 하도록 유도해서 더욱 좋은 성능을 나타낸다. 하지만 모델의 편향성이나 아얘 없는 정보에 대해 어떻게 처리할지도 있는 논문도 나왔으면 좋겠다.
오늘은 Qwen 모델에 대해 공부를 하기 위해서 Qwen2 Technical Report를 읽고서 간단하게 요약하려고 한다. Qwen 모델에 대해 간단하게 알고 싶은 분들을 위해 작성한다.
Paper 링크 https://arxiv.org/pdf/2407.10671
Introduction
여기서는 0.5B, 1.5B, 7B, 72B, 57B-A14B(MoE) 총 5개의 파라미터가 각각 다른 모델에 대해 소개하고 있다. 모델은 각각 7T 토큰의 데이터셋으로 훈련이 되었다. 토크나이저, 모델 구조, 데이터셋, 실험 등에 대해 상세하게 서술하고 있으며 MoE 모델에 대해서 매우 자세하게 얘기하고 있다. 0.5B와 1.5B는 스마트폰, 이어폰과 스마트 안경에 적합하고 그 외의 모델은 GPU에 적합하다고 말하고 있다. 기본 모델과 Fine-tuned 모델에 대해서도 서술하고 있다.
Tokenzer & Model
Toeknzer
Tokenzier은 Byte-pair encoding(BPE) 방식을 채택하고 있다. 이를 통해 다국어를 지원할 수 있게 되었다고 한다.
151,643개의 ragular 토큰과 3개의 control 토큰을 갖고 있다.
Model
모델에서 사용하는 Dense Language Model과 Dense Langueage Model 4개를 혼합한 MoE 모델에 대해 설명하고 있다. Dense Model과 MoE 모델에서 사용되는 기술에 대해 설명하고 있다.
Qwen2 Dense Model
Grouped Query Attention(GQA) : Multi-head Attention 기법보다 더욱 효율적인 방식이며 GQA 방식은 KV 캐시를 사용하여 최적화한다.
Dual Chunk Attention with YARN : Qwen2의 context window를 확장하기 위해 사용했다.
Qwen2 MoE Model
Expert Granularity : MoE 레이어가 여러 개의 Feed Forward Network(FFN)을 포함하고 있다. 각각의 FFN은 MoE 역할을 수행한다.
Expert Routing : 모델에서 어떤 FFN(Expert) 활성화에 대한 메커니즘이다. 입력 데이터를 기반으로 적절한 전문가를 선택하여 작업을 처리하도록 하는 과정이다.
Expert Initialization : 밀집 모델의 가중치를 활용하여 전문가들을 초기화하는 방식이다.
Training
이 부분에서는 각 Pre-training, Post-training에서 사용되는 방식과 데이터에 대해 설명하고 있다.
Pre-training
Data
Qwen, Qwen1.5에서 사용된 데이터에 대해 더 향상을 시킨 데이터로 진행을 했다. 양, 품질 그리고 다양성의 부분에서 더욱 향상되었다.
Quality Enhancement : 모델과 휴리스틱 알고리즘을 이용해 저품질을 판단하여 필터링을 진행해 품질을 향상시켰다.
Data Expansion : 이전 데이터셋에 비해 코드, 수학 그리고 다국어 데이터에 대해 품질과 양을 매우 늘렸다. 여기에는 약 30개의 언어가 포함되어 있다.(영어, 중국어, 스페인어, 프랑스어, 독일어, 노어, 한국어, 일본어, 태국어, 베트남어 등)
Distribution improvement : 모델이 사람과 비슷하게 학습을 활 수 있도록 다양한 자료들을 가져왔다.
데이터양은 12T 토큰을 준비했지만 7T와 크게 성능에 대해 비슷하므로 양은 7T만큼 훈련을 진행했다. 하지만 0.5B 모델은 12T 양으로 훈련을 진행했다.
Training
Qwen2의 long-context capability를 향상하기 위해서 context 길이를 4,096에서 32,768개로 늘렸다. 또한 기본 RoPE를 10,000에서 1,000,000으로 바꾸었다. 학습 방식은 다음 토큰을 예측하는 방식으로 훈련을 진행했다.
Post-training
Data
Post-training data는 2가지 요소로 구성되어 있다.
Demonstration data : $D = \{(x_i,y_i)\}$
Preference data : $P = \{(x_i, y_i^+, y_i^-)\}$
여기서 $x_i$는 instruction, $y_i$는 satisfactory response, $y_i^+$ $y_i^-$는 각각 prefer choice와 그 반대를 의미한다. $D$는 SFT에 활용되며 $P$는 RLHF에 활용된다.
데이터 구성은 2가지 과정으로 구성되었다.
collaborative data annotation : large-scale instruction corpora에서 ontology를 추출하여 다양한 데이터 구성한다. 사람이 직접 주석을 달아 목표 응답$y_i$과 그에 대한 긍정적/부정적 대응$y^+_i, y^-_i)을 확보
automated data synthesis : 다양한 자동화된 전략을 사용해, 코드, 수학과 같은 여러 domain에서 annotation data를 확보함
Collaborative data annotation
Automatic Ontology Extraction : Ontology 추출을 위해 InsTag, an open-set fine-grained tagger를 사용한다.
Instruction Selection : 각 지시문은 태그가 주석으로 달린 상태에서 다양성, 의미적 풍부함, 복잡성 등을 기준으로 평가한다.
Instruction Evoluation : 지시문 데이터셋의 풍부함을 위해 self-evolution stratgy가 적용된다.
Human Annotation : 여러 반응이 생성되면 사람을 이용해 가장 선호되는 데이터를 선택한다.
Automated data synthesis
Rejection Sampling : 수학 그리고 수학과 관련된 task를 위한 방법이다. LLM을 이용해 추론 과정을 출력하도록해서 답을 산출하도록 한다.
Execution Feedback : 코딩 task를 위한 방법이다. LLM을 이용해 해답과 관련된 Test Case를 만들고 실행하여 평가하며 데이터를 만듭니다.
Data Repurposing : 문학 task에 대한 방법이다. Open-Domain(Wikipedia)에서 문학 작품을 수집하고, LLM을 사용해 다양한 수준의 지시문을 개발한다.
Constitutional Feedback : 미리 정의된 원칙을 기반으로 **대형 언어 모델(LLMs)**이 응답을 생성하도록 안내하는 과정을 의미합니다(Bai et al., 2022). 안전성 및 가치와 같은 지침을 따르게 하기 위해, 헌법 데이터셋이 구성
Training
Supervised Fine-Tuning(SFT)와 Reinforcement Learning From Human Feedback(RLHF)를 이용해 Post-Training을 진행했다.
Evaluation
실험은 매우 다양한 방면에서 진행되었다. base model, fine-tuned model에 대해서 다른 모델들과 함께 Benchmark를 진행했다. 실험 Table이 매우 많은 관계로 간단하게 가져와서 설명하려고 한다.
Base Model
각 테이블은 70B+, 7B+, <3B 이렇게 실험이 진행되었다. Phi-2는 2.78B 모델이다. 실험을 보게 되면 7B 이상 모델의 경우에는 모두 좋은 성능을 보였다. 하지만 <3B 모델의 경우 Phi-2는 추론 능력이 좋았지만, 그 외의 경우에는 Qwen2-1.5B 모델이 압도하는 모습을 볼 수 있다. 파라미터가 1B이상 적은 반면에 매우 좋은 성능을 보여주고 있다는 것이다.
Instruct Model
Open Benchmark
Instructed Model에서는 대체적으로 Qwen2 모델이 다른 모델과 Qwen1.5 모델을 압도하는 모습을 나타내고 있다.
이전 버전의 모델들과 비교했을 때도 매우 향상된 Mectric을 달성하고 있다.
Multilingual
여기서 각 언어 전문가를 통해 평가를 요청했다. 여기서는 1~5 점 사이로 점수를 매길 수 있으며 Claude가 가장 좋은 성능을 달성했으며 Qwen 모델도 충분히 좋은 성능을 달성했다.
Safety & Responsibility
다국어 안전성 평가를 통해 LLM이 다양한 언어에서 안전성에 대해 평가했다. 특히, 불법 행위, 사기, 포르노, 프라이버시와 관련된 주제에서 모델의 안전성을 테스트했다. Qwen2-72B-Instruct가 GPT-4 및 Mixtral-8x22B-Instruct보다 더 나은 성능을 보였지만. 그러나 특히 포르노와 같은 어려운 카테고리에서 모델이 더 안전하고 책임감 있게 개선될 여지가 있다고 판단한다.
Conclusion
Qwen2는 이전의 공개 가중치 모델들, 특히 그 전신인 Qwen1.5를 능가하며, 언어 이해, 생성, 다국어 능력, 코딩, 수학, 추론 등 다양한 벤치마크에서 독점 모델들과 경쟁력 있는 성능을 보여준다. 이번 업데이트에서는 특히 긴 문맥 처리, 다국어, 코딩, 수학 기능, 그리고 안전성 및 책임감에 중점을 두었다.
한국어의 능력도 괜찮은 걸로 보아서 사용하기에 괜찮지만 테스트 당시 언어 능력은 좋지만 지식은 좋지 않은 편이다.
프로그래밍 대회나 알고리즘 문제를 풀 때, 입출력 속도는 매우 중요합니다. 특히 파이썬은 다른 언어에 비해 입출력 속도가 느린 편이기 때문에, 기본 입출력 방법을 사용하면 시간 초과가 발생할 수 있습니다. 이 글에서는 파이썬에서 데이터를 빠르게 입출력하는 방법을 소개하겠습니다.
빠른 입력
기본적으로 파이썬에서는 input() 함수를 사용하여 입력을 받습니다. 하지만 이 함수는 내부적으로 버퍼링을 하지 않아 속도가 느립니다. 따라서 sys.stdin.readline() 함수를 사용하여 입력 속도를 향상시킬 수 있습니다.
import sys
data = sys.stdin.readline().rstrip()
sys.stdin.readline()은 한 줄의 입력을 빠르게 받아옵니다.
입력받은 문자열의 끝에는 줄바꿈 문자(\n)가 포함되므로, rstrip() 함수를 사용하여 이를 제거합니다.
매번 sys.stdin.readline()을 쓰는 것이 번거롭다면, input 함수를 재정의하여 사용할 수 있습니다.
import sys
input = sys.stdin.readline
data = input().rstrip()
이렇게 하면 기존의 input() 함수를 sys.stdin.readline()으로 대체하여 사용할 수 있습니다..
빠른 출력
파이썬의 print() 함수는 사용하기 편리하지만, 출력 속도가 느립니다. 특히 반복문에서 많은 양의 데이터를 출력할 때는 sys.stdout.write() 함수를 사용하는 것이 좋습니다.
import sys
sys.stdout.write('Hello World\n')
sys.stdout.write()는 문자열만 출력할 수 있으므로, 숫자를 출력하려면 문자열로 변환해야 합니다.
기본적으로 줄바꿈(\n)을 해주지 않기 때문에 필요하면 문자열 끝에 \n을 추가해야 합니다.
오늘은 Orion 중국회사에서 만든 다국어 LLM에 대해 리뷰를 진행해보려고 한다. 첫 모델 리뷰여서 어렵지만 진행해보려고 한다.
논문 링크 https://arxiv.org/pdf/2401.12246
Introduction
이 논문에서는 Orion-14B 모델에 대해 소개를 한다. 이 모델은 약 2.5 trillion (2.5T) token으로 구성되어 있는 다양한 데이터셋으로 훈련되었다. 데이터셋에서는 주요 언어는 영어, 일본어, 한국어가 있으면 나머지 언어들도 섞여있다. 이 모델은 다국어 능력에서 현재 오픈소스로 공개되어 있는 모델 중에서 최고의 성능을 보여주고 있다. 그리고 이 모델을 기반으로 하는 여러 가지 fine-tuned 모델에 대해서도 소개한다.
Data
데이터의 품질과 양에 따라 모델의 성능이 좌우되기에 데이터의 품질은 매우 중요하다. 그래서 이와 관련해서 총 3가지 파트로 훈련시킨 데이터에 대해 소개한다.
Data Source
Data Quality
Deduplication
Data Source
이전에 연구에서 10B 모델은 205B Token의 데이터를 필요로 했다.(2022) 하지만 이후 연구(2023)에서는 2.5T ~ 3.0T Token의 데이터를 필요로 한다. 이런 연구를 통해 데이터가 많으면 많을수록 좋다는 것이다.
데이터셋의 언어 구성
영어와 중국어 90%
한국어와 일본어 5% 이상
나머지 언어(스페인어, 프랑스어, 독일어) 약 4%
데이터셋의 언어체 구성
주로 서면 언어로 구성 및 구어 언어는 소수의 비중을 차지
데이터셋의 소스 구성
Data Quality
데이터의 질을 보장하기 위해서 4개의 방식을 사용했다.
Text normalization : 웹페이지에서 가져온 데이터는 HTML Tag가 많다. 여기서 Tag를 제거하기 위해 정규식이나 format parser를 사용해서 효과적으로 제거한다.
Harmful content removal : 인터넷에 있는 해롭거나 스팸 데이터를 제거했다. 2가지 단계를 통해 제거했다. 하지만 모두 삭제하는 것은 오히려 해로운 데이터에 대해 취약하기 때문에 소수의 데이터만을 남겨두었다.
키워드나 정규식을 사용해 해로운 데이터 찾아내기
deep learning-based model을 이용해 해롭다고 판단되면 삭제하기
Personal information removal : 이름, 전화번호 그리고 주소를 삭제하는데 rule-based 방식을 이용해 대체하거나 아얘 삭제했다.
Quality filtering : 많은 반복을 포함하는 텍스트에 대해 특정 규칙을 적용해 데이터를 필터링을 한다. 이후 N-gram perplexity model을 이용해 높은 perplexity 높은 텍스트를 제외
Deduplication
LLM 훈련 데이터는 여러 곳에서 가져오기 때문에 중복된 데이터를 가져올 확률이 높다. 중복된 데이터는 훈련에 부정적인 영향을 미칠 수 있기에 중복으 제거하는 절차를 개발했다. 절차는 다음과 같다.
각 문에서 핵심 단어와 구를 추출
해당 임베딩 벡터와 SimHash 벡터를 계산
DB의 벡터와 비교하여 특정 임계값을 넘는다면 중복으로 간주하여 삭제
또한, 특정 Evaluation Dataset을 가져와 데이터셋에 대해 Overfitting이 진행될 수 있으므로 Evaluation Dataset가 중복된다면 모두 제거해서 Evaluation Datset의 신뢰성을 향상시켰다.
Pretraining
Tokenizer
이 모델은 다국어를 사용하기 때문에 여러 언어에서의 word-level 과 subword-level을 필요로 한다. 그래서 여기서 byte-pair encoding (BPE) 알고리즘으로 구현된 SentencePiece를 이용한 Tokenizer를 만들었다. 이 Toeknizer는 99.99% 문자를 다룰 수 있다. 다양한 코퍼스를 구축하고 우리의 훈련 데이터 분포에 맞추기 위해, 우리는 훈련 코퍼스에서 다양한 유형의 텍스트를 선별합니다. 여기에는 영어, 간체 중국어, 번체 중국어, 일본어, 한국어, 몇몇 다른 언어, 그리고 희귀한 문자들이 포함된다. 표 1에서는 우리의 토크나이저와 다른 오픈 소스 토크나이저의 자세한 비교를 제공합니다. 이 비교에는 어휘 사전 크기와 압축 비율(CR)이 포함되며, 후자는 원본 데이터의 크기를 토크나이즈된 데이터의 크기로 나눈 비율로 계산한다.
Toknizer의 Vocab Size가 상당히 많은 것을 알 수 있고 그래서 CR의 수치도 다른 모델에 비해 훨씬 낮다.
Architecture
LLaMA2가 우수한 성능을 달성했기 때문에 LLaMA2 Architecture를 준수하며 여러 수정을 거쳤다.
토큰 수 84,608로 확장
Feed Forward Network(FFN) dimension 15,360 확장
이외에는 동일
Experiments Setup
GPU
8개의 NVIDIA H800 GPU를 장착한 11개의 서버로 구성된 클러스터
Freamwork
FlashAttention2를 Megatron-LM 통합하여 GPU당 초당 4,000-5,000 토큰의 훈련 속도를 달성
Hyper parameter
학습률 스케줄링:
워밍업 이터레이션 수: 2,000
최대 학습률(peak learning rate): 3e-4
최종 학습률(final learning rate): 3e-5
학습률 감소 방식: 코사인 스케줄
옵티마이저 설정:
옵티마이저: AdamW
β₁: 0.9
β₂: 0.95
가중치 감쇠(weight decay) 계수: 0.1
그래디언트 클리핑 임계값: 1.0
훈련 세부사항:
정밀도: BF16/FP32 혼합 정밀도
배치 크기(batch size): 1,408
스텝당 토큰 수: 약 5,700,000
Data Scheduling
대형 언어 모델(LLM)을 훈련하기 위해서는 수천억에서 수조 개의 토큰이 필요하며, 연구에 따르면 모델 크기보다 토큰 수의 증가가 성능 향상에 더 큰 영향을 미친다. 우리는 1,400억 개의 파라미터를 가진 Orion-14B 모델을 2.5조 개의 토큰으로 훈련하여 계산 효율성과 비용의 균형을 맞춘다.
특히, 훈련 데이터의 순서를 전략적으로 저절하는 데이터 스케줄링 전략을 도입하여 모델의 성능을 향상시켰다.
단계별 훈련 데이터 구성:
초기 단계 (0 ~ 600억 토큰): 웹 페이지와 뉴스 기사 등 일반 지식을 포함한 데이터 사용. 주요 언어는 영어와 중국어.
중간 단계 (600 ~ 1,100억 토큰): 교과서와 학술 논문 등 복잡한 지식을 포함한 데이터 비율 증가. 언어 다양성을 기타 언어로 확장.
최종 단계 (1,100 ~ 2,000억 토큰): 소스 코드 등 더 복잡한 데이터를 추가하여 지식의 깊이 확대.
언어 다양성의 확대: 훈련 초기에는 영어와 중국어를 중심으로 시작하여 일본어와 한국어 등으로 확장했다.
이러한 접근법의 효과를 검증하기 위해 훈련 과정에서 검증 세트의 손실 변화를 모니터링했다. 그 결과, 훈련 데이터 분포가 변경되는 시점(600억 및 1,100억 토큰)에서 검증 손실이 크게 감소하였으며, 이는 모델이 데이터의 다양성에 적응하고 있음을 나타낸다.
Orion-14B는 특정 데이터 스케줄링 전략으로 훈련된 최초의 LLM입니다. 평가 결과에 따르면, 이 모델은 초기 단계에서 언어 이해 작업에서 인상적인 성능을 보이고, 이후 단계에서 추론 및 학술 작업에서의 능력을 빠르게 향상시켜 우리의 데이터 스케줄링 정책과 일치합니다. 2.5조 개의 토큰으로 훈련된 Orion-14B는 2.6조에서 3조 개의 토큰으로 훈련된 다른 오픈 소스 모델과 비슷한 성능을 달성하여 우리의 데이터 활용 접근법의 효율성을 보여준다.
Fine-tuning
SFT(Supervised fine-tuning) Data
여기서 2가지 종류의 데이터를 사용한다. 사람이 직접 라벨링한 데이터와 오픈 소스 필터링된 데이터셋 2가지이다.
고품질의 데이터셋을 위해 라벨링 전문가 팀을 구성하여 데이터셋을 생성했다. 데이터셋의 품질 보장을 위해 helpfulness, truthfulness, and harmlessness를 준수하는 총 220,000개의 데이터셋을 생성했다.
사람이 모두 라벨링을 할 수 없으므로 고성능 LLM을 이용해 open-source filtered dataset을 구축했다. 원래 COIG, WildChat, OpenOrca, UltraChat과 같은 데이터셋을 포함하지만, Cleaning Process를 구현했다. 방식은 다음과 같다.
Rule-based filtering : 정규표현식을 사용하여 개인정보 및 민감한 데이터를 제거하는 필터링을 수행
Quality filtering : LLM을 이용해 품질에 대한 점수를 매기고 7점 이상의 데이터만 유지
Semantic deduplication : 텍스트 임베딩을 사용하여 유사도가 0.98 이상 데이터는 중복으로 간주하여 제거
위의 과정을 통해 약 630,000개의 데이터를 구했으며 총 850,000개의 SFT Dataset을 구성하였다.
Training details
LLM을 Fine-tuning하기 위해 Prompt Text 앞에는 <human>을, 응답에는 <assistant>를 헤더로 추가하였다.
Hyper parameter
옵티마이저(optimizer): AdamW
β₁: 0.9
β₂: 0.95
ϵ: 1e−8
시퀀스 길이(sequence_length): 4096
배치 크기(batch_size): 128
에포크 수(epochs): 3
총 샘플 수(total_samples): 50만 개 이상
학습률 스케줄링(learning_rate schedule): 초기 1,500 스텝에 걸쳐 최대 1e−5까지 점진적으로 증가
가중치 감쇠(weight_decay): 0.1
드롭아웃 비율(dropout_rate): 0.1
그래디언트 클리핑 임계값(gradient_clipping): 1.0
Evaluation
5.1 Standard Evaluation
LLM을 효과적으로 평가하기 위해, 우리는 표준 평가 세트를 시험 및 전문 지식과 언어 이해 및 일반 지식으로 분류한다. 비교를 위해 10B ~ 20B 사이의 가장 유명한 LLM을 선택하고 일관성을 보장하기 위해 OpenCompass와 LM-Eval-Harness와 같은 오픈소스에서 비교를 한다.
Professional Knowledge and Reasoning
대부분의 벤치마크에서 뛰어나지만, Gaokao 평가에서는 Qwen-14B에 약간 뒤처다. 이러한 결과는 Orion-14B가 복잡하고 전문적인 작업에 대해 매우 경쟁력 있고 강력한 모델임을 보여준다.
Language Understanding and Common Knowledge
HellaSwag, PIQA, WSC 작업에서는 Qwen-14B와 InternLM-20B에 약간 뒤처진다. 전반적으로, 결과는 Orion-14B가 다양한 자연어 이해 벤치마크에서 강력한 능력을 갖추고 있음을 나타낸다.
OpenCompass 리더보드에서는 평가 세트가 다섯 가지 카테고리로 구성되어 있다. 각 카테고리에 대한 요약된 결과는 Orion-14B는 평균 점수 64.4%로 가장 좋다. 특히, 시험, 언어, 이해, 추론을 포함한 네 가지 카테고리에서 다른 모델들을 능가하여 뛰어난 분석 및 문제 해결 능력을 나타낸다. 이러한 결과는 Orion-14B가 광범위한 인지 및 언어 작업에서 견고한 능력을 보유하고 있음을 시사한다.
5.2 Multilingual
훈련은 대부분이 중국어와 영어로 구성되어 있지만, 다국어 성능을 향상시키기 위해 한국어와 일본어도 추가했다. 영어와 중국어에 비해 일본어와 한국어의 양은 매우 적지만, 한국어와 일본어 성능도 매우 우수하며 결국 잘 아는 언어로 부터 지식이 효과적으로 전이되었음을 나타낸다.
일본어 벤치마크 데이터셋에서 좋은 성능을 나타냄 특히34B 모델보다 대체적으로 좋은 성능을 나타낸다.
한국어 데이터셋에서도 좋은 성능을 나타낸다.
특히34B 모델보다 대체적으로 좋은 성능을 나타낸다.
Fine-tuned Model Evaluations
사전 훈련된 기본 모델의 성능을 테스트하기 위해 표준 평가 데이터셋을 활용했다. 하지만 미세 조정된 모델의 성능 평가 방식은 기본 모델과 다르다. 이는 챗 모델이 주어진 프롬프트에 대한 응답을 생성하도록 설계되었다. 이는 특정 과제에 의존할 수 있다.
그래서 Chat 모델을 종합적으로 평가하기 위해 3가지 방식을 사용한다.
standard evaluation sets, similar to those used in the base-model evaluation
subjective datasets based on GPT-4 scoring
human evaluation
standard evaluation sets, similar to those used in the base-model evaluation
기본 모델에 비해 CMMLU와 MMLU에서 약간의 성능 저하가 있다. 이는 평가 프롬프트가 챗 모델보다 기본 모델에 더 적합하게 설계되었기 때문일 가능성이기 때문에 주관적인 평가지표와 함꼐 평가를 한다.
subjective datasets based on GPT-4 scoring
표 13과 표 14에 제시된 결과는 주관적 평가에서 Orion-14B-Chat의 성능을 강조한다. MT-Bench 평가에서 Orion-14B-Chat은 다른 모델들을 현저히 능가하여, 첫 번째 턴과 두 번째 턴 평가에서 모두 최고 점수를 기록하며 평균 점수는 7.37에 달했다. Orion-14B-Chat이 중국어 이해, 작문, 역할 수행, 전문 과제에서 특히 뛰어난 성과를 보였습니다. 이러한 결과는 다양한 대화 맥락에서 경쟁력 있는 성능을 입증한다.
human evaluation
"승리(Win)", "무승부(Tie)", "패배(Loss)"로 평가합니다. 총 14명의 사람이 3,562개의 질문을 평가했다.비교 모델은 Orion-14B-Chat, Qwen-14B-Chat, Baichuan2-13B-Chat이다. 표 15에 나타난 바와 같이, Orion-14B-Chat은 가장 많은 "승리" 표를 받아 인간 평가에서 뛰어난 성과를 입증한다.
Extension Work
특정 작업을 해결하기 위해 여러가지 전문화한 모델을 개발하였다. 그 모델들은 다음과 같다.
Orion-14B-Long: 이 모델은 200,000 토큰 이상의 긴 문맥 길이에 최적화되어 있으며, 긴 문맥 평가 세트에서 독점 모델과 유사한 성능을 보여준다 (Bai et al., 2023b; Dacheng Li and Zhang, 2023).
Orion-14B-INT4: 4비트 정수 가중치를 사용하는 양자화된 모델이다. 모델 크기를 70% 줄이고 추론 속도를 30% 증가시키면서도 성능 저하를 단 1%만 발생시킨다.
Orion-14B-RAG: 맞춤형 검색 증강 생성 데이터셋으로 미세 조정된 챗 모델로, 검색 증강 생성 작업에서 뛰어난 성능을 달성했다.
Orion-14B-PlugIn: 플러그인 및 함수 호출 작업에 특화된 챗 모델로, LLM이 플러그인 및 함수 호출 시스템으로 작동하는 에이전트 관련 시나리오에 이상적이다.
오늘은 따끈따끈한 LG Aimers 5기 후기에 대해 적어보려고 한다. 일단, 필자는 친구의 권유로 AI Hackerton 대회가 있다고 해서 참여하게 되었다. 보통 dacon에 있는 대회와 비슷해서 괜찮았고 온라인 AI 교육을 받으면 이전에 공부했던 내용들을 리마인드 할 수 있을 것이라고 생각했기에 참여하게 되었다.
또한, 이런것은 Bootcamp와 비슷한 느낌이다. 일반적인 Bootcamp는 내일배움카드를 발급받아서 사용해야하는데 이러면 내 소중한 기회(내일배움카드는 1회만 사용가능)가 날아갈 것 같아서 무료라고 하기에 신청한 것도 있다.
6월 중에 신청을 했고 자소서와 같은 것들은 필요없이 무작위로 선발하는 것인지 아니면, 선착순인지는 잘 모르겠지만 뽑혔다. 나는 자소서를 정말 간단하게 작성했던 것으로 기억한다.(워크넷) 근데 워크넷으로 뽑힌것은 아니었다. 그래서 자소서를 안 본것 같다.
Phase I
이제 온라인 해커톤에 참여하기 위해 기본적인 지식과 심화 지식들을 교육한다. 참여 교수님과 커리큘럼은 다음과 같다.
AI 윤리
Mathmatics for ML
행렬 분해, Optimizer, PCA
Machine Learning 개론
About ML, Bias and Variance
Supervised Learning
Classification, Regression
Deep Learning
DNN, CNN, RNN, Transformer 등
데이터셋 설명
등등을 가르쳤다. 특히 여기서 해커톤 데이터에 대한 설명을 해주는데 나는 주의깊게 듣지 않고 넘겼다.
사실 7월에 놀다보니까 들어야지 하다가 시간을 밀려서 1주일 전부터 거의 속독 수준으로 들어서 거의 머리에 남지 않은 것 같다. 특히 진도에 대해 각각을 정해주지 않다보니 자꾸 계획을 미루게 되었던 것 같다. 그래도 내가 Deep learning에 대해 어느정도 알고 있는 편이라 괜찮지만 정말 지식이 없는 사람이라면 힘들겠다는 생각을 한다. 선형대수학과 편미분을 알고 있어야 어느정도 이해가 갈 것이라고 생각한다. 그렇게 어찌저찌해서 Phase I을 모두 다 수강(틀어놓기..?)했고 98%를 달성해서 수료했다. 2%는 서명을 하는 공간인데 워크넷으로 신청한 사람이 아니라면 공란으로 비워도 된다고 했다.
Phase II
온라인 해커톤을 시작한다. 시작하기 하루 전날에 메일이 도착했다.
메일 내용은 다음과 같다.
이렇게 밑에 아이디와 비밀번호를 알려준다.
이런식으로 홈페이지가 되어 있고 대시보드에 들어가면 다음과 같은 화면이 나온다
사진과 같은 개인 Jupyter가 있다. 여기서 submission.csv 파일을 제출해서 점수를 얻게 된다. 근데 여기서 위의 페이지(RunBox)를 들어가는게 좀 미로같다. 그래서 나는 즐겨찾기를 해서 빠르게 접속했다.
제출방식은 다음과 같다.
전처리한 데이터를 통해 예측한 파일을 submission.csv 파일로 저장한다. 그리고 Upload를 하고 우상단에 제출버튼을 누르면 채점이 된다. 상당히 번거로웠던 것 같다. 이전에는 dacon에서 했던 걸로 아는데 왜 elice로 하는지는 잘 모르겠다.
풀이전략
일단 우리는 3명이서 진행을 했다. 3명이서 서로 바쁘다는 것을 인지하고 엄청난 시간을 투자하는 것이 아닌 경험을 목표해서 참여했다. 총 3가지 파트로 나눠서 진행했다.
데이터 전처리 1명
모델 출력 1명(나) (AutoML 사용)
데이터 시각화 1명
Metric : F1 Score
3명을 3파트로 나누어서 진행을 했다. 맨 처음에 특별한 데이터 전처리를 하지 않고 AutoML코드와 앙상블을 이용했을 때, 상당히 좋은 결과(0.156)가 나왔다.(이때 상위 90등이었던걸로 기억한다.) 여기서 여러가지 데이터 전처리를 사용했다.
PCA 기법
column importance
데이터 수치화
등등을 사용했다. Deep Learning은 사용하지 않았다. 거기까지 손을 뻗을 자신이 없어서 최대한 Machine Learning 기법과 여러 모델을 앙상블 하는 방식으로 진행했다. 그래서 0.170이라는 최대 점수가 나왔다. 아마 170등정도 했던걸로 기억한다.
다행히 수료기준은 0.1444를 넘기는 것이기에 다행이었다. 그래서 결국 LG Aimers를 수료할 수 있게 되었다.
최대한 힘을 빼고 괜찮은 결과를 얻을 수 있어서 좋은 경험이었다. Phase3을 진출하지 못한 것에 대해 아쉬움이 없는 것은 그렇게 열심히 하지 않았고 쏟은 시간도 그렇게 많지 않아서 그런 것 같다. 다음에 기회가 된다면 정말 진심으로 해보고 싶다.
오늘은 NLP 관련해서 Distinct-1/2/3 관련된 Metric에 대해 리뷰하려고 한다. 원래는 논문에서는 이와 관련하여 수식과 관련된 것이 작성되어 있을 줄 알았다. 하지만 Metric에 대한 수식이 아닌 Model에 대한 수식이다. 그래서 논문에 대한 리뷰를 하기에는 매우 옛날 지식이기 때문에 Metric에 대해서만 작성하려고 한다.
Distinct-N
Distinct-N 이 metric은 모델의 생성된 텍스트가 얼마나 다양하게 생성되는지를 측정하는 metric이다. 근데 정말 수식이 간단하다.
Distinct-1
유니그램에 대해 조사한다고 생각하면 된다.
만약 모델이 생성한 텍스트가 "I love apples. I love oranges."라고 하자.
분모 : 총 단어 수는 6개이며, 각각은 "I", "love", "apples", "I", "love","oranges"
분자 : 고유한 단어의 수는 4개이며, 각각은 "I", "love", "apples", "oranges"
따라서 Distinct-1 = 4/6 = 0.66
Distinct-2
바이그램에 대해 조사한다고 생각하면 된다.
만약 모델이 생성한 텍스트가 "I love apples. I love oranges."라고 하자.
분모 : 총 바이그램의 수는 5이며, 각각은 "I love", "love apples", "I love", "love oranges"
분자 : 고유한 바이그램은 3개이며, 각각은 "I love", "love apples", "love oranges"
Emotional Support(ES)는 care, concern, affection, interests, indiviauls feeling 등을 개념화하는 것이다. Emotional Support Conversation(ESC)는 Seeker에게 좋은 영향을 주는 것이다. 최근 연구되고 있는 ESC와 관련해서 매우 효능이 있는 Service이다. 하지만 이와 관련하여 LLM을 이용한 dialogue는 블랙박스이며, 왜 그러한 반응들을 산출했는지에 대해 알 수 없다. 그래서 ES에 대해서 dialogue등이 나오게 되는 과정을 Chain-of-Thought(CoT)방식으로 작성을 하면, 더욱 좋은 성능을 발휘할 것이라고 생각한다. 과정은 이렇게 시작한다.
seeker의 감정과 상황에 대해 파악한다.
emotion에 대해 이해한다.
적절한 strategy를 선택하며, 그 이유에 대해 서술한다.
이러한 방식을 사용하면, 신뢰할 수 있을 것이며, 좋은 대답을 나올것이라 기대하고 있다. 또한, CoT를 사용하는 이유들로는 그전에 ESC 관련 dataset은 CoT방식을 사용하지 않았기 때문이며, 비용이 매우 값비싸기 때문이다. 그래서 LLMs을 이용하여 CoT 과정을 만들도록 한다.
이 논문을 통한 기여는 다음과 같다.
Emotional support response generation의 해석에 대해 신뢰성을 증가하기 위해 strategy가 선택된 이유에 대해 CoT를 만들었다.
CoT를 포함한 첫번째 데이터셋이다.
데이터셋을 검증하기 위해 human evaluation을 적용했다.
첫CoT 데이터셋이므로 이후 연구에 대해 baseline을 제공한다.
ESD-COT Dataset Construction
데이터셋 생성과정은 다음과 같다.
ESD Contruction : ES와 관련한 다양한 situation을 생성하고 더 많은 전략을 이용해 dialogue를 생성한다.
ESD-CoT Construction : 먼저 생성한 dialogue에 대해 왜 그러한 전략을 선택했는지 CoT를 생성하고 CoT가 잘 생성되었는지 수동적으로 검증을 한다.( 유효성을 보증하기 위해서)
ESD Construction
여기서 situation- and strategy-guided dialogue generation scheme을 제시한다. 이를 통해 a situation-diverse, strategy-rich Emotional Support Dialogue dataset(ESD)를 생성한다.
처음에 situation과 enrich startegies를 생성하기 위해 기본적으로 ESConv Dataset을 사용한다. 이를 이용해 생성 가이드라인을 만들 수 있다.
Situation Generation
LLM의 In-context learning method + ESConv Dataset의 다양한 situation을 이용하여 더욱 많은 situation을 생성한다.
생성 Format은 다음과 같고 여기서 8개는 ESConv Dataset에서 선택을 하고 나머지 8개는 생성하도록 한다. 그럼 어떻게 선택되는 것인가? 약 1,300개의 situation 중에서 임의적으로 8개를 선택한다.이 때, 부적절한 상황이다. 불완전한 문장은 삭제하도록 한다.
이러한 방식을 이용해 2,943개의 new situation을 생성하였다.
Strategy Enrichment
ESConv Dataset에서는 8개의 전략이 선택되었다. 이 데이터셋에서는 중요한 전략들도 Other로 포함시켜버렸기 때문에 이 논문에서는 더 많은 전략을 사용하려고 한다. 전략은 3가지 기준에 따라서 추가하도록 했다.
Distinct : 이미 존재하는 전략과 구별되어 뚜렷한가
Understandable : 짧은 설명으로 간결하게 설명하여 이해할 수 있는가
Identifible : 이미 존재하는 전략과 구별이 가능한가
3가지 전략을 이용해 6가지 전략을 추가했다.
Summarize : 전체 대화를 요약 (vs Restatement or Paraprasing : 간단히 언급한것에 대해서만 요약)
Homework Assignment : 직접적으로 seeker가 무엇을 해야하는지 제시 ( vs Providing Suggestions : 간접적으로 seeker이 하는 것을 제시)
Imagery
Specify
Take Responsibility
Immediacy
Dialogue Generation
situation + strategies를 이용하여 Dialouge를 생성하도록 했다.
여기서 3가지 Part로 나뉘게 된다.
Description : task와 therapist의 역할에 대해 소개한다.
Reference : Reference Situation, Reference Dialogue : 특정 Situation과 그에 대해 성생된 Dialogue에 대해 예시를 제시한다. 이를통해 ChatGPT가 생성하도록 format을 만든다.
Instruction : Target Situation과 Enriched Stratgies에 대해 언급을 하고서, Task에 대해 다시 언급을 하고서 Dialogue를 생성하도록 지시한다.
Filtering and Postprocessing
생성된 대화 중에서 불완전한 데이터는 4가지 종류로 나뉜다.
부적절한 상호작용 dialogues
빈 발언의 존재
불충분한 전략 주석
전략과 발화의 불일치
이러한 문제를 해결하기 위해서 수작업으로 모드 filtering을 진행하였다.
Statistics of ESD
ESD Dataset의 질을 높여서 생성된 결과는 다음과 같다.
Diversity of Analysis
Situation Diversity에 대해 조사를 하였다. 여기서는 각 상황에 대해 자주 나오는 단어들에 조사를 하였다. 예를 들자면, 건강 문제에 대해서는 PTSD, Depression과 관련된 단어가 많이 나오는 것이다. 이에 대해 조사를 하였고, 다음은 그에 대한 그림이다.
Strategy Analysis
여기서는 Strategy의 사용 빈도에 조사하였는데, 새롭게 추가된 전략도 매우 자주 사용하는 것을 확인할 수 있다.
ESD-CoT Construction
모델의 해석력 부족은 모델에 대핸 사람의 신뢰에 영향을 미치기에 모델의 해석력을 높이는 것이 중요하다. 그래서 논문에서는 Emotional-focused and Strategy-driven Chain-of-Thought (ESCoT)를 제안한다. 이것은 사람의 상담 과정을 흉내내며, 전략과 그에 따른 응답을 선택하는 과정을 CoT 형식으로 Dataset이 구성되어 있다. CoT를 생성하기 위해서 총 5가지 과정을 이용한다.
Chain Creation
Emotion (EM) : seeker의 감정을 파악한다.
Emotion Stimulus (ES) : seeker의 감정의 원인에 대해 파악한다.
Individual Appraisal (AI) : 과거 경험을 토대로 seeker의 감정 자극 요소에 대해 평가한다.
Strategy Reason (SR) : 왜 그러한 전략을 선택했는지 이유에 대해 파악한다.
Response (RE) : 진행되고 있는 대화에 대해서 반응을 생성한다.
Manual Correction
데이터를 생성하고서 오류에 대해 파악을 하고 filtering을 진행했다. 생성된 데이터셋은 4가지로 오류가 있었다.
특정 예시 부족
명확하지 않은 감정 표현
사람에 대핸 장황한 평가
전략과 반응의 불일치
이러한 오류에 대해 이상한 데이터는 제거하여서 총 1,708개의 CoT를 얻었다.
Statistic of ESD-CoT
생성된 데이터셋에 대한 통계를 설명한다. 첫번째로는 발 화의 길이이다.
여기서 나타나는 특징은 다음과 같다.
EM은 감정에 대해 정의하므로 길이가 짧다.
IA는 ES보다 약 2배 정도 길다. 그 이유는 ES 내용에 대해 더욱 세세하게 서술한 것이 IA이다.
SR은 전략에 대해 추론한 과정을 설명하기에 매우 길다.
결과적으로 CoT가 모델의 해석력을 뒷받침해준다.
전략 선택에 대한 분포는 다음과 같은데 각 전략에 대해 최소 100개씩 포함되도록 하여 퍼져있지만, 특히 Affirmation and Reassurance(AR)와 Probiding Suggestions(PS)가 가장 많이 분포해있다.
빈도에 대해 파악을 했는데 각 Figure에 대해 설명한다.
Emotion : seeker의 감정으로 overwhelmed, uncertain, stressed가 많이 분포하고 있다.
Emotional Stimulus : job, life, partner 관련 단어가 가장 많이 포함하고 있어 타케팅된 도움을 제공할 수 있다.
Individual appraisal : unsure, lack이 자주 나타나는 것으로 자신의 상황과 관련해 job, life, partner과 관계에 대해 어려움을 겪고 있는 것을 알 수 있다.
Strategy Reason : provide, support, acknowledge가 많이 나타나는 것을 통해 supporter가 전략을 선택할 때, 무엇을 최우선으로 생각하는지에 대해 알 수 있다.
이러한 제안은 ES를 통해 seeker의 불안감을 완화하고 감정을 이해하도록 한다.
Experiments
실험 데이터셋은 train, valid, test를 각각 7:1:2 비율로 나누어서 진행하였다. 모델로는 3가지를 이용했다.
BlenderBot
DialoGPT
LLAMA2-Chat
Pre-trained Model을 이용하여 진행했다.
Metric
여기서 autmatic metirc(BLEU-n, ROUGE-L, Distinc-n)과 human eval(Coherence, Informativeness, Empathy, Accuracy) 2가지로 평가하였다.
Table 5은 실험결과이며 여기서 알 수 있는 것은 다음과 같다. LLaMA 2가 가장 좋은 성능을 나타내며, Parameter수가 증가할수록 좋은 성능을 나타낸다.
위의 성능을 바탕으로 LLaMA2를 이용해 실험을 진행했다.
Table 6을 통해 알 수 있는 실험결과는 다음과 같다.
B-n, R-L에서는 RE를 제외하고 나머지를 제거한 것이 좋은 성능을 나타냈는데 이것은 RE를 바탕으로 답변을 하다보니 다양한 답변을 하기보다는 제한된 답변을 한다( ES에서는 좋은 것이 아님)
그리고 모든 것을 포함하고 있는 모델(row 1)에서는 D-1, D-2 그리고 Human Evaluation에서 가장 좋은 성능을 타나냈다. 이것은 CoT 역할이 매우 좋고 중요하다는 것을 알 수 있다.
Conclusion
이 데이터셋이 매우 괜찮다고 생각하는 이유는 이전에 모델은 그저 전략 선택했을 뿐, 전략을 왜 선택하는지에 대해서는 언급이 없었다. 단지 데이터셋을 만들고 증강하는 기법에 대해서만 소개했다. 하지만 이 논문에서 아쉬운 점은 데이터셋을 구성할 때, 좀 더 체계적으로 했으면 좋겠다. 단어의 분포를 나타내는 것이나 데이터셋 평가에 대해서도 이전에서 나오는 논문 Figure가 아니어서 많이 낯설게 느껴졌다. 아직 Accepted 논문이 아니므로 수정되거나 발전될 것이라고 생각한다.