me

[python/development] project Luna 설치 및 1차 개발 완료
2023.11.16 / , ,

project Luna 란?

project Luna 는 매뉴얼에 대한 질문을 하면 내가 가진 매뉴얼에 대한 데이터를 기반으로 답을 해주는 AI이다. 학습은 따로 json으로 데이터를 만들어서 시켰고, 답변은 1차로 HTML에 동일한 질문 유형이 있으면 HTML 형식(이미지와 css화 된)으로 답해주며 없으면 자신이 학습한 대로 텍스트로 대답하는 콘셉트를 가지고 만들어 졌다.

아래는 내가 아무것도 모르는 상태에서 AI 개발을 위해 설치 했던 프로그램 등을 정리해 두었다.
마지막 프로젝트 정리 내용은 : #project-Luna-1차-마무리 여기에…


project Luna 기본 셋팅

Hugging Face사의 Transformers 라이브러리 + Pytorch 프레임워크 사용

가상환경 설치

D:\Python\python311\python -m venv vLuna

현 시점 최신 버전이 3.12이나 pytorch 문제로 3.11 버전 선택

이유는 [python/error] pytorch설치 에러- No matching distribution found for torch 여기에…

pip 버전 업데이트

python.exe -m pip install --upgrade pip

Pytorch 설치

pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121

transformers 보다 pytorch를 꼭 먼저 설치 해야 함

이유는 [python/error] transformers 설치 에러 – error: subprocess-exited-with-error 이래서 ㅠㅡㅠ

Transformers 설치

pip install transformers

Pandas 설치

pip install pandas

openpyxl 설치

엑셀 파일 읽고 쓰는 용도

pip install openpyxl

sklearn 설치

pip install -U scikit-learn

Django 설치

pip install Django==4.2.7

django-admin startproject back .
pip install mysqlclient
pip install django-cors-headers

# DB + setting

django-admin startproject back .
python manage.py startapp web
python manage.py startapp training

python manage.py makemigrations
python manage.py migrate

python manage.py runserver

python manage.py createsuperuser

project Luna 추가 라이브러리 설치

pip install beautifulsoup4

자연어 처리

pip install transformers # 문맥 고려용 DistilBERT 쓰기 위해서

pip install soynlp       # 한국어 자연어 처리 용
pip install soyspacing   # 한국어 띄어쓰기 용

pip install gensim       # 자연어처리 -  데이터셋
pip install nltk         # 영어 자연어 처리 용
python -m nltk.downloader omw-1.4

 
pip install konlpy 

konlpy 는 선행 설치가 많았음. 그래서 관련 내용은 [설치/패키지] 파이썬 – konlpy (한국어 NLP) 한국어 정보 처리 여기 따로 정리 하였다.


project Luna 1차 마무리…

일단 1차로 HTML에서는 꽤 높은 정답 확률을 가졌고, 자신이 학습한 데이터 대답 확률은 거의 바보일 정도인 결과를 보여주었지만, 학습시킨 기간이 며칠 되지 않았기에 앞으로 남은 건 학습 데이터를 모아서 학습시키는 것만 남은 상태에서 일단 2062개 데이터로 1차 개발 마무리를 지었다.

처음 해보는 AI라 중간에 몇 번의 변경이 있었지만 결국은 질문에 대해 가장 유사한 질문을 찾는 CNN 기반Word2Vec를 보충해 주는 분류 타입으로 마무리가 되었다. 전처리에는 soynlp, konlpy, soyspacing, mecab 등을 사용하였다.

질문에 대한 답이 없으면 아직 데이터 학습을 거의 시키지 않아서 엉뚱한 답변을 하지만… 만약 보충 하게 된다면, 데이터를 추가하고 학습을 더 시킨다면 조금 더 정확해지지 않을까…

추후 이어서 하고 싶으면 데이터 추출은 세팅해 놓았으니, 엑셀에 많은 데이터를 추가해서 학습 명령어를 눌러지면 되지만… 아마도 이 프로젝트로 돌아올 일은 없을 듯하다. 사실 1차 마무리라고 한 건 조금의 미련이 남아서 그런 걸지도 모르지만…


Pytorch : https://pytorch.org/

Transformers : https://huggingface.co/docs/transformers/v4.39.0/ko/index

Soynlp: https://datascienceschool.net/03%20machine%20learning/03.01.04%20soynlp.html

soyspacing : https://github.com/lovit/soyspacing

gensim : https://radimrehurek.com/gensim/

nltk : https://www.nltk.org/

konlpy : https://konlpy.org/ko/latest/