mbti_추적_imp - 100-hours-a-week/12-marong-Wiki GitHub Wiki

사용자 성향 평가 모델 구축

  • 사용자가 작성한 피드를 기반으로 사용자의 MBTI 수치를 보정
  • 보정된 MBTI가 마니또 매칭, 장소 추천 등 개인화 기능에 적극 활용

사용 모델: HyperCLOVA X SEED 1.5B 한국어 이해 성능이 뛰어나고, 적은 파라미터 개수로 추론 속도가 빠름

초기 Flow

  • 사용자 피드와 사용자 MBTI 점수 불러오기
  • Korean-MBTI-Conversation-Dataset 해당 데이터를 임베딩하여 ChromaDB에서 유사 피드를 검색(RAG)
  • LangChain의 체인 구조를 활용해 유사 피드를 바탕으로 축별 프롬프트를 생성
  • LLM 응답을 MBTIOutputParser로 파싱되어 변화된 점수가 결과로 반환됨

문제1. 단순 수치 조정 → 평가 이유 출력

문제 개요

  • 기존: MBTI 점수 변화만 제공되고, 그 변화에 대한 이유는 생성하지 않음
  • 사용자들이 결과를 보고 납득하지 못하거나 흥미를 느끼지 못하는 문제 발생

발견한 개선 포인트

  • “왜 점수가 바뀌었는지”, “내 행동이 어떤 MBTI 성향과 연결되는지” 에 대한 맥락 제공의 필요성 발견
  • 지속적인 미션 인증을 위해서는 인증에 따라 자신의 성향이 어떻게 바뀌는지에 대한 재미 요소가 있어야 유도 가능

나의 Action (개선 과정)

순서 내용
1 LLM 응답 포맷 개선 → 기존 단일 숫자 응답에서 이유도 함께 생성하도록 LLM 출력 구조 설계
2 프롬프트 템플릿 수정 → 프롬프트에 이 피드의 어떤 점이 축 성향을 나타내는지 명시적 지시 추가
3 MBTIOutputParser 개발 → 이유를 안정적으로 파싱할 수 있도록 LangChain용 파서 구성
4 테스트 및 사용자 피드백 반영 → 개선된 결과를 적용한 뒤 실제 사용자 피드백을 수집하고, 이유 문장이 보다 자연스럽도록 계속 튜닝 예정
문제 2. 평가 이유와 점수 상승/하락 맥락 X → 논리적 흐름 완성

문제 개요

  • 이유는 생성되었지만, 해당 이유가 실제 점수변동(상승/하락/유지)와 맥락이 안맞는 현상 발생
  • 이유와 점수가 무관하게 진행되기 때문에 무조건 점수를 상승시키는 현상 발생

발견한 개선 포인트

  • 점수 변화와 이유 사이의 논리적 정합성이 부족하여 사용자 신뢰도 저하
  • 실제 피드 내용이 내성적인 성향을 보여줬음에도 불구하고 점수는 상승(E방향)하는 등 → 무분별한 점수 상승 현상이 반복됨
  • MBTI 축별 성향에 대한 판단 기준 명확화와 점수 변화 방향과 이유 사이의 일관된 연결 구조 필요

나의 Action (개선 과정)

순서 내용
1 MBTI 성향 판단 기준 명시 → 프롬프트에 축별 성향 기준을 명확히 제시하여 일관된 판단 유도
2 Few-shot 예시 추가 → 점수 상승/하락/유지 각각에 대해 대표 예시를 삽입하여 모델의 출력을 안정화
3 미션 정보 반영 → 피드가 마니또 미션 인증 내용인 점을 고려하여 프롬프트에 미션 맥락을 추가, 성향 판단의 정확도 향상 유도
4 LangGraph 도입 및 구조 개선 → EI/SN/TF/JP 축별 reasoning을 병렬적으로 처리한 후, 최종 노드에서 종합 판단 및 최적 결과 선택 구조로 개선

최종 flow

피드 아키텍처 drawio

결과

비교 항목 Before After
이유 출력 점수만 제공되고 이유 없음 점수와 함께 성향에 대한 설명 제공
점수-이유 논리 정합성 점수와 이유가 불일치(ex. 내향적인 피드인데 외향 점수 상승) 점수 상승/하락/유지가 일관성 있게 출력됨
처리 속도 LangChain 순차 실행 구조로 응답 시간 지연 LangGraph 병렬처리 구조 도입으로 응답 속도 40% 개선
사용자 피드백 반응 “왜 점수가 바뀌었는지 모르겠다”) “해석이 재밌다”, “일부로 반대로 입력했는데 내 MBTI를 어떻게 추적해오는지 모르겠다, 신기하다.”

회고

  • 점수와 이유 사이의 논리 흐름을 명확히 연결하기 위해 프롬프트 설계, 예시 구성, LangGraph 병렬 처리 구조 도입 등 다양한 구조 개선을 시도했고, 그 결과 응답 속도 40% 향상과 함께 출력 품질 또한 크게 개선되었다.
  • 단순한 점수 출력에서 벗어나, 사용자 행동에 기반한 맥락 있는 성향 해석을 제공함으로써 결과에 대한 납득 가능성재미 요소를 동시에 확보할 수 있었다.
  • 단순 수치 조장보다 설명 가능한 AI(Explainable AI) 경험이 사용자에게 더 큰 신뢰와 몰입을 제공한다는 것을 깨달았다.
  • 설명 가능한 AI를 만들기 위해 필요한 설계 과정을 반복하면서, 어떤 흐름이 가장 효율적이고 설득력 있는지 판단하는 사고력과 구조 설계 능력도 함께 성장할 수 있었다.

단계별 과제

항목 문서링크
피드분석: 모델 API 설계 모델 API 설계
피드분석: 모델 성능 비교 모델 성능 비교
피드분석: 서비스 아키텍처 모듈화 서비스 아키텍처 모듈화
피드분석: LangChain 기반 멀티스텝 설계 검토 LangChain 기반 멀티스텝 설계 검토
피드분석: RAG 설계 검토 RAG 설계 검토
피드분석: MCP 설계 검토 MCP 설계 검토
⚠️ **GitHub.com Fallback** ⚠️