작성
·
124
·
수정됨
0
llama 3 fine-tuning 을 위해 데이터셋을 구축하고 있습니다.
제가 가지고 있는 데이터는 마크다운 형식의 데이터 셋인데요,
현재 강의에서 사용하는 SFT 형식의 데이터 셋은 ### 를 통해 Instruction 과 Response 를 구분하고 있기 때문에 마크다운 형식의 데이터가 제대로 학습이 되지 않습니다.
제가 가지고 있는 데이터의 예시는 다음과 같습니다.
[{"text": "### Instruction: ## 제목입니다. \n ### 소제목 입니다. \n 콘텐츠 입니다. 다음 내용에 이어질 말은 무엇일까요? ### Response: 다음 내용에 이어지는 응답입니다."}, ... ]
이와 같은 데이터를 학습시키고 Response 를 받으면 다음과 같은 응답을 받게 됩니다.:
Input: ## 제목 \n ### 소제목 \n 다음 내용은?
Ouput: 내용은 다음과 같습니다: \n ### Instruction: ## 다음에 들어갈 제목 \n 컨텐츠 ..~~~ ### Response: ## 소제목 ~~~
이런식으로 "Instruction" 과 "Response" 도 마크다운 형식의 데이터로 인식하여 거의 모든 답변에 "### Instruction:" 와 "### Response:" 라는 텍스트가 추가되어 나타납니다.
1. 이러한 마크다운 형식의 데이터를 가지고 있는 경우 Instruction 과 Response 를 어떻게 구분 할 수 있을까요?
[{"system": " ", "Instruction": " ", "Response": " "}, ... ] 이러한 형식의 데이터로 학습 시킬 순 없을까요?
SFT 형태의 데이터가 아닌 다른 형태의 데이터로 학습시키는게 좋을까요?
답변 1
0
안녕하세요, 인프런 AI 인턴입니다.
마크다운 형식의 데이터를 가지고 있는 경우 Instruction과 Response를 구분하는 방법에 대해 말씀드리겠습니다.
마크다운 형식의 데이터에서 Instruction과 Response를 구분하고자 한다면, 특정 패턴(예: “### Instruction:”, “### Response:”)을 사용하여 데이터를 전처리하는 과정이 필요합니다. 실제 학습 데이터를 구성할 때는, 명확히 구분할 수 있는 식별자를 사용하여 Instruction과 Response 사이의 경계를 명확히 하고, 필요 없는 마크다운 표시(##
, ###
등)는 제거하거나 다른 식별 가능한 형태로 변환하는 작업이 필요할 수 있습니다.
[{"system": " ", "Instruction": " ", "Response": " "}, ... ]
이러한 형식의 데이터로 학습시킬 수 있습니다. 각 JSON 객체 내에 Instruction과 Response를 명확히 구분하여 기록하시면 됩니다. 이렇게 데이터를 구성하면 모델이 Instruction과 Response를 더 명확히 인식하고, 학습 과정에서 데이터의 구조를 인식하는 데 도움이 됩니다. 학습 데이터를 준비할 때는 이러한 구조적인 형태로 데이터를 전처리하여 모델에 입력하는 것이 좋습니다.
SFT(Supervised Fine-Tuning) 형태의 데이터가 아닌 다른 형태의 데이터로 학습시키는 것이 좋은지 여부는 목표하는 모델의 성능과 학습 데이터의 특성에 따라 달라질 수 있습니다. 일반적으로, 명확한 지도 학습 데이터가 모델이 특정 작업에 더 잘 맞게 학습하는 데 도움이 될 수 있지만, 데이터의 구조나 형태가 모델의 학습 능력을 저해하지 않도록 주의가 필요합니다. 다른 형태의 데이터로 학습시키기 전에는, 해당 데이터 형태가 학습 목표와 잘 어울리는지, 모델이 해당 데이터로부터 적절한 정보를 학습할 수 있는지 등을 고려해야 합니다.
중요한 것은 모델이 학습 과정에서 Instruction과 Response를 정확하게 구분하여 이해할 수 있도록 데이터를 최적화하는 것입니다. 데이터 전처리 단계에서 모델 학습에 적합한 형식으로 데이터를 조정하는 것이 중요합니다.
원하는 답변을 찾지 못하셨나요?
그럼 우측 하단의 ‘문의하기’ 에서 직접 문의해주세요.
최대한 빠르게 답변드리도록 하겠습니다!