부트캠프 49

금융 데이터 AI 챗봇 개발기: 4) 드디어 모델 배포! 사이트가 생기니 좋구만!

👇 이전 포스팅은 아래에서 확인할 수 있습니다. 👇 1️⃣ 금융 데이터 AI 챗봇 개발기: 1) 그래서 PDF를 어떻게 분석할건데? (기획부터 데이터 전처리까지) - 출처: https://nanini.tistory.com/902️⃣ 데이터 AI 챗봇 개발기: 2) LLM 모델을 통한 챗봇 만들기 (RAG부터 Chain까지) - 출처: https://nanini.tistory.com/913️⃣ 금융 데이터 AI 챗봇 개발기: 3) 추천 알고리즘, 개인 선호도를 반영한 레포트 추천 기능 만들기- 출처: https://nanini.tistory.com/92 앞에서 세 개 포스팅으로 모델을 구현한 이야기의 최종판, 기능들을 한데 모아서RePick이란 서비스를 만들었다. - RePick (ht..

금융 데이터 AI 챗봇 개발기: 3) 추천 알고리즘, 개인 선호도를 반영한 레포트 추천 기능 만들기

👇 이전 포스팅은 아래에서 확인할 수 있습니다. 👇 금융 데이터 AI 챗봇 개발기: 1) 그래서 PDF를 어떻게 분석할건데? (기획부터 데이터 전처리까지) - 출처: https://nanini.tistory.com/90금융 데이터 AI 챗봇 개발기: 2) LLM 모델을 통한 챗봇 만들기 (RAG부터 Chain까지) - 출처: https://nanini.tistory.com/91 LLM은 마무리 되었으니!이제 추천 알고리즘을 만들어보자. 구현 배경여기서 짚고 넘어가야 할 부분이추천 알고리즘? 추천 모델? 추천 시스템? 헷갈리는 부분이 있어개념을 다시한번 정리해보면 아래와 같다. 추천 시스템 > 추천 알고리즘 > 추천 모델 추천 모델: 알고리즘을 구현한 구체적인 형태 추..

금융 데이터 AI 챗봇 개발기: 2) LLM 모델을 통한 챗봇 만들기 (RAG부터 Chain까지)

👇 이전의 포스팅은 아래에서 확인할 수 있습니다. 👇 금융 데이터 AI 챗봇 개발기: 1) 그래서 PDF를 어떻게 분석할건데? (기획부터 데이터 전처리까지) 출처: https://nanini.tistory.com/90 [데이터 개발 공부:티스토리] 이전 포스팅에 이어서이제 RAG를 구축할 차례이다. LangChain 공식문서에서 RAG는두 가지 주요 구성 요속 있는데 1번 인덱싱 부분은 이전 포스팅에서 이미 완료한 상태였다. I) 인덱싱 : 소스에서 데이터를 수집하고 인덱싱하는 파이프라인. 이는 일반적으로 오프라인에서 발생합니다.로드 : 먼저 데이터를 로드해야 합니다. 이는 Document Loaders 로 수행됩니다 .분할 : 텍스트 분할기는 큰 청크를 작은 청크로 나눕니다 Document..

금융 데이터 AI 챗봇 개발기: 1) 그래서 PDF를 어떻게 분석할건데? (기획부터 데이터 전처리까지)

드디어, 6개월의 부트캠프에서 최종,그러니까최종_찐최종_찐찐최종_마지막최종 으로 진행했던 프로젝트에 대해 리뷰하고자 한다. (아래의 자료들은 실제 프로젝트와 발표에 사용되었던 자료들이다) 약 3회에 걸쳐 리뷰할 예정이고,본 포스팅은 서비스 기획부터 데이터 전처리까지의 이야기를 담고 있다.  0. 팀빌딩 및 기획우리의 서비스 명은 RePick이고, 팀명도 RePick이다.(*다른 팀원들은 개인정보 이슈로 블러처리함)RePick 개발에는 나를 포함하여 7명(백엔드 3, 프론트 1, 엠엘 3)이 함께 개발에 참여했다.  그리고 이 프로젝트에서 맡은 나의 역할은프로젝트 리드 및 데이터 전처리, 모델링이었고또, 제일 고연령(;;) 및 경력직도 맡았다. 하하하 이 부분의 혜택을 얻은 부분도 있는데, 바로 리더십이다..

수료 후기 - [한국경제신문 with toss bank] Tech 우수인재 양성을 위한 (MLOps) 과정

장장 6개월의 기간이 느린듯 빠른듯 끝났다...! 혼자 파이썬을 해도, 데이터 공부를 해도 꽉 막힌 느낌이라 마지막 마음으로 도전한 부트캠프였는데 결론은참, 하길 잘했다. 그런데 역시나끝나면 아쉬움이 남는건 국룰인 듯나도 아쉬움이 백만개 남았다.  이 부트캠프에서 난 MLOps를 수료했고, MLOps 개념은 아직 대중화된 용어도 아닌지라우리의 챗지피티한테 물어봤을 때 아래와 같은 답변을 뱉어냈다. 맞다. 머신러닝을 운영하는 것으로 데브옵스와 유사한 개념으로써, 머신러닝 모델의 개발, 배포, 운영을 효율적으로 관리하는 것인데중요한건부트캠프 수료 만으로는...MLOps로의 취업은 힘들것 같다.  이건 어쩔 수 없는게6개월동안 데이터사이언스를 위한 수학(쪼금)+SQL+Python+Machine Learning..

