daily_aiary_v6는 AIary 프로젝트에서 하루 단위 육아일기 생성을 위해 fine-tuning한 한국어 KoBART 기반 sequence-to-sequence 모델입니다.
이 모델은 여러 개의 짧은 한줄일기 입력을 받아, 보호자나 교사가 읽기 좋은 자연스러운 한국어 하루일기 문단을 생성하도록 학습되었습니다. 최종 모델은 kobart_student_round5 checkpoint를 기반으로 하며, 실제 서비스 입력에 가까운 짧은 메모체 한줄일기 분포를 반영한 realistic SFT 데이터를 추가 학습하여 생성 품질을 개선했습니다.
현재 repository에는 최종 추론에 필요한 모델 파일과 tokenizer/config 파일만 공개되어 있으며, 원본 학습 데이터, 중간 checkpoint, 세부 실험 로그는 포함하지 않습니다.
Model Details
항목
내용
Repository
bibleme/daily_aiary_v6
Model directory
kobart_student_round5_realistic_daily
Model name
kobart_student_round5_realistic_daily
Model type
Korean Seq2Seq / KoBART fine-tuned model
Base model
gogamza/kobart-base-v2
Language
Korean
Main task
여러 개의 한줄일기 입력을 자연스러운 하루일기 문단으로 생성
Framework
Hugging Face Transformers, PyTorch
Intended Use
이 모델은 육아 기록 서비스 또는 어린이집/보육 기록 서비스에서 짧은 한줄일기 여러 개를 입력받아, 보호자나 교사가 읽기 좋은 한국어 하루일기 문단을 생성하기 위해 학습되었습니다.
주요 사용 목적은 다음과 같습니다.
사진별 짧은 메모를 하루 단위 일기로 통합
여러 장면을 자연스러운 흐름의 문단으로 정리
따뜻하고 차분한 육아/보육 기록 문체 생성
입력 장면 수에 따라 하루일기 문장 수를 동적으로 조절
반복 호출이 많은 하루일기 생성 단계에서 GPT API 의존성 완화
Out-of-Scope Use
이 모델은 다음 목적에는 적합하지 않습니다.
의료, 발달, 안전, 법적 판단 등 고위험 의사결정
아이의 심리 상태나 발달 상태를 진단하는 용도
사실 검증이 필요한 공식 기록 자동 작성
민감한 개인정보를 포함한 입력을 별도 보호 조치 없이 처리하는 용도
입력에 없는 사건을 사실처럼 확정해야 하는 서비스
생성 결과는 육아 기록을 보조하기 위한 초안으로 사용해야 하며, 중요한 기록에는 사람의 검토가 필요합니다.
Input Format
입력은 [문장수: N~M문장] 힌트와 [한줄일기] bullet 목록으로 구성됩니다.
text
1[문장수: 3~5문장]
2[한줄일기]
3- 왕관 쓰고 신난 하루
4- 다 같이 스트레칭하며 힘냈어요
5- 반짝이는 망토 입고 슈퍼히어로 놀이
입력 한줄일기는 실제 사용자가 작성할 법한 짧은 메모체 문장, 사진 기반 캡션, 육아 상황 요약 문장을 가정합니다.
Output Format
출력은 한국어 자연문 문단이며, 일반적으로 입력에 포함된 문장 수 힌트에 맞춰 생성됩니다.
왕관을 쓰고 신나게 놀이하던 모습이 참 밝아 보였다. 반짝이는 망토까지 더해져 슈퍼히어로가 된 듯한 분위기가 느껴졌다. 친구들과 함께 스트레칭을 하며 몸을 쭉 펴는 시간도 즐겁게 이어졌다. 작은 놀이와 움직임이 어우러져 활기찬 하루로 남았다.
How to Use
현재 모델 파일은 repository root가 아니라 kobart_student_round5_realistic_daily 하위 디렉터리에 업로드되어 있습니다. 따라서 from_pretrained 사용 시 subfolder 옵션을 지정해야 합니다.
python
1from transformers import AutoTokenizer, AutoModelForSeq2SeqLM
23repo_id ="bibleme/daily_aiary_v6"4subfolder ="kobart_student_round5_realistic_daily"56tokenizer = AutoTokenizer.from_pretrained(repo_id, subfolder=subfolder)7model = AutoModelForSeq2SeqLM.from_pretrained(repo_id, subfolder=subfolder)89prompt ="""[문장수: 3~5문장]
10[한줄일기]
11- 왕관 쓰고 신난 하루
12- 다 같이 스트레칭하며 힘냈어요
13- 반짝이는 망토 입고 슈퍼히어로 놀이"""1415inputs = tokenizer(16 prompt,17 return_tensors="pt",18 truncation=True,19 max_length=768,20)2122outputs = model.generate(23**inputs,24 max_length=320,25 num_beams=4,26 no_repeat_ngram_size=3,27 early_stopping=True,28)2930print(tokenizer.decode(outputs[0], skip_special_tokens=True))
Round1~Round5는 synthetic/hybrid self-training 기반의 반복 개선 과정이며, Final realistic 단계는 실제 서비스 입력 분포에 더 가까운 realistic SFT 단계입니다.
Training Data Lineage
Round1부터 Final realistic 모델까지의 학습 데이터 흐름은 다음과 같습니다.
단계
모델
실제 학습에 들어간 데이터
Round1
kobart_student_round1
GPT teacher가 만든 anchors 2,000개
Round2
kobart_student_round2
anchors 2,000개 + round2 fine-tune 데이터 4,692개 = 총 6,692개
Round3
kobart_student_round3
anchors 2,000개 + round3 fine-tune 데이터 4,532개 = 총 6,532개
Round4
kobart_student_round4
anchors 2,000개 + round4 fine-tune 데이터 4,529개 = 총 6,529개
Round5
kobart_student_round5
anchors 2,000개 + round5 fine-tune 데이터 6,234개 = 총 8,234개
Final realistic
kobart_student_round5_realistic_daily
realistic final train 1,095개, eval 58개
요약하면, Round1~Round5는 GPT anchor 데이터와 student 생성물, GPT rewrite 데이터를 함께 활용한 반복 학습 과정입니다. Final realistic 단계에서는 실제 서비스 입력에 가까운 짧은 메모체 한줄일기 분포를 반영하여 최종 SFT를 수행했습니다.
Final Realistic Dataset
최종 kobart_student_round5_realistic_daily 학습 및 평가 데이터 구성은 다음과 같습니다.
Split / source
Count
GPT realistic train
950
GPT realistic eval
50
Review train unique
29
Review train oversampled
145
Review eval unique
8
Final train
1,095
Final eval
58
최종 train 데이터는 GPT realistic train 950개와 review train unique 29개를 5회 oversampling한 145개를 합쳐 총 1,095개로 구성했습니다. 최종 eval 데이터는 GPT realistic eval 50개와 review eval unique 8개를 합쳐 총 58개로 구성했습니다.
최종 데이터는 실제 서비스 환경에서 사용자가 입력할 법한 짧은 메모체 한줄일기 분포를 반영하도록 구성했습니다. trace 문장은 모델 입력으로 직접 사용하지 않고, GPT 생성용 소재 카드로만 사용했습니다.
원본 학습 데이터와 평가 데이터는 개인정보 및 프로젝트 관리 정책상 공개하지 않습니다.
Training Configuration
최종 SFT 설정은 다음과 같습니다.
항목
값
Base checkpoint
kobart_student_round5
Epochs
2.0
Learning rate
2e-5
Train batch size
2
Eval batch size
2
Gradient accumulation
8
Max source length
768
Max target length
320
Seed
777
Train rows
1,095
Eval rows
58
Evaluation
Evaluation Setup
평가는 58개의 final eval 샘플을 기준으로 수행했습니다. 비교 대상은 raw KoBART base checkpoint인 gogamza/kobart-base-v2와 최종 개선 모델 kobart_student_round5_realistic_daily입니다.
평가 시 확인한 항목은 다음과 같습니다.
평가 항목
설명
문장 수 준수
[문장수] 힌트에 맞게 출력하는지
입력 커버리지
한줄일기 핵심 장면을 얼마나 반영하는지
반복 표현
같은 문장/표현이 반복되는지
클리셰 여부
“행복한 하루”, “소소한 순간” 등 상투 표현 사용 여부
Unsupported time marker
입력에 없는 아침/저녁/하원 등 시간 표현을 생성하는지
자연스러움
보호자/교사 기록 문체로 읽기 좋은지
Latency
실제 inference 실행 시간
평가 산출물은 내부 실험 로그로 관리하며, 현재 repository에는 포함하지 않습니다. 아래 benchmark는 내부 final eval 결과를 요약한 것입니다.
Benchmark Results
평가 항목
Raw KoBART base
Final realistic model
변화
Average quality score
74.59
92.92
+18.33
Average coverage
0.8809
0.9978
+0.1169
Average sentence count
1.29
6.86
+5.57
Average char F1
0.4380
0.6449
+0.2069
Average ROUGE-L char F1
0.3509
0.4997
+0.1488
Wins
3
54
+51
Ties
-
1
-
Average latency
3.31 sec
5.73 sec
+2.42 sec
평가 결과, 최종 realistic 모델은 raw KoBART base checkpoint보다 평균 품질 점수, 입력 커버리지, 문자 단위 유사도, ROUGE-L char F1에서 모두 개선되었습니다. 특히 평균 coverage가 0.9978로 증가하여, 입력 한줄일기의 핵심 내용을 하루일기에 더 안정적으로 반영하는 경향을 보였습니다.
평균 latency는 raw KoBART base 3.31초에서 final realistic 모델 5.73초로 증가했습니다. 그러나 품질 점수와 coverage가 크게 향상되었기 때문에, 실제 서비스 관점에서는 품질과 응답 시간 사이의 균형을 검토할 수 있는 수준으로 판단했습니다.
위 quality score와 wins는 내부 자동 평가 기준에 따른 결과입니다.
Cost and Deployment Considerations
kobart_student_round5_realistic_daily는 GPT API를 직접 호출하지 않는 자체 KoBART 기반 모델입니다. 따라서 하루일기 생성 단계에서는 GPT API token 비용이 발생하지 않습니다.
다만 실제 운영 환경에서는 다음 비용이 발생할 수 있습니다.
서버 CPU/GPU 추론 비용
모델 로딩 및 메모리 사용 비용
동시 요청 처리에 따른 인프라 확장 비용
캐싱 및 저장소 비용
AIary 프로젝트에서는 이미지 이해가 필요한 한 줄 일기 생성과 월 단위 리포트 생성에는 GPT를 제한적으로 활용하고, 반복 호출 가능성이 높은 하루일기 생성은 KoBART 자체 모델로 분리하여 GPT 의존성과 API 비용을 줄이는 전략을 적용했습니다.