회사에서 django를 사용하여 챗봇을 만들었다. 오늘은 왜 django를 사용해서 챗봇을 만들었는지부터 django를 AWS EC2에 배포하는 방법, EC2에서 OS(AMI) 선택하는 방법에 대해 알아보고자 한다. 왜 Django를 사용하여 챗봇을 개발하였는가? 챗봇을 개발할 수 있는 프레임워크는 django, flask, fast api 등이 있다. 현재 개발할 수 있는 인력이 2명이다. 개발할 수 있는 인력이 모두 경험해 본 프레임워크가 django이다. 따라서, 러닝커브가 가장 짧을 것이라 생각했다. 해당 챗봇을 회사 내부분들이 사용해 볼 수 있도록 AWS EC2에 배포 하기로 결정이 됐다. 챗봇 코드는 github에 업로드 되어 있어 git repository를 이용해 EC2에 옮기기로 하였다...
M1 mac으로 Okt 형태소 분석기를 사용해 토큰화를 해보기 위해 Konlpy를 돌려보려다가 에러를 발견했다. 처음에 다른 사람들과 동일한 방법으로 시도를 해보았지만 해결이 되지 않았다. M1 Mac에서의 JVM/JDK 문제 · Issue #353 · konlpy/konlpy M1 칩이 탑재된 맥에서 java 환경변수가 설정되어 있지 않거나, JDK가 설치되어 있고 환경변수가 설정되어 있더라도 JDK에 따라 konlpy를 사용할 때 다음과 같은 오류가 발생합니다. # Test code from konlpy github.com 다행히 나와 같은 문제를 가지고 있는 블로그를 찾게 되었다. [Python] M1 mac Konlpy 오류 : No JVM shared library file (libjli.dyl..
지난 글에서 모델 파인튜닝을 진행하기전에 고려해야할 사항 (컴퓨터 환경, 모델선택, 데이터셋 선택 등)과 파인튜닝 기법에 대해 알아보았다. 오늘은 모델을 로컬 환경에서 파인튜닝하는 과정에 대해서 소개하고자한다. 모델을 파인튜닝 하는 과정은 크게 다음과 같다. 데이터 수집 데이터 전처리 모델 학습 모델 평가 데이터 수집 지난 글에서 데이터셋으로 korean_rlhf_dataset 에서 2000개, 자체 제작 데이터 50개를 사용하기로 하였다. 1. korean_rlhf_dataset 데이터셋 다운로드 및 2000개 데이터 추출 git clone https://huggingface.co/datasets/jojo0217/korean_rlhf_dataset import jsonlines # Read the fi..
회사에서 요즘 LLM을 사용하기 위해 다양한 테스트 코드도 작성해보고, 리서치를 진행 하고 있다. 그러던 중 LLM 모델을 파인튜닝 해볼 기회가 생겼다. 그 과정에서 겪은 문제들을 중점으로 기록하고자 한다. 오늘은 모델 파인튜닝을 진행하기전에 고려해야할 사항, 파인튜닝 기법에 대해 설명하고자 한다. 1. 컴퓨터 환경 LLM 모델을 파인튜닝하기 위해서는 반드시 필요한 것이 GPU 사양이다. 회사에서 Nvidia A6000 48GB 2개를 지원해주셨고, Cuda 또한 설치되어 있는 상황이었다. 2. 어떤 LLM 모델을 파인튜닝 해볼 것인가? Nvidia A6000 48GB 2개로 돌릴 수 있는 모델은 아무래도 한정적일 수밖에 없었다. 영어로 뛰어난 성능을 가진 모델이 많은 것으로 알고 있다. 그래서 일단, ..
문자열 포맷팅이란 문자열 속 특정한 위치에 특정한 값을 삽입해 주는 것을 말한다. Django 미니 토이 프로젝트를 진행하면서, 문자열 포맷팅을 하게 되었다. python 문자열 포맷팅 방법에는 1. % 기호 사용하기, 2. format() 사용하기 3. f 문자열을 사용하기. 이 3가지 방법 중에서 나는 문자열의 어떤 위치에 어떤 변수의 값이 들어가는지 명확하게 표현하여 가독성이 좋은 3번을 사용하여 프로젝트를 진행했다. f-string 파이썬 3.6 이후 버전부터 지원하는 새로운 문자열 포맷팅 방법이다. f-string을 사용하면 기존의 문자열 포맷팅 방법보다 간편하고 가독성이 좋아졌다. f-string을 사용하려면 문자열 앞에 f를 붙이고, 중괄호 안에 변수나 표현식을 넣으면 된다. 중괄호 안에서 ..
파이썬에서 프로젝트를 진행할 때는 각각의 프로젝트 별로 가상환경을 만들어서 진행해 주는 것이 좋다고들 말한다. python 책을 보며 따라할 때는 왜 굳이 가상환경을 생성해줘야하지?라는 의문점이 있었다. 하지만 Django를 이용한 미니 토이 프로젝트를 진행하다 보니 가상환경의 필요성을 알게 되었다. 1. 버전 관리 문제를 해결하는 데 도움을 준다. python 패키지들은 시간이 지남에 따라 업데이트된다. 특정한 프로젝트 하나를 위해 예전 버전의 패키지를 로컬에 계속 유지하거나 패키지가 업데이트 될 때마다 프로젝트의 코드를 일일이 수정해야 하는 문제가 발생한다. 2. 다양한 프로젝트의 라이브러리끼리의 충돌 방지 프로젝트를 진행하다보면 다양한 라이브러리와 패키지들을 받아서 사용하게 된다. 그러다보면 각 라..