etc 2025.01.14

대망의 부트캠프 중간 프로젝트 리뷰 - [한국경제신문 with toss bank] Tech 우수인재 양성을 위한 MLOps

머신러닝 수업을 다 나갈 때 즈음미니 프로젝트, 그러니까 중간 프로젝트를 시작한다고 했다.  그렇게 시작된 약 3주간의 중간 프로젝트..! 팀은정말 고맙게도 먼저 제안해준 친구가 있어서 조심스레 합류했다.  '조심스레' 는..진짜 아직 초짜에 생초짜라 할 줄 아는게 있나 싶기도 하고...내 나이가 적지 않은터라 편하지만은 않을 텐데 이렇게 먼저 제안을 해줬다는게 고마우면서도 민폐가 되지 않을까노심초사했다.  우선 결과부터 말하자면잘했다.  중간 프로젝트라 조금 가벼운 마음으로 임했으나다른 친구들은 매우 진지하고 깊게 파고든 덕분에'대상'을 타게 되었다.수상은 토스뱅크 사무실 투어를 하는 날에 진행됐는데,그때 CTO님도 봤고멘토님들의 발표도 들을 수 있어서 좋았다.생각보다 더 동기부여가 뽱뽱 됐달까~귀여운..

etc 2024.09.15

다항회귀(Polynomial Regression)

다항회귀란?선형 회귀는 학습 데이터에 가장 잘 맞는 일차식을 찾아서 예측을 하는 알고리즘인 반면, 다항 회귀는 고차식을 찾아서 예측하는 알고리즘이다.  집 값 예측 문제를 생각해보자. 항상 집의 크기라는 변수가 주어진다는 가정을 했고 이걸 하나의 속성으로 이용했는데 사용하는 데이터가 항상 이렇게 하나만 사용해도 의미가 있는 완벽한 변수일 수는 없다. 예를 들어 집이 사각형이라고 가정하고 집 크기 대신 집의 높이와 너비 데이터만 있다고 하자.사실 아무리 너비가 커도 높이가 작거나, 높이만 크고 너비만 작으면 크기가 작고 구조가 효율적이지 않기 때문에 집 값이 높지 않다. 사실 이 두 변수들보다 집값을 예측하는 데 훨씬 좋은 수치는 이 둘을 곱한 값, 집의 넓이다.단순 선형 회귀를 사용하면 이 두 변수가 서..

차원 축소 - PCA(주성분분석)

PCA(Principal Component Analysis): 대표적인 차원 축소 기법 중 하나로, 여러 차원들의 특징을 가장 잘 설명해주는 차원인 주성분(Principal Component)을 이용하여 차원을 축소하는 방법 PCA의 동작 과정1. 데이터 표준화 및 원점 이동PCA를 하기 위해선 데이터의 단위를 통일해야 한다. 아래 예시를 보면 키를 표시한 단위는 m이고 신발의 단위는 mm인데, 이렇게 변수의 단위가 다르면 두 변수의 영향이 PCA 결과에 고르게 반영되지 않고 상대적으로 큰 값이 들어간 변수의 영향이 더 많이 반영되게 된다. 따라서 PCA를 적용하기 전에는 변수 간 단위를 통일해주는 '표준화' 과정이 필요하다.  데이터를 표준화하면 변수의 단위 뿐만 아니라 데이터의 중심 지점이 원점이 되..

차원 축소 - 차원의 저주

차원의 저주데이터에서 '차원'이란 변수의 개수를 의미한다. 즉, 변수가 1개인 데이터는 1차원 데이터, 2개인 데이터는 2차원 데이터, n개인 데이터는 n차원 데이터라고 부른다. 이때, 아래와 같은 데이터는 변수가 6개이기 때문에 6차원 데이터이다. 만약 recency와 age라는 2개의 변수만 가지고 있는 2차원 데이터라면 children, spent_all까지 4차원으로 구성된 데이터보다 정보가 적다. 마찬가지로 purchase_num_all 과 family_size 를 모두 포함한 6차원 데이터라면 2, 4차원보다 더 많은 정보를 가지게 된다. 따라서 차원이 높은 데이터를 분석에 활용하면 더 많은 정보를 반영한 결과를 얻을 수 있다.  그러나오히려 데이터의 차원이 너무 많아지면 분석의 정확도가 떨어..

클러스터 분석 - 계층, 밀도, 분포 기반 클러스터링, DBSCAN, GMM

from sklearn.mixture import GaussianMixturen_components = 4 # 분포 개수random_state = 10 # 모델 고정model = GaussianMixture(n_components=n_components, random_state=random_state)# GMM 모델 학습model.fit(df)df['gmm_label'] = model.predict(df)# 시각화sns.scatterplot(x=df[0], y=df[1], hue=df['gmm_label'], palette='rainbow', alpha=0.7, s=100)계층 기반 클러스터링: 유사한 데이터를 묶은 클러스터들을 층으로 쌓아가며 클러스터링 하는 방식데이터간 관계를 쉽게 파악할 ..