한국말로는 "지시학습 데이터셋" 이라고 한다.
GPT 에게 물어봤더니 널리 사용되는 데이터셋이 몇개 있다고 한다.
그걸 한번 알아보자.
Princeton & AI2의 논문 "Self-Instruct" 을 기반으로 만듬.
형식: { "instruction": ..., "instances": [{ "input": ..., "output": ... }] }
특징: instruction을 기반으로 GPT-3가 스스로 데이터를 생성하는 방식. 매우 다양한 작업 포함 (QA, 추론, 요약, 분류 등).
활용 팁: 변형을 통해 수천 개의 다양한 태스크를 만들 수 있어 확장성 좋음.
OpenAccess AI Collective가 만든, Orca 모델 학습을 위한 dataset
형식: Microsoft의 FLAN, Dolly, ShareGPT 등 다양한 소스 기반. system_prompt, user, assistant 구조 포함.
특징: 더 현실적인 멀티턴 대화 데이터와 reasoning task가 많음.
활용 팁: Llama 계열 모델이나 복잡한 멀티턴 instruction-tuning에 적합.
Google FLAN (T5/PaLM용 대규모 mixture dataset)
형식: 다양한 task 별 포맷 (input, target 중심). HuggingFace t5_task_prefix 형식 사용.
특징: 학습 task 종류가 매우 다양하고 실제 benchmark task 기반 (MMLU, GSM8K 등 포함).
활용 팁: instruction-following generalization에 가장 강력. FLAN-T5나 PaLM 스타일 모델에 적합.
이름 | 구성 형태 | 특징 | 사용 모델 예시 |
---|---|---|---|
FLAN | Task mixture | 가장 범용적, 고성능 | FLAN-T5, PaLM, LLaMA3 |
OpenOrca | 멀티턴 대화 + 추론 | 고품질, 대화형 추론 task | Nous-Hermes, LLaMA3, Mixtral |
Self-Instruct | 단일 instruction | 간단하고 빠른 학습 | Alpaca, LLaMA2-lite 등 |
https://huggingface.co/datasets/Open-Orca/OpenOrca
대화형 AI 모델을 개선하기 위한 데이터셋으로, 대화 기반 태스크에 강점을 가지고 있음.
자연스러운 대화체 모델링에 집중하기 때문에 질문-응답뿐만 아니라 연속적인 대화 흐름을 다룰 수 있다고 함.
결국 ollama 까지 오는구나...
import requests
def ask_openorca(prompt, model='openorca'):
response = requests.post(
'http://localhost:11434/api/generate',
json={
'model': model,
'prompt': prompt,
'stream': False
}
)
return response.json()['response']
# 입력 텍스트
context = "물은 수소 2개와 산소 1개로 이루어져 있습니다."
# 질문 생성 프롬프트 구성
prompt = f"""다음 문장을 읽고 3개의 질문을 생성하세요.
문장: "{context}"
질문:"""
# OpenOrca 호출
output = ask_openorca(prompt)
print("🔎 생성된 질문:\n", output)
다운로드 받은 TinyLlama-1.1B-Chat-v1.0 모델을 OpenOrca 로 질문/대답 을 만들어서 훈련하는 걸로 결정!