[BCT AI Chatbot 프로젝트] 대규모 데이터 임베딩 처리 시 고려사항 (1)

Column이 15개 있는 14만여개의 해외 기업 데이터를 임베딩 및 트레이닝 하여 커스텀 모델을 생성한 다음 이 파인튜닝한 모델을 인공지능 챗봇에 장착하여 해외 기업 데이터에 관한 질문에 최적의 답변을 해 주는 프로젝트를 수행중에 있습니다.

 

먼저, 전체 프로세스를 정리해 보면 대략 (1) column이 15개 있는 14만여개의 CSV 데이터를 불러와서 DB에 저장하는 것 (2) 각 column 데이터를 한 문장으로 변환하는 것, (3) 14만여개의 저장된 각 문장을 임베딩 처리하는 것, (4) 14만여개 문장을 GPT 학습을 위한 jsonl 포맷으로 변환하는 것, (5) GPT 학습시키고 커스텀 모델을 만드는 것, (6) 답변을 위한 최적의 방안을 찾는 것 정도가 될 것 같습니다.

 

(1) 15개 column이 있는 14만여개의 CSV 데이터를 불러와서 DB에 저장

CSV 칼럼과 매핑될 필드 값을 커스텀하는 기능, CSV 포맷을 import 하면서 필드 값에 매핑하는 기능은 워드프레스 플러그인으로 처리 가능하여 14만여개 CSV 데이터 처리 시 어려움은 없습니다. 단, 데이터 업로드에 2-3 시간 걸릴 수 있습니다.

 

(2) 각 column 데이터를 한 문장으로 변환

15개 컬럼을 한 문장으로 변환하는 작업은 코드 작업으로 처리해야 합니다. 코드 작업이 완료된 결과 화면은 다음과 같습니다.

 

(3) 14만여개의 저장된 각 문장을 임베딩 처리

14만여개의 문장을 하나씩 임베딩 처리하는 데에는 상당한 노력과 시간이 들어갑니다. 그래서 좀 편하게 작업하기 위해 일부 자동화 처리 하였습니다.

특히, 이 단계 작업에서는 워드프레스에서 커스텀 포스트 타입을 생성하여 처리하다 보니 커스텀 포스트 타입을 처리해야 하는 추가 작업이 있습니다.

 

(4) 14만여개 문장을 GPT 학습을 위한 jsonl 포맷으로 변환

이 부분에 좀 어려움이 있네요. 물리적인 데이터 양이 많다 보니 자동화 처리를 해야 하는데, 이를 어떻게 처리하는 게 효과적일지 좀 고민이 되었는데, 커스텀 포스트 타입의 14만여개 데이터를 하나씩 불러와서 이를 prompt 와 completion으로 변환하는 conveter를 개발하였습니다. 변환 완료된 예는 다음과 같습니다.

 

다음 글에서 이어서 설명하겠습니다.

 

Leave a Reply

Your email address will not be published. Required fields are marked *

인기 글

Ubuntu 22.04 LTS에 Python 3.8 or 3.9 설치 방법
서버 : Vultr 클라우드OS: Ubuntu 22.04 LTS사용자 계정 생성하여 설치 진행함1. Start with the system updatesudo apt update...
오라클 클라우드 OCI 가입 드디어 성공 했습니다 (상세 후기)
2023년 2월 16일에 ‘오라클 클라우드 지급 검증 실패 글‘을 남긴 적이 있습니다.그 때 검색을 통해 해결 방법을 찾아 보았고, 당시 성공했던 분들의...
WSL2/Ubuntu 22.04 LTS에 Anaconda 설치 
WSL2/Ubuntu 환경에서 Python 버전별로 가상환경을 만드는 방법 중 그나마 Anaconda 방법이 좋은 것 같네요. 설치 방법은 간단합니다.1. apt update사용자...
AWS 인스턴스 유형 변경 방법
AWS 인스턴스 유형을 변경하기 위한 방법에는 다음 2가지가 있습니다.   1. 첫 번째 방법 AMI 이미지 생성 후 해당 이미지를 복원하여 신규 EC2 인스턴스를 생성하는...
Ubuntu 20.04에 MySQL 5.7 설치
비씨티원 인공지능 서비스 플랫폼 BAP(Bctone AI service Platform)의 설치 환경은 공식적으로 Ubuntu 18.04와 MySQL 버전 5.7 입니다. 최근 Ubuntu...