사범대생의 개발 4개월 차ㅣ3주 만에 파이썬 튜터링 챗봇 만들기

신영·2024년 4월 28일

Project

목록 보기
2/5
post-thumbnail

코딩 경험 0으로 시작한 천재교육 빅데이터 서비스 개발자 양성과정, 4개월 차에 팀 프로젝트로 진행한 '파이썬 튜터링 챗봇 만들기'. 이번 프로젝트가 나에게 의미 있었던 이유가 몇 가지 있다.

  1. 이전까지는 데이터 수집, 분석, 예측 모델 개발 프로젝트를 진행했다면 이번 프로젝트는 '서비스 개발'을 했다.
  2. PM팀과의 협업을 통해 실무에서의 커뮤니케이션을 찍먹 해보았다.
  3. 팀원들과 공부해 가며 기획 시 기대했던 수준보다 많은 것을 구현해 냈기에 뿌듯했다(정말 내새끼 느낌..!).
  4. 개발 전반의 프로세스를 얕게나마 경험해 보았다는 측면에서 많이 성장했음을 느꼈다.

첫 서비스 개발을 기념하며 기록하고, 앞으로를 그려보는 글✏️


✅ 역할

  • 주요 업무 : 총괄, 서비스 개발, 웹 배포, 발표
  • 상세 역할 : 코드 리팩토링, 모델 fine-tuning 을 위한 JSONL 데이터셋 구축 및 fine-tuning, AWS RDS 를 활용한 Postgresql DB 구축 및 연결, Streamlit 디자인

✅ 기획 의도

✅ 프로젝트 목표

  • 사용자의 파이썬 질문에 대해 '간단한 알고리즘-상세한 알고리즘-코드' 3단계로 제시할 것 (사용자의 요구에 따라 2, 3단계는 변동 가능)

    GPT와 기존의 코딩 튜터링 챗봇은 파이썬 질문을 하면 질문과 답을 한꺼번에 제시한다. 학습자가 정답만 복붙해서 문제를 해결하는 것이 아니라 먼저 알고리즘을 보고 문제 풀이를 진행해 볼 수 있도록 '학습 과정'에 초점을 맞춘 튜터링 챗봇!

  • 파이썬 기초 수준의 중등 학습자 수준에 맞춘 알고리즘과 코드를 제시할 것

    GPT와 기존의 코딩 튜터링 챗봇은 '좀 더 쉽게 알려줘'와 같이 사용자가 직접 프롬프트를 넣어줘야 했다. Fine-tuning을 통해 사용자를 타겟팅한 학습 챗봇!

✅ 개발 프로세스 요약

데이터 수집기 모델 구축

  1. 기반 모델 선정 : GPT-3.5-turbo
  2. 학생의 학습에 도움이 된다고 판단한 파이썬 관련 질의 응답 데이터셋(JSONL) 구축
  • 중등 정보 교과서 3종 및 파이썬 기본서 참고
  • 문답을 3번으로 나누어 첫 두 번의 문답은 질문에서 요구하는 알고리즘 및 순서개념을 안내, 마지막 문답은 정답 Python code를 제공하는 형식으로 짜여진 데이터를 수집
  1. 학습자가 알고리즘을 요구할 때/정답 코드를 요구할 때의 시스템 프롬프트 작성

챗봇 구축

  1. 데이터 수집기 모델로 구축한 데이터셋으로 GPT-3.5-turbo fine-tuning
  2. 학습자가 알고리즘을 요구할 때/정답 코드를 요구할 때의 시스템 프롬프트 작성

웹 서비스 구현

웹 프레임워크 : Streamlit
Flask, Django 등등 다양한 웹 프레임워크 중 Streamlit을 사용한 이유
1. 우리에게 주어진 건 3주의 시간! 기능 구현에 힘 줄 시간에 무겁거나 복잡한 웹 프레임워크를 배우기엔 아깝다. Streamlit은 python으로 작성되어 간단하고 직관적인 API를 제공하기 때문에 프론트엔드 무경험자도 쉽게 웹어플리케이션을 제작할 수 있다.
2. 활발한 커뮤니티와 docs가 구축되어 있어 디버깅에 용이하고 사용자들이 만들어 둔 추가 패키지를 위젯을 필요에 따라 쉽게 사용할 수 있다.

<DB 구축>

  • 목적 : 회원 정보 및 사용자별 질의 응답 내용 저장
  • DB : AWS RDS를 통해 PostgreSQL 데이터베이스를 생성
  • 테이블 명세서
  • DB 활용 방안
    • 학습자 개인별 최적화 서비스 제공 (오답노트, 진단평가 등)
    • 서비스 개선
    • 사용자 동의를 얻은 질의 데이터 수집 후 사내/외 활용

✅ 비즈니스 활용 방안

  • B2G : 중·고등학교에 도입되는 AI 디지털 교과서 기능으로 활용하여 정보(컴퓨터)
    과목 학습에 도움을 제공할 수 있다. 또한 언어 모델에 PDF와 데이터세트를 다른
    과목의 내용으로 학습시킨다면 코딩뿐만 아니라 다른 과목에서도 도움을 줄 수
    있다.
  • B2C : 사용자는 중·고등학생들을 대상으로 진행하는 서비스인 만큼 중·고등학생의 데이터를 수집할 수 있으며 기업 이미지를 긍정적으로 바꿀 수 있다.
  • B2B : 수집된 사용자의 데이터를 타 기업과 거래하거나 챗봇 서비스를 판매하는 비즈니스가 가능하다.
  • 내부 효과 : 수집된 사용자의 데이터에서 자주 묻는 질문을 추출하여 프로그래밍 참고서에 반영할 수 있다. 또한 사용자의 질문 및 입력 패턴, 질문을 하는 시간, 질문 어투 등을 추가적으로 수집하거나 기존 데이터에서 판단할 수 있다면 중·고등학생을 대상으로 한 학술 연구에도 도움이 될 것이다.

교육 과정이 2개월도 채 안 남은 시점, 그동안의 프로젝트와 차원이 달랐지만 그만큼 유익했던 경험이었다. 그러나 바로 내일부터 시작하는 최종 프로젝트는 역대급일 거라고 하는데 긴장되면서도 또 잘 해낼 거니까 행복하게 한 번 가보자고~

📌 깃허브
https://github.com/2shin0/chunjae_edu_chatbot_project

profile
Human×Tech Bridge Builder | EdTech | AI Service Developer

2개의 댓글

comment-user-thumbnail
2024년 4월 29일

최종도 잘 해낼 수 있더! 화이팅💥

1개의 답글