배경

DIVE 2024 대회에서 금융 데이터를 활용하여 분석을 진행하였으며, 분석이 일회성에 그치는 것을 넘어, 실제 운영에서 활용할 수 있는 기능으로 개발했습니다.

프로젝트 소개

이 프로젝트는 삼성카드, 롯데카드, 그리고 NICE 신용평가의 데이터를 기반으로 빠르고 효과적인 의사결정을 돕기 위해 설계되었습니다. 사용자가 자연어로 질문을 입력하면, 시스템은 관련 데이터를 찾아 적절한 SQL 쿼리를 생성하고, 그 결과를 시각화하여 사용자에게 전달합니다. 추가적으로, 외부 API를 사용하여 최신 트렌드 정보를 실시간으로 시각화할 수 있습니다.

기간

24.09.28 ~ 24.10.13(2주)

핵심 기능

  • 자연어 기반 DB 검색 및 시각화: 사용자가 자연어로 질문을 하면, 해당 질문을 파싱하여 관련 DB 테이블과 컬럼을 찾아 SQL 쿼리를 생성 및 실행합니다.
  • 실시간 트렌드 검색 및 시각화: 외부 API를 활용하여 최신 트렌드 정보를 가져와 시각화합니다.

시스템 아키택쳐

image.png

#Postgres #langgraph #streamlit #plotly

Text-2-SQL

  1. CSV 데이터 마이그레이션:
    • allData 측에서 제공한 CSV 파일을 PostgreSQL 서버로 마이그레이션하여 저장했습니다.
    • 서버는 Docker 환경에서 운영하여 신속하게 구축하고 실행할 수 있도록 했습니다.
  2. 자연어 질문 파싱 및 분석:
    • parse_question 함수는 사용자가 입력한 질문이 DB와 관련된 것인지 분석하고, 적합한 테이블과 컬럼을 선별합니다.
    • get_unique_nouns 함수는 사용자가 특정 컬럼의 값을 물어보는지 확인하여 SQL 조건을 개선합니다.
  3. SQL 생성 및 실행:
    • generate_sql로 SQL 쿼리를 생성하고, execute_sql 함수로 쿼리를 실행하여 결과를 반환합니다.
  4. 결과 시각화 및 포맷팅:
    • choose_visualizationformat_data_for_visualization을 통해 쿼리 결과에 맞는 최적의 시각화 형태를 선택하고, 데이터 형식에 맞게 변환합니다.
    • format_results는 시각화된 데이터를 텍스트로 설명하여 사용자에게 자연스럽게 결과를 전달합니다.

Trend Graph

사용자의 질문이 최신 트렌드를 다루고 있는 경우, 적절한 API를 선택하여 데이터 요청을 보냅니다. 받은 데이터를 파싱하고 시각화하여 사용자가 최근 동향을 한눈에 파악할 수 있도록 합니다.

  • 예제: 특정 키워드와 관련된 검색 트렌드를 API로 가져와, 데이터를 Plotly로 시각화하고 결과를 분석하여 제공합니다.
  • API 연동 및 확장 가능성: 실시간 데이터를 적용함으로써 운영 현황과 트렌드를 모니터링할 수 있는 대시보드로 확장할 수 있습니다.

Demo 영상

output.gif output.gif

추가 고려 사항

MLOps에서의 Text-SQL 활용 및 개선 방향:

MLOps는 머신러닝(ML) 모델의 안정성을 지속적으로 확보하고 유지하는 것이 핵심 목표입니다. 이를 위해 ML 모델의 입력 및 출력 데이터를 주기적으로 확인하고, 불안정성 여부를 검사하는 것이 필수적입니다. 그러나, 문제의 원인을 규명하고 신속히 대응하기 위해서는 ML 모델의 데이터뿐만 아니라 다양한 관련 데이터 소스(DB)를 함께 분석하여 의사결정을 내리는 것이 중요합니다.

기존 의사결정 프로세스의 한계

기존 프로세스에서는 데이터 엔지니어나 데이터 사이언티스트가 직접 분석을 수행해야 하며, 이는 Resource 소모가 많고 의사결정 과정이 길어지는 경향이 있습니다. 또한, 모델 모니터링 중 문제가 발생했을 때 근본 원인을 찾아내고 조치를 취하는 데 시간이 걸릴 수 있어, 실시간 운영 시스템에서는 큰 제약이 됩니다.

Text-SQL 시스템을 통한 개선

Text-SQL 시스템을 도입함으로써 MLOps 환경에서 데이터 기반 의사결정을 더욱 신속하고 효율적으로 수행할 수 있습니다. Text-SQL 시스템은 이해관계자들이 데이터 사이언티스트의 도움 없이도 자연어를 통해 데이터에 접근하고, 필요한 정보를 시각화하여 볼 수 있는 환경을 제공합니다. 이는 특히 제조업에서 빠르고 정확한 결정을 내리는 데 큰 이점을 제공합니다.

  • 다양한 이해관계자의 자율적인 의사결정: Text-SQL 시스템을 통해 사용자 친화적인 인터페이스로 접근성이 향상됩니다. 비즈니스 분석가나 운영 담당자도 데이터 기반으로 모델의 안정성을 평가하고 조치를 취할 수 있습니다.
  • 실시간 문제 감지 및 대응: 모델의 입출력과 DB 데이터를 손쉽게 참조하여 모델의 불안정 원인을 파악을 보다 쉽게 할 수 있으며, 이를 기반으로 빠른 의사결정을 통해 즉각적인 대응이 가능합니다.
  • 리소스 절약 및 비용 효율성: 데이터 엔지니어 및 데이터 사이언티스트의 리소스를 절약하면서도 현장에서 발생한 문제를 실시간 분석이 가능해집니다. 이는 MLOps 환경의 안정성 확보뿐 아니라, 운영 비용 절감에도 기여할 수 있습니다.

결론

결론적으로, MLOps에서 Text-SQL 시스템은 모델 안정성 검토 및 문제 원인 분석을 가속화할 수 있는 효과적인 도구로서, 이를 통해 다양한 이해관계자들이 데이터 기반의 의사결정을 수행할 수 있도록 돕습니다. 제조업체의 MLOps 프로세스에 Text-SQL 시스템을 도입하여 전체적인 프로세스를 개선하고, 최적의 운영 환경을 구축할 수 있습니다.