목록분류 전체보기 (95)
Ssul's Blog

0. 영상을 요약해주는 AI만들기 위하여 - Youtube영상 정보를 어떻게 가져 올것인가? - 크롤링? 아마 잘 만들어 놓은 라이브러리가 있을 것이다. - 역시나 있다. yt-dlp, youtube-transcript-api 1. 유튜브 영상 정보 가져오기(채널명, 영상길이, 제목 등등) pip install yt-dlp - 설치하자. 해당 라이브러리는 youtube영상의 정보를 가져오는 라이브러리 import yt_dlp def get_youtube_video_info(video_url): ydl_opts = { 'noplaylist': True, 'quiet': True, 'no_warnings': True, } with yt_dlp.YoutubeDL(ydl_opts) as ydl: video_in..

0. 챗봇의 기본구조 class ChatLogCreate(generics.CreateAPIView): queryset = ChatLog.objects.all() serializer_class = ChatLogSerializer permission_classes = [AllowAny] def post(self, request, *args, **kwargs): client_id = request.data.get('client') client = Client.objects.get(id=client_id) if client.chat_counter >= 20: return Response({"detail": "대화 횟수가 20회를 초과하였습니다."}, status=status.HTTP_400_BAD_REQUEST..

0. 허깅페이스는 무엇인가?(huggingface.co) 허깅페이스(Hugging Face)는 인공 지능(AI) 분야에서 자연어 처리(NLP)를 중심으로 한 다양한 딥러닝 모델과 도구들을 제공하는 회사. 오픈소스 라이브러리인 'Transformers'를 통해 유명해짐. 이 라이브러리는 다양한 전처리 방법, 모델 아키텍처(BERT, GPT, T5 등), 그리고 후처리 방법을 포함하여 NLP 분야에서 광범위하게 사용. - AI관련 깃허브 느낌 - 내가 만든 모델/데이터셋을 Public, private로 올릴수 있고, Public일 경우 누구나 내가 올려놓은 데이터셋, 모델을 사용할수 있음 - 당연히 다른 사람이 만든 언어모델이 Public으로 공개되어 있다면, 나는 해당 모델을 기반으로 파인 튜닝이 가능함..

0. 멀티모달이란? - 기존의 챗봇, 이미지 구분 등은 텍스트면 텍스트, 이미지면 이미지, 단일한 데이터만 사용하였다. - 하지만, 요즘은 음성을 텍스트로, 텍스트를 입력하면 이미지가 나오고, 이미지를 입력하면 텍스트로 설명하는 모델이 나오고 있음 - 이런 것을 멀티모달이라고 한다. 대표적인 예로는 DALLE가 멀티모달이라고 할수 있다. - DALLE는 텍스트를 입력하면, 그림을 아주 잘 그려준다. 1. 멀티모달의 원리는? - 일반적인 이미지 분류, 문장생성 등의 방법을 CNN과 Transformer를 익히면서 이해했는데, 멀티모달은 어떻게 이뤄지는 것일까? 어떻게 텍스트를 이해하고 이미지를 만들어 주는 것일까? - 대학원에서 교수님께서 간단하게 알려준 개념은, 각각의 잠재공간으로 유사한 공간배치(?)로..

0. GAN 아이디어 - 이미지 생성자모델과 이미지 판별자 모델 두개를 만들어서, 서로 경쟁하듯 학습 - 생성자(Generator): 임의의 노이즈를 입력 받아 그럴듯한 이미지를 생성하는 기능 학습 - 판별자(Discriminator): 입력된 이미지가 실제 이미지인지, 생성자가 생성한 이미지인지 구분하는 기능 학습 - 생성자는 더 실제같은 이미지를 만드는 신경망을 학습하고, - 판별자는 입력된 이미지가 진짜 이미지인지, 생성된 이미지인지 판별하는 신경망을 학습한다. - 이렇게 둘이서 경쟁하듯 학습하면(생성기는 판별기를 속이려하고, 판별기는 생성기를 구분하려 함) 생성자는 정말 실사 같은 이미지를 만들어내게 될수 있다 - 물론 현실에서 판별자가 일찍 학습이 되어, 생성자가 그럴듯한 이미지 자체를 못만들어..

0. 신경망이 학습을 한다는 것 - 구두, 후드, 청바지, 면바지, 원피스, 운동화 등 총 10가지로 분류할수 있는 이미지가 10,000장 있다고 가정 - classification학습: CNN신경망 + 최종 노드가 10인 DNN + softmax로 학습 -> 이미지 입력되면 10가지중 1개로 알려줌 - (2차원으로)임베딩 학습: CNN신경망 + 최종노드가 2인 DNN 학습 -> 2차원 공간에 비슷한것끼리 뭉치는 개념 1. AE(오토인코더) 아이디어 - 그림을 생성하는 모델을 어떻게 만들수 있을까? - 이미지를 신경망에 입력하고, output역시 입력된 이미지가 나오는 신경망을 학습 가능하지 않은가? - 이미지를 입력받아 CNN을 통과하고, 최종적으로 2차원으로 줄이는 DNN을 붙여서 왼쪽 신경망(인코더..

0. MF와 FM의 차이 - MF는 user, item 두개의 변수를 K차원의 Latent factor로 만들어서 평점을 예측 - user, item 이외에 다른 변수들이 평점에 영향을 준다면? 그러면 FM을 사용 1. FM을 이해하기 - FM은 위 그림과 같이 하나의 평점에 대해서, 그에 영향을 준다고 판단되는 입력변수를 각각 임베딩하여 표현 - 이렇게 하면, 데이터로 가지고 있는 모든 평점에 대해서, 각각의 입력변수의 고유한 임베딩 벡터의 조합으로 표현 가능 - 평점을 예측하는 pred 모델식은 다음과 같음 - 모델의 업데이트 룰(feat. 교수님 강의록) 2. 코드로 구현하기 import numpy as np import pandas as pd from sklearn.utils import shuf..

0. GPT, ChatGPT차이점 GPT는 다음 단어를 귀신 같이 예측하는 모델이다. 우리가 이용하고 있는 모델은 이 GPT를 파인튜닝해서 만든 ChatGPT. ChatGPT는 gpt라는 다음단어를 아주 잘 예측하는 Pretrained된 모델을 파인튜닝하여서, 대화를 잘하게 만든 모델 그럼 어떻게 GPT에서 ChatGPT가 될수 있을까? Llama2모델을 파인튜닝하여, 나만의 ChatGPT를 만드는 방법을 알아보자 1. ChatGPT만들기 전체구조 우선 ChatGPT를 만들기 위해서, OpenAI에서 공개한 학습구조를 정리해보자. 1-1. SFT(Superviesed Fine-Tuning)을 통한 응답모델 만들기 SFT는 기존의 다음단어를 예측하는 gpt모델을 파인튜닝해서, 대화형 모델로 변화시키는 것이..

0. Memory-based vs Model-based - 지금까지 봤던 CF는 Memory-based의 추천시스템. 추천을 위해서 기존의 rating정보를 연산하여, 추천리스트를 생산 - Memory-based방식은 pred하는데 rating정보 모두가 매번 계산이 진행됨 - 이는 대량의 데이터에는 현실적으로 가능하지 않음. 매번 추천때마다 유사도 측정하고, 추천하는게... 연산이 너무 많음 - 오늘 이야기할 MF는 Model-based모델. 이 모델은 학습을 통해서 모델을 만들고, 이후 예측할때는 학습을 마친 모델로 바로 결과값을 내보냄 1. MF의 개념 - user를 특정한 latent factor로 임베딩 - Item역시 특정한 latent factor로 임베딩 - 이는 user와 item을 la..

0. 들어가며... GPT와 ChatGPT는 다른 아이. - GPT는 우리가 상상할수 없을 정도의 많은 텍스트 데이터를 가지고 학습한 Pretrained-Model. 이 모델은 다음단어를 귀신같이 잘 예측함. I am a ____를 입력하면, boy:45%, girl:44%, .......처럼 모든 단어들의 등장확률을 예측. 그중 높은 %를 가지는 단어를 출력하는 모델 - ChatGPT는 GPT라는 Pretrained모델을 RLHF, PPO 등을 통 파인튜닝해서 만든 챗봇형 모델 - 이번 글에서는 GPT 모델을 만드는 개념을 알아볼 예정 = 다음 단어를 예측하는 모델 1. 데이터 정리 모델이 학습을 하기위해서는 라벨링된 데이터가 많이 필요한데, 텍스트 데이터를 하나하나 다 라벨링하면 비용과 시간이 엄청..