MAAL-8B 모델을 잘 사용하고 있습니다. 학습을 해보고 싶은데 데이터 포맷을 어떻게 구성해야 하나요?

#2
by Kim3 - opened

모델을 추가적으로 학습해 보고 싶은데 데이터 포맷을 어떻게 구성해야 하나요?
혹시, 학습 데이터 템플릿을 공개해 주실 수 있나요?

maum-ai org

안녕하세요, 학습 데이터 템플릿의 경우 meta-llama/Meta-Llama-3-8B-Instruct와 같은 포맷을 사용하고 있습니다.

https://huggingface.co/blog/llama3#how-to-prompt-llama-3
위 링크에 에 나와있듯이

<|begin_of_text|><|start_header_id|>system<|end_header_id|>

{{ system_prompt }}<|eot_id|><|start_header_id|>user<|end_header_id|>

{{ user_msg_1 }}<|eot_id|><|start_header_id|>assistant<|end_header_id|>

{{ model_answer_1 }}<|eot_id|>

여기에 system_prompt, user_msg_1, model_answer_1 부분을 학습할 데이터로 채워주면 됩니다. (system prompt가 없을 경우에는 system 부분을 제거)

e.g. no system prompt 가정

<|begin_of_text|><|start_header_id|>user<|end_header_id|>

1 더하기 1은?<|eot_id|><|start_header_id|>assistant<|end_header_id|>

1+1 = 2입니다.<|eot_id|>

답변해주셔서 감사합니다. 추가 질문이 있어 댓글 남깁니다.

우선 LoRA로 한 분야의 지식을 학습시키려고 합니다.

  1. 위의 탬플릿 처럼 Q&A 형식으로 학습 데이터를 구축하면, 지식이 학습되는지 궁금합니다.
  2. 보통 데이터 셋은 어느 정도 구축해야 하는지?
  3. 적절한 epochs이나 batch_size가 몇 정도 되는지?

공부하면서 해보려는데 팁을 좀 주시면 감사하겠습니다.

maum-ai org
  1. "지식의 학습" 정의에 따라 좀 다를것 같긴 하지만, 기본적으로 위의 템플릿을 이용해 Q&A 형식, 지시문 형식 등으로 학습 데이터를 구축하면 지식이 학습됩니다.
  2. 보통 데이터셋은 많으면 많을수록 좋습니다. 도메인에 따라 다르긴 하지만, 최소 1만건 이상, 적어도 1천건 이상은 구축하면 좋습니다. 이보다 적을 경우에는 학습보다 RAG와 같은 방식을 사용해 지식을 가져오는것을 추천합니다.
  3. epoch와 batch_size는 하이퍼파라미터 튜닝의 영역이기 때문에, 적절함의 정의가 어렵습니다. 그래도 예시를 드리자면, fine-tuning이라면 한 3epoch 정도를 진행하고 (batch size는 gradient accumulation을 활용해서 32~256 사이) 1, 2, 3번째 epoch 모델의 성능을 비교해보고 가장 잘나오는 셋업을 찾아가며 사용해보시면 좋을 것 같습니다.

친절한 답변 감사합니다.

MAAL-8B에 RAG방식으로 마크다운 테이블 형식을 전달하여 정보를 가져오려고 합니다. 마크다운이나 마크다운 테이블을 이해하지 못하는 것 같습니다. MAAL-8B가 잘 이해하는 데이터 포맷 (e.g json, yaml, ..)이 있을까요?

Sign up or log in to comment