Skip to content

개발자 취준생을 위한 면접 도우미,부스트캠프 AI Tech 6기 NLP트랙의 최종프로젝트

Notifications You must be signed in to change notification settings

kooqooo/hello-jobits

 
 

Repository files navigation

📝 Project개 | [ Youtube ] [ 시연 링크 ]

저희 안녕 JOBits 서비스는 IT 직군의 개발자 취업 준비생을 돕기 위해 탄생했습니다. 예상 면접 질문 생성, 모의면접 기능을 통해 실제 면접에 가까우면서 더 구체적인 질문을 얻을 수 있습니다. 또한 피드백과 함께 실제 면접에서 좀 더 개선된 답변을 할 수 있도록 방향을 제시합니다.

👀 Back-ground

취업시장에서의 경쟁력을 키우기 위해 AI를 활용해 면접 준비를 도와주는 서비스들이 등장하고 있지만 기존 서비스들은 다음과 같은 문제점들이 존재했습니다. 따라서 저희 안녕 자비스는 다음과 같은 방식으로 기존 서비스들의 문제점을 보완하여 실제 면접 환경에 사용자가 익숙해지는 데에 도움이 되고자합니다.

기존 서비스들과의 차별점

  1. 사용자의 이력서와 지원 회사의 채용공고를 입력으로 받아, 개인 맞춤화 질문을 제시
  2. 실제 면접에서 추가 질문이 나오는 포인트를 살린, 꼬리 질문 제시
  3. 개발자 기술 면접 에 도움을 주는 특화된 서비스
  4. LLM Generation과 자체 데이터셋 Retriever 모델을 함께 활용한 환각 축소 방안

👨‍👩‍👧‍👦 Team & Members 소개

🤖 Team 소개

개인의 성장과 팀의 조화를 추구하는 팀, 안녕 자비스입니다! 개인의 성장 == 팀의 성장이라는 마인드로 잘 모르는 부분이 있다면 함께 알려주고 배워가면서 성장해왔습니다. 또한 배운 것을 바탕으로 자신의 역량을 팀에서 조화롭게 녹여나갈 수 있도록 믿어주고 응원해주고 있습니다.

💁🏻‍♂️ Members

구희찬 김민석 손유림 오태연 이상수 최예진

💁🏻‍♀️ 역할 소개

이름 역할
구희찬 배포를 위한 환경 설정(Docker-compose), Steamlit, FastAPI를 통한 MongoDB CRUD, 생성형 모델로 데이터 수집 및 검수로 데이터셋 구축
김민석  Back-End 개발, Streamlit , FastAPI 을 통한 카카오 로그인 기능, 데이터 송수신 및 페이지 통신 구현, Retriever 임베딩 모델 탐색, 면접 질문 데이터셋 구축 및 검수
손유림  Rule-Based 모델 구현, 면접 질문 데이터셋 구조도 구축, 데이터셋 추가 수집/최종 검수, FastAPI를 통한 MongoDB CRUD, 배포를 위한 환경 설정(Docker-compose) 
오태연  LLM , LangChain 을 활용한 면접질문 Generation 모델 구현, Retriever 설계 및 구현(FAISS, Reranker), Streamlit 을 이용한 Front-End 개발
이상수  Streamlit 을 이용한 Front-End 개발, Retriever 모델(DPR) 구현, LangChain 을 활용한 면접질문 Generation 모델 구현, 면접 질문 데이터셋 구축(LLM 기반 데이터 증강) 
최예진  Project Manager, 프로젝트 기획 제안 진행, Streamlit 을 이용한 Front-End 개발, LLM 프롬프트 엔지니어링, 면접 질문 데이터셋 구축 및 검수 

📆 Project Timeline

타임라인

🧠 Product-Serving Architecture

프로젝트는 Streamlit과 FastAPI를 사용하여 프론트엔드와 백엔드를 구축했습니다. 사용자는 Streamlit을 통해 질문 생성 및 모의 면접을 진행하며, Kakao OAuth를 통해 로그인하고 MongoDB를 사용하여 사용자 정보를 저장합니다. 이를 통해 사용자는 편리하게 서비스를 이용할 수 있습니다.

📊 Model

👀 Overview

사용자가 JD와 이력서를 입력하면 Retrieval ModelGeneration Model 두 가지로 들어가게 됩니다. Generation 모델에서는 프로젝트와 관련된 질문을 생성하며, Retrieval 모델Rule-based 모델과 Semantic Search로 구성되어 기초 기술면접 질문을 생성합니다. 이를 통해 예상 면접 질문 N개가 선정되며, 모의면접 서비스면접예상 질문 생성 서비스 2가지로 서비스가 제공됩니다.

img (3) img (1)

1️⃣ Retriever Model

직접 구축한 실제 기술면접 데이터셋을 바탕으로 기술면접 질문을 추출

  • Semantic Search img (7)

    1. [FAISS] 기술면접 질문 데이터셋 중 JD와 관련성 높은 후보군 n*k개 질문 검색
    2. [Reranker] 검색된 면접 질문들 후보군에 대해 reranking를 통해 JD 전체와의 관련도 있는 k개의 질문 추출
  • Rule-Based 방식 img (8)

    • 채용 공고 및 이력서에 특정 키워드가 등장할 경우, 해당 키워드와 관련된 질문을 추출
    • 연관성을 높이기 위해 다양한 규칙 추가

    💿 Data

img (9)

  • 900개 이상의 면접 질문 데이터셋을 직접 스크랩한 후 검수하여 데이터셋을 구축, 직군의 경우 AI, 백엔드, 프론트엔드, CS 지식 관련 질문으로 분류하여 데이터를 수집
  • 또한, IT Tech 직군의 채용 공고를 크롤링하여 얻은 데이터에서, 직무와 관련된 주요 키워드를 추출하여, 키워드와 면접 질문 데이터셋을 매칭시켜 룰베이스드 알고리즘과 Retriever에 활용

2️⃣ Generation Model

  • 프로젝트 관련 질문 생성, 꼬리질문, 피드백 , 힌트 제공
  • OpenAI의 ChatGPT API활용
  • Langchain을 이용하여 아키텍쳐 구축
  • Prompt Engineering 활용

✅ 예상 면접 질문 생성

img (4)

3단계의 체인을 통해 면접 질문이 생성됩니다. Chain1,2에서는 Job Description과 이력서에서 주요 내용을 추출해오며, 이를 활용해 예상 면접 질문을 생성하는 Chain3로 구성됩니다.

✅  모의면접 서비스

img (5)

Langchain의 memory 기능을 활용해 이전 대질문과 면접자의 답변을 기억하여 꼬리질문을 생성합니다.

✅ 예상 면접 질문 생성-피드백 서비스

img (10)

📊평가지표

  • 생성형 모델 특성 상 정량적 지표 사용이 어려워, 휴먼 피드백 기법을 사용하여 생성된 예상 질문에 대한 평가를 통해 모델 평가를 진행하였습니다.
  • 유사 서비스 3개와 저희 프로젝트의 예상 면접 질문을 블라인드로 사용자에게 제공한 뒤, 서비스에서 중요하다고 생각되는 다음 지표(metric)에 대하여 평가를 요청하였습니다.
  • 그 결과, 전반적인 평가에서 저희 안녕자비스 팀의 생성 결과가 가장 좋은 평가를 받은 점을 확인할 수 있었습니다. image

🤩전시홀 캠퍼 반응

image

About

개발자 취준생을 위한 면접 도우미,부스트캠프 AI Tech 6기 NLP트랙의 최종프로젝트

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 99.2%
  • CSS 0.8%