project

💻 프로젝트/🧸 TOY-PROJECTS

[토이프로젝트-공감 챗봇] 프로젝트 개요

이번에 NLP를 주제로 작은 토이 프로젝트를 진행했는데, 자신의 심리를 작성하면 그것에 공감해 주거나 상담해 주는 챗봇을 만들어봤다. 참고자료: https://wikidocs.net/157001 https://hoit1302.tistory.com/162#[1]kogpt2%EA%B8%B0%EB%B0%98%EC%8B%AC%EB%A6%AC%EC%BC%80%EC%96%B4%EC%B1%97%EB%B4%87 본 프로젝트는 skt의 생성 모델, KoGPT2를 fine-tuning 하여 사용했으며, 데이터셋은 유명한 송영숙 님의 챗봇 데이터셋을 사용했다. 자세한 코드는 깃허브를 참고하면 좋을 것 같다. 1. 데이터 전처리 우선 사용한 데이터를 df에 저장하고 df.head()를 실행해 보면 다음과 같다: 여기서 lab..

💻 프로젝트/🧸 TOY-PROJECTS

[DeepLook] 6. 최종 결과물, 이후 에러 핸들링과 마무리

최종 배포 링크 https://deep-look.vercel.app 에러 핸들링 백엔드에 연결을 마쳤을 때쯤, 백엔드와 프론트엔드 작업이 모두 완료되었다. 그러나, 모델에 사진을 업로드 하는 부분에서 계속 잘 업로드가 되지 않아 다음과 같은 에러들이 발생했다. 1. 413 에러 첫번째는, 이미지 업로드 시, base64로 인코딩 된 값이 전송되면서 발생한 413 에러였다. 413 에러는 많이 본 경험이 없던 터라, 서칭해 보았는데, 해당 에러가 발생한 이유는 이미지가 너무 컸기 때문이었다. Nginx에서 기본적으로 요청 엔티티의 크기는 1MB로 제한이 되어 있기 때문에, 1MB가 넘는 이미지를 업로드했을 때 413 에러가 발생했던 것이다. 이에, 최대 50MB까지 업로드할 수 있도록 nginx 설정을 변..

💻 프로젝트/🧸 TOY-PROJECTS

[DeepLook] 5. 백엔드 연결

이전까지는 프론트 쪽 작업만 맡아서 하고, 백엔드는 node js로 한번 맛본 상태였는데, 갑작스레 웹과 백을 연결해야 하는 태스크가 주어졌다. 시간이 없고, 모델이 규모가 있는 모델은 아니어서 flask를 사용하기로 결정했다. 더 자세한 코드를 보고 싶으면 깃허브를 참고하길 바란다. (좀 난잡할 수 있음 주의) 백엔드 모델과 연결 시 거친 단계는 다음과 같다: pickle 파일을 만들어 모든 연예인의 얼굴 임베딩을 저장한다. client 측에서 post 요청을 보냈을 때 이미지 데이터를 받아 임베딩을 추출한다. 추출한 임베딩과 가장 유사한 임베딩을 pickle 파일로부터 로딩한다. 추출된 얼굴 임베딩과 사전 학습된 임베딩 간의 유사도를 계산한다. 가장 유사한 유명인의 이니셜과 유사도를 JSON 형식으로..

💻 프로젝트/🧸 TOY-PROJECTS

[DeepLook] 4. 모델 선정 및 학습

사진 전처리 이후, 모델을 선정하고 학습시키는 과정을 거쳤다. 모델의 후보는 ResNet, EfficientNet, Arcface가 있었는데, 가장 얼굴 유사도 부분에서 큰 성능을 보이는 Arcface 모델을 선정했다. 더 자세한 과정은 코랩을 통해 확인할 수 있다. 1. CSV 파일 생성 우선 전처리된 사진들의 이름(이름_순번 형태)과 해당 인물들이 label 된 csv 파일을 생성했다. 2. Train, Test dataset 분리 항목별로 70%는 train, 30%는 test의 데이터셋으로 분리했다. # 이니셜을 하나의 배열로 모으기 class_name_list = [] tmp=df.copy() for initial in tmp['class']: if initial not in class_name..

장영준
'project' 태그의 글 목록