데이터셋/합성데이터

Scaling Synthetic Data Creation with 1,000,000,000 Personas 논문 (합성데이터)

jinuklee 2024. 7. 6. 18:33

페르소나 hub라는 합성데이터 방법론을 제시한다.

간단한 정의 - 웹데이터로부터 10억개의 페르소나를 통해 자동으로 조정된(curated) 모음

이 페르소나 hub를 통해 합성데이터 생성시 다양한 시나리오에서 다양한 합성데이터의 생성을 가능하게 한다.

또한 이 방법을 통해 생성해낸 수학, 논리적인 추론 문제, instruction 등에 대한 유스케이스를 통해 얼마나 효과적인지에 대한 평가 또한 제공한다.

 

기본적으로 sampling(llm의 temperature 같은) 없이 합성데이터를 만들 때 프롬프트 한개당  LLM은 하나의 인스턴스만을 생성할수 있다.

(애초에 기존의 sampling 같은경우 본질적인 한계로 다양한 데이터를 생성해내지 못한다)

 

따라서 합성데이터를 만들기 위해서 매우 많은 양의 다양한 프롬프트가 필요한데 기존의 2가지 방법에는 instance-driven, key-driven이 존재한다.

 

instance-driven

데이터 합성 프롬프트의 다양성을 위해 seed corpus에 중점을 맞춤

하지만 seed corpus를 넘어서는 합성데이터를 만들기는 어려운 한계점이 존재

 

key-driven

데이터 합성 프롬프트에 합성 데이터에 포함하기를 기대하는 주제(subject), 토픽 또는 지식을 포괄하는 키 포인트(또는 개념) 목록을 큐레이션하여 다양화

https://arxiv.org/abs/2402.13064

 

Synthetic Data (Almost) from Scratch: Generalized Instruction Tuning for Language Models

We introduce Generalized Instruction Tuning (called GLAN), a general and scalable method for instruction tuning of Large Language Models (LLMs). Unlike prior work that relies on seed examples or existing datasets to construct instruction tuning data, GLAN

arxiv.org

https://arxiv.org/abs/2403.02333

 

Key-Point-Driven Data Synthesis with its Enhancement on Mathematical Reasoning

Large language models (LLMs) have shown great potential in complex reasoning tasks, yet their performance is often hampered by the scarcity of high-quality and reasoning-focused training datasets. Addressing this challenge, we propose Key-Point-Driven Data

arxiv.org

위와 같은 두 방법은 결국 내재된 한계가 있는데 이를 위해 10억개의 페르소나를 합성데이터 프롬프트와 결합해 합성 데이터를 형성하기 위한 persona hub(1B persona)를 제공한다.

 

10억 개의 페르소나는 세계 지식의 분산된 운반체(Carrier)로 간주될수 있는데 각각의 페르소나 개인은 그들 고유의 지식, 경험, 흥미, 성격(knowledge, experience, interest, personality, profession)와 연관지어 생각될수 있다. 이를 통해 key나 corpus 중점이 아닌 어떤 합성데이터의 생성에든 페르소나가 관여할수 있다.

원문 말 :(personas can be combined with almost any data synthesis prompt) 

 

페르소나가 합성프롬프트에 어떻게 관여하는가에 대해

위의 그림은 world of warcraft라는 게임의 npc를 만들기 위한 합성프롬프트와 3가지 페르소나의 결합을 나타내는데

와우라는 게임에 대한 설명,예를 들어 mmorpg에 주요 캐릭터, 스토리 배경, 월드에 대한 설명과

도시의 풍경을 찍으러 유랑하는 포토그래퍼, 인생에서의 희생, 고난을 이해하고 있는 퇴역군인과 같은 각각의 페르소나가 wow게임에 존재한다면 어떤 NPC가 될까에 대한 프롬프트와 결합해 그에 따라 LLM이 생성하는 synthetic 결과를 보여준다.

 

이러한 합성데이터 생성에 거의 대부분 페르소나가 관여할수 있는데 이는 LLM의 강력한 roleplay 능력에 기반을 둔다.

관련자료

https://arxiv.org/abs/2405.02501 https://arxiv.org/abs/2307.05300

 

 

하나의 페르소나로 다른 페르소나를 얻는 방법

 

텍스트를 통해 페르소나를 얻는 방법

10억개의 페르소나를 얻는 과정은 꽤나 간단한데 

하나의 페르소나를 "주어진 페르소나와 가까운 관계에 있는 자는?" 과 같은 프롬프트와 결합해 LLM에 입력하는 과정, 어떤 텍스트 프롬프트를 입력하고 "이러한 [텍스트]를 [좋아할 것,읽을 것, 싫어할것, 그외 행동] 같은 자는?"등을 통해 다른 페르소나를 쉽게 얻을 수 있다.

또한 페르소나와 결합하는 합성프롬프트를 제로샷, 퓨샷 등의 variant를 줄 수 있는데  이를 통해 더 다양하고 효과적으로 합성 데이터를 생성하는게 가능하다

 

아래는 실제 유스케이스 사례이다

50,000개의 수학 문제 math problems

50,000개의 instruction

10,000개의 게임 NPC

50,000개의 논리적 추론 문제

10,000개의 지식이 풍부한 텍스트

5,000개의 도구 (function)

유스케이스: 수학

 

유스케이스 - tool (function)