맞춤형 학습과 챗봇
김성훈
순서
생각해보기: 2022 개정교육과정
학생 맞춤형 교육을 위해 ‘적시적소’에 ‘디지털 도구’를 사용하는 것!
[그림] 국민과 함께 ‘미래 교육과정’을 이야기하다.
https://www.korea.kr/multi/visualNewsView.do?newsId=148886800
맞춤형 학습
Carroll(1963)은 학생들의 개인차 변인(Individual variables)을 3가지로 제시
출처: (교육부,2022) 터치교사단(2기) 양성연수 공통과정 중 재인용
맞춤형 학습
Bloom(1984)
“개인지도를 받은 학생들은 전통적인 교실 강의식 교육을 받은 학생들의 평균 성적에 비해 표준편차 2배 이상 높은 평균 성적을 나타낸다.”
출처: (교육부,2022) 터치교사단(2기) 양성연수 공통과정 중 재인용
디지털 기반 맞춤형 학습
출처: 지능형 튜터링 시스템 기본 구조(김성훈, 2022)
디지털 기반 맞춤형 학습
출처: 개별 맞춤형 학습을 위한 이분된 지식 추적 딥러닝 모델 개발(김성훈, 2021)
디지털 기반 맞춤형 학습 사례(1)
출처: 개별 맞춤형 학습을 위한 이분된 지식 추적 딥러닝 모델 개발(김성훈, 2021)
디지털 기반 맞춤형 학습 사례(2)
출처: 개별 맞춤형 학습을 위한 이분된 지식 추적 딥러닝 모델 개발(김성훈, 2021)
디지털 기반 맞춤형 학습 사례(2)
출처: Piech, Chris, et al. "Deep knowledge tracing." Advances in neural information processing systems 28 (2015).
디지털 기반 맞춤형 학습 사례(3)
출처: 개별 맞춤형 학습을 위한 이분된 지식 추적 딥러닝 모델 개발(김성훈, 2021)
디지털 기반 맞춤형 학습 사례(4)
출처: 개별 맞춤형 학습을 위한 이분된 지식 추적 딥러닝 모델 개발(김성훈, 2021)
디지털 기반 맞춤형 학습 사례(4)
출처: 개별 맞춤형 학습을 위한 이분된 지식 추적 딥러닝 모델 개발(김성훈, 2021)
디지털 기반 맞춤형 학습의 미래
[그림] Watson Tutor
[그림] Kamigo
2. 챗봇 만들기
가. Mizou
[그림] 하루 일기 쓰기 사례
[그림]O X 퀴즈 문제
나. Dialogflow
동기유발
다음 대화를 나누고 있는 A, B 중 누가 사람일까요?
A: 기분이 어때?
B: 나쁘지 않아. 특별한 것 없다. 다른 물어볼 거 없어?
A: 한국에 대해 알아?
B: 나는 고작 13살이야. 너는 내가 모든 것에 대해 알아야 한다고 생각하는구나. �너에 대해 말해줄래? 직업이 뭐야?
A: 나는 기자야.
B: 나 신문 읽는 거 좋아하는데. 근데 파파라치는 싫어.
동기유발
A: 안녕
B: 안녕, 너랑 대화할 수 있게 돼서 정말 반가워. 내 기니피그 빌이 안부 전해 달래!
A: 김치 알아?
B: 난 뭐든지 알지.
A: 김치 먹어본 적 있어?
B: 그거 먹는거 확실해?
다음 대화를 나누고 있는 A, B 중 누가 사람일까요?
2014년, 영국 레딩대 연구진이 개발한 인공지능 채팅 프로그램 ‘유진 구스트만’
사용자가 어떤 질문을 던지면 그것을 이해해서 ‘그럴 듯한’ 답변을 던지거나 반문하고, �이 과정에서 사용자가 ‘실제 인간과 대화하는 것 같다’는 인상을 받을 수 있도록 정교하게 프로그램된 '봇(bot)’
인공지능을 판별하는 방법 중의 하나인 ‘튜링테스트’를 통과했다고 해 관심을 끌었음
동기유발
동기유발
다음 대화를 나누고 있는 가, 나 중 누가 인공지능일까요?
질문자: “9우두 한아에 도늘 을마깢2 쓸껀가요 (How mutch wood ewe pay 4 a pear of shews.)”
가, 나: 질문을 이해할 수 없어.
질문자: 이 질문을 소리내어 읽어보면 무슨 말인지 알거야.
가: 왜 이걸 궁금해 하는거지? 너는 구두를 좋아하니? 너는 구두를 사기 위해 돈을 얼마나 쓸거니?
나: 나는 패션을 좋아하지 않기 때문에 구두를 그렇게 자주 사지 않아.
학습문제
일상생활 속 대화를 바탕으로 시나리오를 작성하고,
구글 Dialogflow를 사용하여 간단한 챗봇을 만들어 봅시다.
친구와 스몰토크(Small talk) 나눠보기
활동
1
스몰토크(Small talk)란?
사소한 이야기. 일상적이고 소소한 주제로 대화하는 것
스몰토크 주제 예
친구와 스몰토크(Small talk) 나눠보기
활동
1
친구와 대화를 나눈 후, 대화 내용을 다음과 같이 정리해봅시다.
A는 나 ,B는 친구
A: 너의 이름은 무엇이니?
B: 내 이름은 펭수야.
A: 어떤 음식을 좋아하니?
B: 나는 참치를 좋아해. 너는?
A: 나는 불고기를 좋아해.
B: 나는 영화 보는 것을 좋아해. 너는 무엇을 좋아하니?
A: 나는 노래 부르는 것을 좋아해.
챗봇으로 만들 가상 인물 정의하기
활동
2
챗봇(Chatbot)이란?
음성이나 문자를 통한 인간과의 대화를 통해서 특정한 작업을 수행하도록 제작된 컴퓨터 프로그램
간단한 대답을 할 수 있는 챗봇 친구를 만들어볼까요?
챗봇 친구 만들기
활동
3
구글 Dialogflow 접속
① https://dialogflow.cloud.google.com/ 에 접속한다.
(또는 ‘dialogflow console’ 이라고 검색함)
② 구글 계정으로 로그인한다.
③ 에이전트(Agent)를 새로 만든다.�Dialogflow 에이전트(Agent)란? �사용자의 언어를 이해하고 처리할 수 있는 챗봇
챗봇 친구 만들기
활동
3
Dialogflow 에이전트 설정
① 이름: 챗봇친구 �(다른 이름으로 만들어도 되지만, 띄어쓰기는 안됨)
② 기본 언어: 한국어(Korean(South Korea)-ko)
③ 다 작성했다면 ‘CREATE’ 버튼 클릭!
챗봇 친구 만들기
활동
3
Dialogflow 인텐트(Intents) 살펴보기
인텐트(Intents)란? 사용자가 질문한 의도에 따라 답변하는 하나의 상황을 위한 입력, 출력 꾸러미
기본 시작 인텐트(Default Welcome Intent)
대화 시작을 위한 상황 설정 가능
기본 대체 인텐트(Default Fallback Intent)
대화 중 적절한 인텐트가 없는 상황에 대한 설정 가능
챗봇 친구 만들기
활동
3
기본 시작 인텐트(Intents)에 원하는 문구 추가해보기
문구 입력 후, 테스트 해보기 예) ‘안녕?’ 을 입력 해 보고, 결과 확인하기
[지금 사용해보기 필드]
작성된 인텐트를 테스트해볼 수 있음
챗봇 친구 만들기
활동
3
기본 시작 인텐트(Intents)에 원하는 문구 추가해보기
챗봇 친구 만들기
활동
3
기본 시작 인텐트(Intents)에 원하는 문구 추가해보기
간단한 대답을 할 수 있는 챗봇 친구를 만들어볼까요?
・이름 | ・나이 |
・사는 곳 | ・좋아하는 것 |
챗봇 친구 만들기
활동
3
친구와 만든 챗봇 친구의 특징을 보고, 인텐트 만들어보기
챗봇 친구 만들기
활동
3
친구와 만든 챗봇 친구의 특징을 보고, 인텐트 만들어보기
챗봇 친구 만들기
활동
3
친구와 만든 챗봇 친구의 특징을 보고, 인텐트 만들어보기
(참고) 엔트리를 활용한 챗봇 만들기
1. 학교 행사 안내 챗봇을 만들어 볼까?
(1) 문제 발견 및 정의하기
질문의 유형을 분류하고, 유형별 정해진 답변하는 모델
사람들은 어떤 질문을 자주 할까?
챗봇의 이름, 행사 날짜, 장소, 유의 사항 등에 대해 질문할 것 같아.
분류 결과의 정확도를 높이기 위해서는 어떻게 해야 할까?
질문의 유형이 서로 중복되지 않고, 명확히 구분되는 것으로 선정해야 해.
질문에 대답하는 모델
1. 학교 행사 안내 챗봇을 만들어 볼까?
(2) 데이터 수집하기
챗봇은 사용자의 질문 유형을 분류하고, 적절한 답변이 제공되는 것을 목적으로 함. 따라서 사용자들이 주로 묻는 질문의 유형이 먼저 정의되고, 유형별로 질문과 답변 데이터를 필요로 함.
행사
정보
1. 학교 행사 안내 챗봇을 만들어 볼까?
(2) 데이터 수집하기
사용자가 학교 행사에 궁금해할 질문과 답변을 나열하고, 그것을 유형별로 묶어서 데이터를 수집해야 함. 유형, 예상되는 질문, 답변 순서로 정리
1. 학교 행사 안내 챗봇을 만들어 볼까?
(2) 데이터 수집하기
유형 | 질문 | 답변 |
자기 소개 | 안녕. 안녕하세요. 넌 누구니? 이름이 뭐야? 자기소개해 봐. 너에 대해 알려줘. ⋮ | 안녕하세요. 저는 행사 봇, ○○입니다. |
일시 및 장소 | 날짜 장소 날짜 안내해 줘. 어디로 가야 하나요? 행사에 대해 알려 줘. 행사 날짜가 어떻게 되나요? ⋮ | 해커톤 축제는 20○○년 ○월 ○○일 오후 2시부터 4시까지 진행됩니다. 늦지 않게 ○○고등학교 강당으로 모여 주세요. |
유의 사항 | 복장 준비물 음료수 먹어도 되나요? 먹으면서 할 수 있나요? 행사에 무엇을 입고 가나요? 다른 사람이랑 상의해도 되나요? ⋮ | 기본적인 교칙을 준수하여, 다른 참가자들에게 피해를 주지 않는 범위 내에서 자유롭게 행동할 수 있습니다. |
1. 학교 행사 안내 챗봇을 만들어 볼까?
(2) 데이터 수집하기
유형 | 질문 | 답변 |
자기 소개 | 안녕. 안녕하세요. 넌 누구니? 이름이 뭐야? 자기소개해 봐. 너에 대해 알려줘. ⋮ | 안녕하세요. 저는 행사 봇, ○○입니다. |
일시 및 장소 | 날짜 장소 날짜 안내해 줘. 어디로 가야 하나요? 행사에 대해 알려 줘. 행사 날짜가 어떻게 되나요? ⋮ | 해커톤 축제는 20○○년 ○월 ○○일 오후 2시부터 4시까지 진행됩니다. 늦지 않게 ○○고등학교 강당으로 모여 주세요. |
유의 사항 | 복장 준비물 음료수 먹어도 되나요? 먹으면서 할 수 있나요? 행사에 무엇을 입고 가나요? 다른 사람이랑 상의해도 되나요? ⋮ | 기본적인 교칙을 준수하여, 다른 참가자들에게 피해를 주지 않는 범위 내에서 자유롭게 행동할 수 있습니다. |
질문의 유형과 맞지 않는 질문일 경우, ‘죄송해요. 무슨 말인지 잘 모르겠어요. 다시 말씀해 주세요.‘ 답변을 사용함.
1. 학교 행사 안내 챗봇을 만들어 볼까?
(3) 모델 학습 및 평가하기
‘유형‘은 모델의 분류 클래스, '질문'은 각 클래스의 텍스트 데이터로, 텍스트 데이터는 쉼표를 기준으로 구분함.
유형
질문
더 알아보기, 분류:텍스트 모델 데이터 입력 단계
클래스
텍스트 데이터
파일 업로드
1. 학교 행사 안내 챗봇을 만들어 볼까?
(4) 프로그램 만들기(http://naver.me/5IFhPM07)
1. 학교 행사 안내 챗봇을 만들어 볼까?
(4) 프로그램 만들기
1. 학교 행사 안내 챗봇을 만들어 볼까?
(4) 프로그램 만들기
1. 학교 행사 안내 챗봇을 만들어 볼까?
(4) 프로그램 만들기
1. 학교 행사 안내 챗봇을 만들어 볼까?
(5) 모델 개선하기
사용자가 배포될 모델을 사용하면서 발생하는 문제를 확인해 봄.
각 클래스별로 정확도가 높지 않아 적절한 답변이 출력되지 않는 문제
사용자들이 입력한 질문과 그 유형이 무엇인지를 수집하고, 사용자가 원하는 결과가 제대로 출력되었는지 확인함.
사용자의 질문들이 모델의 분류 클래스와 관련이 낮을 경우 새로운 분류 클래스가 필요
사용자들이 입력한 질문을 분석한 후, 추가할 분류 클래스가 더 없는지 확인
1. 학교 행사 안내 챗봇을 만들어 볼까?
(5) 모델 개선하기
2. 선생님과 상담 시간을 약속하는
챗봇 만들기
선생님과 상담 시간을 약속하는 챗봇 만들기
동기유발
다음은 사람들과 Eliza 프로그램이 사용자와 나눈 대화의 일부입니다. 이 프로그램이 만들어진 시기는 언제쯤일까요?
사람처럼 자연어를 처리하는 인공지능 프로그램에 대한 관심은 인공지능의 연구 초기부터 있었습니다. 하지만 대화 내용에 구체적으로 대답하기보다는 사용자가 계속 대화를 이어나가도록 유도하는 말을 많이 하는 식이었습니다.
동기유발
여러분이 사용해 본 챗봇이 있나요? Eliza와 어떤 차이가 있나요?
예) 숙소 예약 도우미 챗봇
- 호스트, 게스트를 나누어 맞춤 대응
예) 샐러드 주문 도우미 챗봇
- 홍보 제품의 특징이 드러남
- 고객이 필요로 하는 정보를 손쉽게 접근할 수 있도록 함
수업주제
Google Dialogflow를 사용하여 선생님과 상담 약속을 돕는
챗봇을 만들어 봅시다.
챗봇의 대화 흐름 정리해보기
활동
1
사용자 입력 내용 | 챗봇 응답 내용 |
안녕하세요! | 안녕하세요! 상담 약속 도우미 챗봇입니다. |
상담 약속을 잡고 싶어요. | 이름, 상담을 원하는 요일(월~금), 시간(아침, 점심, 방과후)를 알려주세요. |
이구글, 수요일, 점심시간이요. | 이구글, 수요일, 점심시간 약속을 완료하였습니다. 상담 시간에 만나요! |
Dialogflow 에이전트(Agent) 만들기
활동
2
Dialogflow 에이전트(Agent) 만들기
활동
2
Dialogflow 에이전트(Agent) 만들기
활동
2
기본 인사말 인텐트(Intents) 만들기
활동
3
인텐트 | 사용자 입력 내용 | 챗봇 응답 내용 |
기본 인사말 | 안녕하세요! | 안녕하세요! 상담 약속 도우미 챗봇입니다. |
상담 약속 신청 | 상담 약속을 잡고 싶어요. | 이름, 상담을 원하는 요일(월~금), 시간(아침, 점심, 방과후)를 알려주세요. |
신청 정보 입력 | 이구글, 수요일, 점심시간이요. | 이구글, 수요일, 점심시간 약속을 완료하였습니다. 상담 시간에 만나요! |
기본 인사말 인텐트(Intents) 만들기
활동
3
[지금 사용해보기 필드]
작성된 인텐트를 테스트해볼 수 있음
기본 인사말 인텐트(Intents) 만들기
활동
3
기본 인사말 인텐트(Intents) 만들기
활동
3
기본 인사말 인텐트(Intents) 만들기
활동
3
- 응답 내용은 저장되어 있는 문구 중 하나가 무작위로 출력됩니다. 따라서, 한 번 시도에 내가 추가한 문장이 출력되지
않을 수 있습니다.
필요한 인텐트(Intents) 만들기
활동
4
인텐트 | 사용자 입력 내용 | 챗봇 응답 내용 |
기본 인사말 | 안녕하세요! | 안녕하세요! 상담 약속 도우미 챗봇입니다. |
상담 약속 신청 | 상담 약속을 잡고 싶어요. | 이름, 상담을 원하는 요일(월~금), 시간(아침, 점심, 방과후)를 알려주세요. |
신청 정보 입력 | 이구글, 수요일, 점심시간이요. | 이구글, 수요일, 점심시간 약속을 완료하였습니다. 상담 시간에 만나요! |
필요한 인텐트(Intents) 만들기
활동
4
필요한 인텐트(Intents) 만들기
활동
4
필요한 인텐트(Intents)와 엔티티(Entity) 만들기
활동
5
- 이름, 요일, 시간 엔티티를 추가해봅시다.
필요한 인텐트(Intents)와 엔티티(Entity) 만들기
활동
5
필요한 인텐트(Intents)와 엔티티(Entity) 만들기
활동
5
필요한 인텐트(Intents)와 엔티티(Entity) 만들기
활동
5
필요한 인텐트(Intents)와 엔티티(Entity) 만들기
활동
5
- name - 이구글, day - 수요일, time – 점심
- $name 학생과 $day, $time에 만날 수 있겠군요! 상담 시간에 만나요!
- 출력 결과 - 이구글 학생과 수요일, 점심에 만날 수 있겠군요! 상담 시간에 만나요!
필요한 인텐트(Intents)와 엔티티(Entity) 만들기
활동
5
웹데모 만들어 공유하기
활동
6
1
2
3
웹데모 만들어 공유하기
활동
6
3. Q&A