본문 바로가기

전체 글

(42)
[알고리즘] ChatGPT - fine tuning #1 요새 ChatGPT가 핫 하다. Transformer에서 발전한 NLP 모델 중 가장 유명한 모델은 BERT와 GPT다. GPT 모델은 현재 4.0 버전까지 개발되었고, 현재 우리가 사용하는 ChatGPT는 GPT3.5 모델을 기반으로 한다. GPT3.0 버전에서 fine-tuning을 지원하는 모델은 "ada", "curie", "babbage", "davinci" 이며, 아쉽게도 ChatGPT의 근간인 text-davinci-003은 fine-tuning에 사용할 수 없다. 다만 ChatGPT 의 공개 API를 사용해서 Custom한 메세지를 생성하고자 Prompt 테스트를 해 보았다. Prompt 만으로도 내가 원하는 메세지를 출력할 수 있었지만, 메세지의 종류가 다양해질 수록 Prompt의 양이 ..
[알고리즘] ChatGPT - API 활용 #1 GPT3.5를 오픈한지 얼마되지도 않았는데, 벌써 GPT4.0이 오픈되었다. 최근까지 ChatGPT에 대한 여러가지 긍정적인 평가와 놀라움들에 대한 경험담이 올라오고 있음에도, 나는 그다지 새로울것이 없다고 치부해 버렸다. 이제부터라도 오만함을 버리고, 차근차근 새로운 경험을 배우는 자세로 ChatGPT를 공부하려한다. ▶ 확인하고 싶은 문제 나도 ChatGPT를 만들 수 있을까? ChatGPT를 확장하거나 재사용해서 새로운 AI를 만들 수 있을까? ChatGPT가 제공하는 기능을 어떻게 활용할 수 있을까? ▶ 활용하기 위한 방법 (2023.03.22 기준으로 내가 이해한 것) ChatGPT는 GPT3.5를 fine-tunning한 자연어처리 AI라는 점 ChatGPT의 stable version이 gp..
[알고리즘] 임베딩과 손실함수 선택하기 #4 알고리즘은 크게 분류(Classification)과 회기(Regression)으로 나눌 수 있다. 이러한 알고리즘을 사용하여 데이터를 학습하고, 서비스하기 위해서는 임베딩 작업과 손실함수를 선택하는 것이 필수다. 다만 임베딩을 위한 인코딩 방법이나 손실함수의 종류가 다양하기 때문에 Case에 따라 선택방법을 정리해 본다. "Classification vs Regression" 분류와 회기는 N개의 입력값을 M개로 출력값으로 변환한다는 점에서 유사하다. 하지만, 분류는 출력값(y1, y2 ... ym)을 "0~1" 사이값으로 출력하며, 모든 출력값의 합이 "1"된다. 즉 분류 알고리즘의 출력값은 확률값으로 이해해도 무방하다. 이와는 다르게 회기 알고리즘의 출력값(y1, y2 ... ym)은 범위가 없는 연..
[알고리즘] Merge를 통한 데이터 Filtering & Mapping #3 "데이터프레임 병합", pd.merge() 활용! A와 B 두 개의 데이터 소스가 있다. 예를 들어 A는 1일 동안 우리 회사의 "과자"를 구매한 고객들의 정보이고, B는 1일 동안 "음료"를 구매한 고객들의 정보라고 하자. 이때 과자와 음료를 구매한 고객이 추가로 구매할 상품이 무엇인지 알고 싶다면? 이 경우 Classifcation 알고리즘을 사용해서 추가 상품을 예측하는 모델을 만들 수 있다. 또한 모델 학습을 위한 학습 데이터, "과자와 음료를 구매한 고객 정보와 그 고객이 추가 구매한 상품 정보"가 필요하다. 따라서, 1일 동안 과자를 구입한 고객과 음료를 구입한 고객 정보를 합쳐서 하나의 데이터셋을 만들어야한다. 생성할 수 있는 데이터는 3가지로 구분할 수 있다. 과자와 음료를 모두 구매한 고..
[알고리즘] 알고리즘을 활용한 AI모듈 개발 방법 #2 알고리즘 개발? 알고리즘을 활용한 모듈 개발? 어찌되었든 내가 생각하는 최선의 개발환경을 구성하는 방법을 정리했었다. https://jarikki.tistory.com/47?category=959329 [알고리즘] 로컬 개발 환경 구축 #1 머신러닝과 딥러닝 알고리즘을 활용하는 방법과 알고리즘을 탑재한 AI모듈을 개발하는 방법을 정리한다. AI모듈 개발에 필요한 구성 요소를 나름대로 정리해 보았다. AI 모델 개발을 위한 구성요 jarikki.tistory.com 이제 실제 AI 서비스를 위한 모듈 개발 방법에 대해 나름의 방법론을 정리해 본다. AI 서비스를 개발하기 위해 우리는 Keras, Pytorch 등 다양한 프레임워크를 사용할 수 있다. ML 프레임워크의 사용 방법과는 별개로 어떻게 하면 조금..
[알고리즘] 로컬 개발 환경 구축 #1 머신러닝과 딥러닝 알고리즘을 활용하는 방법과 알고리즘을 탑재한 AI모듈을 개발하는 방법을 정리한다. AI모듈 개발에 필요한 구성 요소를 나름대로 정리해 보았다. AI 모델 개발을 위한 구성요소 실행모듈 : 알고리즘을 활용하여 Training을 하거나, Surving(예측, 추론 등)을 하기 위한 로직을 담당하며, 학습모듈, 예측모듈, 유틸리티모듈로 구성됨 모델 : 회기분석, 클러스터링 등 개발 목적에 적합한 Algorithm Libraray 또는 Package 모음으로 구성(예: KcElectra, Kmeas, BERT 등) 데이터 : 모델 학습 또는 예측을 위해 Trainig, Test, Validation 또는 Surving에 사용할 원본 데이터(정형/비정형 데이터) (참고) 유틸리티 모듈이란 원본 ..
Wikibase 지식 그래프 환경 구성(1/3) Wikbase 를 이용한 지식그래프 테스트 환경을 구성했던 내용을 정리한다. l Wikibase 개념 글로벌 지식그래프 중 하나인 Wikidata 운영의 기반이 되는 시스템 MediaWiki를 프론트엔드 시스템으로 사용하며, MediaWiki의 확장기능 형태로 설치되는 방식 JSON, RDF/XML, N3, YAML 등 포맷으로 data export를 지원 Wikibase의 핵심 구성요소 아래와 같음 요소명 필수여부 기능 MariaDB/MySQL or SQLite 필수 Mediawiki data 저장 MediaWiki 필수 Wikibase 위한 기본 시스템 Wikibase Extension 필수 Wikibase를 위한 필수 확장 기능 Other Extensions 선택 활용 편의를 위한 확장 기능 Wik..
[지식그래프] 1. Neo4j 설치 Windows 10에서 Docker, Docker-Compose 활용하기 [개발환경] Docker Desktop 설치 Windows 10에서 Docker를 사용하기 위해 Docker Desktop을 설치하는 방법을 정리한다. Windows 10은 Home에서는 Hyper-V를 지원하지 않기 때문에 Pro 버전에서만 Docker를 사용할 수 있었다. Docker Desktop은 WSL.. jarikki.tistory.com 지식 그래프(Knowlege Grphs)는 다양한 소스로부터 축적한 시맨틱 정보를 사용하여 검색결과를 고도화하기 위한 데이터 모델링 기법이다. Graph Database란 지식 그래프 데이터를 저장하는 Data Storage(저장소)를 말하며, AWS Neptune, Neo4J, Bal..