정말똘망
cdc wiki
프로젝트 개요
기술개발 과제
국문 : PDF 컨텐츠를 활용한 LLM 기반 학습 보조 서비스: 자동 퀴즈 생성과 요약
영문 : LLM-based Learning Assistance with PDF content: Automatic Quiz Generation and Summarization
과제 팀명
00000..
지도교수
이경재 교수님
개발기간
2024년 3월 ~ 2024년 6월 (총 4개월)
구성원 소개
서울시립대학교 컴퓨터과학부 20219200** 박**(팀장)
서울시립대학교 컴퓨터과학부 20199200** 정**
서울시립대학교 컴퓨터과학부·과 20219200** 정**
서울시립대학교 컴퓨터과학부·과 20219200** 조**
서론
개발 과제의 개요
개발 과제 요약
내용
개발 과제의 배경
내용
개발 과제의 목표 및 내용
내용
관련 기술의 현황
관련 기술의 현황 및 분석(State of art)
- 전 세계적인 기술현황
내용
- 특허조사 및 특허 전략 분석
내용
- 기술 로드맵
내용
시장상황에 대한 분석
- 경쟁제품 조사 비교
내용
- 마케팅 전략 제시
내용
개발과제의 기대효과
기술적 기대효과
내용
경제적, 사회적 기대 및 파급효과
내용
기술개발 일정 및 추진체계
개발 일정
내용
구성원 및 추진체계
내용
설계
설계사양
제품의 요구사항
설계 사양
(1) 계정 관리 기능
- 서비스를 이용하기 위해 사용자는 회원가입이 필요하다.
- 사용자는 헤더를 통해 pdf 업로드 페이지, 퀴즈 목록 페이지, 과일 바구니 페이지로 이동할 수 있다.
(2) pdf 기반 문제 생성 기능
- 사용자는 10 Mbyte이하, pdf 확장자의 수업 자료를 업로드 할 수 있다.
- 사용자는 업로드 한 수업 자료를 바탕으로 LLM을 활용해 퀴즈를 생성 할 수 있다.
- 사용자는 퀴즈 생성 시 해당 과목, 생성할 페이지, 문제 유형, 문제 수, 난이도를 설정할수 있다.
(3) 문제 풀이 기능
- 사용자는 생성된 퀴즈를 풀 수 있다.
- 한 페이지마다 한 문제만 있어서 오롯이 문제에 집중하여 풀 수 있다.
- 사용자가 푼 퀴즈를 제출하고 나면 점수 및 주제별 정답률을 확인할 수 있다.
(4) 문제 기록 관리 기능
- 사용자는 퀴즈의 문제를 저장할 수 있다.
- 사용자는 퀴즈 결과 보기 페이지에서 각 문제별 정/오답 현황 및 해설을 확인할 수 있다.
- 사용자는 원하는 퀴즈를 선택하여 과일 바구니에 담을 수 있다.
(5) 요약 기능
- 사용자는 업로드 한 수업자료를 바탕으로 gpt를 활용해 요약본을 생성 할 수 있다.
(6) 학습 상태 추적 기능
- 서비스는 기존의 사용자의 학습 기록을 기반으로 DKT 모델을 통해 취약점을 분석하고 추가 학습 제공 시 활용한다.
(7) 학습 기록 기반 추가 학습 제공 기능
- 사용자는 퀴즈 세부 내용 페이지에서 지난 학습 기록을 반영한 추가 퀴즈를 생성 할 수 있다.
개념설계안
고객 여정 지도
사용 시나리오
개념 설계안
- 1. 사용자는 Front-end 와 수업 자료, 퀴즈, 요약본 등을 교환한다.
- 2. Front-end 클라이언트는 사용자로부터 정보를 입력받으며, 그 정보와 리스폰스를 서버와 API 통신을 통해 교환한다.
- 3. SpringBoot 서버는 클라이언트로부터 받은 정보 및 리스폰스를 AI서버와 교환한다.
- 4. 백엔드 서버가 받아온 정보는 H2 DB에 저장된다.
- 5. 백엔드 서버로부터 요청받은 퀴즈 및 KC 예측값 등을 생성하여 서버에게 전송한다.
이론적 계산 및 시뮬레이션
유즈케이스도
플로우 차트
데이터 흐름도
- 회원가입
- 로그인
- pdf 업로드
- 퀴즈 생성
- 요약본 생성
- 지난 퀴즈 관리
- 과일 바구니 관리
- 퀴즈 풀기
- 추가 퀴즈 생성
상세설계 내용
아키텍쳐도
클래스도
- member 관련 클래스도
- mail 관련 클래스도
- upload 관련 클래스도
- quiz 관련 클래스도
- summary 관련 클래스도
- fruit basket 관련 클래스도
- LLM, DKT 관련 클래스도
결과 및 평가
완료 작품의 소개
메인 화면
작동 화면
관련사업비 내역서
완료작품의 평가
향후평가
어려웠던 점
- HTTPS to HTTP 통신 에러
- 다른 배포 서비스를 사용하지 않고 프론트 서버도 AWS에 올려 HTTP로 통신 하도록 했다.
- Edge case 혹은 크고 작은 에러 발생
- 계속 테스트 및 관련 문제 회의를 통해 문제 해결했다.
- CORS Error
- 관련 자료와 영상을 기반으로 문제 해결했다.
- 서버 배포 및 Docker 사용
- 관련 책을 통해 지식을 습득하고 계속 시도해보면서 배포를 성공하고 Docker-compose를 통해서 여러 서비스를 동시에 실행시켰다.
- 우리 서비스의 KC list와 사용하는 딥러닝 모델의 KC list가 달라서 이상한 예측 결과 발생
- 모델에서 생성하는 예측 값을 사용하는 것이 아닌 초반이랑 마지막의 예측값의 차이로 결과를 도출했다.
- GPT가 생성하는 문제 개수 및 파라미터 오류, KC id-KC 매칭 오류, 모호한 빈칸, 난이도 조절
- 구체적이고 각 오류를 해결할 수 있는 세밀한 내용으로 프롬프팅하여 오류 해결했다.
- DKT 모델에서 사용하는 라이브러리 버전 문제
- 라이브러리를 다운그레이드 하여 설치하고 도커 이미지로 빌드하여 배포하였다.
차후 구현할 내용
- 분산 시스템 구축
- pdf 파일 업로드 후의 OCR과 퀴즈 생성 등의 동작을 분할 하여 수행할 수 있도록 시스템을 업그레이드 하여 사용자의 대기시간을 감소시키고, 서비스 안정성 향상을 도모한다.
- 모바일 웹 또는 앱 구현
- 보다 간편한 모바일 서비스를 통하여 짧은 시간만으로도 서비스에 머무르면 학습 할 수 있도록 웹앱으로 구현한다.
- 이미지 속의 순차 관계 및 다이어그램 해석 능력 향상
- 각 단계나 순서가 중요한 이미지도 해석 할 수 있도록 ai 성능을 향상시킨다.
- 현재 제공하고 있는 4가지 과목 외의 다른 전공 과목 혹은 정보 처리 기사 문제 관련 문제생성 서비스 제공기능 추가
- 현재는 객체지향프로그래밍, 운영체제, 컴퓨터통신, C언어 총 4가지 과목만 다루고 있는 추가 과목 수를 늘리고 그것에 맞게 KC 단위를 늘려 타겟 유저층의 증가를 도모한다.