이 글은 LLM(Large Language Model. 대형언어모델) 학습 데이터 생성 방법을 간략히 정리한다.
LLM 모델 개발을 하면서, 가장 힘든 일 중 하나는 학습 데이터를 어떻게 확보하느냐는 것이다. 본인의 경우, 여러 시행착오를 거쳐, 다음과 같은 데이터 개발 전략을 사용했다.
- 허깅페이스 등 기존에 있는 데이터가 있다면, 이를 사용해 본다.
- 부족하다면, ChatGPT API등을 이용해, 재료가 되는 텍스트, PDF을 업로드하고, 훈련할 질문 답변 등 데이터를 생성한다.
- 비용이 비싸다면, LLAMA와 같은 오픈 LLM 모델을 사용해 훈련 데이터를 생성한다.
- 생성된 학습 데이터 중 이상 데이터를 체크해, 가능하다면, 문장 및 토큰 해석기로 자동 필터링하도록 한다.
- 사람이 샘플링해 이상 데이터를 체크, 제거한다.
- 데이터 종류 별 분포가 균형되도록 조정한다.
이 중에 QA 데이터셋을 학습하는 원리를 살펴본다. 다음 프로젝트는 원래 소피아 대학교의 AI 과정을 위한 것이었다.
대상 답변으로 사용되는 키워드를 식별하는 접근 방식은 RANLP2021 컨퍼런스에서 발표되었다. 이 아이디어는 이 복잡한 문제를 더 간단한 단계로 분할하여, 텍스트에서 객관식 답변을 생성하는 것이다. 이 방법은 텍스트에서 키워드를 식별하고 질문에 대한 답변으로 사용한다. 여기서는 문장에서 답변을 빈 공간으로 바꾸고 질문의 기본형식으로 사용한다.
생성된 훈련 데이터를 확인하면, 필터링되어야 할 부분들을 확인할 수 있다. 이를 처리한 후 모델 튜닝 및 학습에 사용하면 된다.
레퍼런스
- question-answer-generation: Question-answer generation from text
- question_extractor: Generate question/answer training pairs out of raw text.
- qag-web: Website of Question Answer Generation
- GenQuest-RAG: A Question Generation Application leveraging RAG and Weaviate vector store to be able to retrieve relative contexts and generate a more useful answer-aware questions
- question-generator
- lamini-ai/docs-to-qa
- microsoft/llm-data-creation: Model, Code & Data for the EMNLP'23 paper "Making Large Language Models Better Data Creators"
- facebookresearch/QA-Overlap: Code to support the paper "Question and Answer Test-Train Overlap in Open-Domain Question Answering Datasets"
- nalinrajendran/synthetic-LLM-QA-dataset-generator: Create synthetic datasets for training and testing Language Learning Models (LLMs) in a Question-Answering (QA) context
- night-chen/ToolQA: ToolQA, a new dataset to evaluate the capabilities of LLMs in answering challenging questions with external tools. It offers two levels (easy/hard) across eight real-life scenarios
- longluu/Medical-QA-LLM: Train LLMs on extractive Question-Answering in biomedical domain
- brmson/dataset-factoid-webquestions: WebQuestions QA Benchmarking Dataset
- ad-freiburg/large-qa-datasets: A collection of large question answering datasets
댓글 없음:
댓글 쓰기