: 핵심어 추출로 사용자가 원하는 주문을 챗봇이 정확하게 파악할 수 있도록 함.
: ex) 아메리카노, 라떼, .. = 음료 / 쿠키, 케이크, .. = 음식 / 따뜻하게, 차갑게, .. = 온도 / ..
: 빈 슬롯 발생, 예외 발생 시 필요한 시나리오 구상(챗봇이 인식할 수 없는 주문이 들어올 경우, 어떻게 처리할 것인가에 대한 방안 마련)
: pre-training 된 BERT 에게 fine-tuning 을 추가로 시켜 해당 프로젝트의 목적에 맞는 모델 생성
: flask, figma, HTML, CSS 를 사용하여 웹서비스로 챗봇 시스템 구현
- 소비자 맞춤 서비스 제공
- 신규 고객 유입 : 스타벅스 어플을 설치 및 가입하지않아도 쉽게 이용 가능하므로 신규 고객의 유입 가능성을 기대해볼 수 있음.
- 접근성 향상 : 별도의 앱 설치가 필요없으므로 접근성이 용이함.
-
pretrained BERT 모델을 모듈로 export
- ETRI에서 사전훈련한 BERT의 체크포인트를 가지고 BERT 모듈을 만드는 과정.
python export_korbert/bert_to_module.py -i {체크포인트 디렉토리} -o {output 디렉토리}
- 예시:
python export_korbert/bert_to_module.py -i /content/drive/MyDrive/004_bert_eojeol_tensorflow -o /content/drive/MyDrive/bert-module
-
데이터 준비
-
모델을 훈련하기 위해 필요한 seq.in, seq.out이라는 2가지 파일을 만드는 과정
python prepare_data.py process_file({변환할 data.txt 파일 경로}, {아웃풋 저장 경로}), process_line(문장, 토큰)
'홍길동'을 입력하면 '홍', '길', '동' 으로 분류가 되어 출력이 되므로 좀 더 정확한 분류가 이루어짐
-
제작한 seq.in, seq.out을 train, validation, test set이 8:1:1 비율이 되도록 나누기
split_new.py
-
-
Fine-tuing 훈련
python train.py -t {train set 디렉토리} -v {validation set 디렉토리} -s {model이 저장될 디렉토리} -e {epoch의 수} -bs {batch size의 수}
-
모델 평가
python eval.py -m {훈련된 model이 저장된 디렉토리} -d {test set 디렉토리}
- 테스트의 결과는 -m에 넣어준 model 디렉토리 아래의
test_results
에 저장됨
-
Inference (임의의 문장을 모델에 넣어보기)
python inference.py -m {훈련된 model이 저장된 디렉토리}
- 예시:
python inference.py -m saved_model/
- "Enter your sentence:"라는 문구가 나오면 모델에 넣어보고 싶은 문장을 넣어 주면 됨
- 'quit', '종료', '그만', '멈춰', 'stop'라는 입력을 넣어 주면 종료