출처 : aws.amazon.com/ko/what-is/embeddings-in-machine-learning

 

 

임베딩(Embedding)이란?

어떤 “이산적(discrete 구분되는)”인 객체(예: 단어, 문장, 이미지, 그래프 상의 노드 등)를 연속적인 벡터 공간으로 변환(매핑)하는 방법. 이산적인 데이터(예: ‘단어’, ‘문서’, ‘이미지’, ‘엔티티’)를 숫자 벡터로 표현해주기 때문에, 컴퓨터가 수학적으로 취급하거나 계산하기 쉬워짐. 이때 벡터 간의 거리나 방향을 통해 유사성, 문맥, 의미 관계 등을 어느 정도 추론할 수 있게 됨. * 이미지와 텍스트는 다른 종류의 정보지만, CLIP 모델 같은 것으로 동시에 학습 시킬 경우 벡터가 가까워 질 수 있음 

 

"Embedding

고차원 공간에서 단어나 이미지와 같은 데이터를 수학적으로 표현한 벡터뭉치. 데이터 처리 시 각 데이터에 일대일로 대응하는 벡터를 만들어 이를 밀집된 벡터 뭉치로 두게 되는데 이를 임베딩이라 하는 것이다.

기존에도 자연어를 처리하는 데에는 아스키 코드와 같은 언어 모델들이 이미 존재했지만 이는 단순히 단어와 컴퓨터가 인식하는 언어 사이의 일대일 대응일 뿐이며, 단어의 뜻이나 속성을 나타내는 속성은 전혀 없었다. 때문에 이러한 기존의 언어모델을 이용하여 단어의 뜻이나 맥락이 필요한 응용에는 한계가 있을 수밖에 없었으므로 이러한 응용을 위해서는 단어가 가진 속성을 포함한 언어 체계가 필요했다. 이러한 방법론의 일환으로 단어의 각각의 속성을 벡터로 치환한 후에 이러한 속성들의 합을 벡터 뭉치(=임베딩)로 만들어 단어에 대응시키는 방법론이 제시된 것이다. 이 경우 두 단어 간의 유사성을 측정하거나 언어 번역 또는 텍스트 분류와 같은 작업을 수행하는 것이 매우 수월하게 된다. 이와 같은 원리는 마찬가지로 이미지에도 적용할 수 있으며, 이를 응용하면 이미지 분류 또는 이미지 검색과 같은 작업을 좀 더 수월하게 수행할 수 있게 된다.
대표적인 임베딩의 생성 알고리즘이 그 유명한 CLIP 모델. CLIP 모델은 텍스트와 이미지의 임베딩을 생성할 수 있는 사전 훈련된 신경망으로, 자연어를 입력할 경우 이를 임베딩으로 변환하여 77 x 768 숫자 값 목록이 생성된다. AI 그림 모델로 유명한 Stable Diffusion이 바로 이 CLIP 모델을 사용하여 만들어진 그림 생성 모델이다. SD를 써 본 사람이라면 한번쯤은 '클립 건너뛰기' 옵션을 보았을텐데, 이 클립 건너뛰기에서의 클립이 바로 이 CLIP 모델을 의미하는 것이다."

 

"CLIP model

OpenAI에서 개발한 신경망 아키텍처로, 자연어를 이해하고 Computer Vision을 구현하는 등 인간의 언어/이미지를 컴퓨터로 처리할 수 있게끔 해주는 모델이다.
CLIP 모델은 ViT(Vision Transformer)와 Transformer 언어 모델(Transformer-based language model)을 결합하여 이미지와 텍스트를 모두 처리할 수 있게 만들어놓은 모델이다. 여기서 ViT란 비지도학습을 통해 이미지에서 특징을 추출할 수 있도록 만들어진 Transformer가 이미지를 처리할 수 있도록 이미지를 patch 형태로 처리할 수 있도록 하는 모델이다. 이미지 추출을 할 수 있는 모델을 ViT, CNN 모델로 테스트했다. Transformer 언어 모델은 사전훈련(pre-trained)을 통해 텍스트 데이터를 학습해놓은 모델이다.
CLIP 모델에 자연어를 입력할 경우 이를 임베딩으로 변환하여 77 x 768 숫자 값 목록이 생성되며, 이 임베딩의 숫자값을 바탕으로 이미지 처리가 가능한 것이다.
CLIP 모델은 2022년부터 우후죽순으로 개발된 AI 그림의 기반이 모두 여기에 있다 해도 전혀 과장이 아닐 정도로 AI 개발에 있어 강력한 도구 중 하나이다. 이를 통해 텍스트 및 이미지와 같은 복잡한 데이터를 처리하고, 컴퓨터가 이해하는 방식이 혁신적으로 개선되었기 때문."

 

"Stable Diffusion

Stability AI에서 오픈소스 라이선스로 배포한 text-to-image 인공지능 모델이다. 2022년 8월 22일 출시했다. 대다수의 이미지 인공지능들은 온라인에서만 서비스하는데, 스테이블 디퓨전은 개인의 PC로 실행 즉 '로컬 환경'으로 설치 및 실행 할 수 있는게 큰 차이점이다.
Stable Diffusion은 독일 뮌헨 대학교 Machine Vision & Learning Group (CompVis) 연구실의 "잠재 확산 모델을 이용한 고해상도 이미지 합성 연구"를 기반으로 하여, Stability AI와 Runway ML 등의 지원을 받아 개발된 딥러닝 인공지능 모델이다.
Stability AI는 영국인 에마드 모스타크(Emad Mostaque)가 만든 회사로, Stable Diffusion에 방대한 LAION-5B 데이터베이스를 학습시킬 수 있도록 컴퓨팅 자원을 제공하였다. OpenAI의 Dall-e 2나 구글의 Imagen과 같은 기존 text-to-image 모델들과는 다르게 컴퓨터 사용 리소스를 대폭 줄여 4GB 이하의 VRAM을 가진 컴퓨터에서도 돌릴 수 있다...
... 2023년 7월 26일 Stability AI에서 SDXL 버전을 출시했다. 매개변수가 8억 9천만개에서 26억개로 약 3배 가량 늘어난만큼 세밀한 묘사가 기존의 SD 1.5보다 훨씬 뛰어나고 단어나 간단한 문장도 쓸 수 있다. 다만 퀄리티가 늘어난 만큼 요구 사양도 크게 늘어나서 여전히 1.5를 사용하는 사람들도 많다.
한국 시간으로 2024년 6월 13일, 매개변수 20억개 버전인 SD3 medium이 먼저 오픈소스로 풀렸다. 매개변수만 보면 SDXL보다 6억개 적지만, 내부 알고리즘을 Unet에서 MMDiT로 갈아치우고 보다 효율적인 방향으로 학습을 시키는 등 SDXL보다 가벼우면서 이미지의 품질이나 정확성은 훨씬 진보했다고 한다. 회사 관련인들의 주장으로는 일반인 선에서는 medium으로도 충분하고도 넘칠 성능이라고 한다. 미세 조정에서도 SDXL보다 더 효율적일 것이라고 장담한 것은 덤. 
다만 SDXL까지와 달리 SD3는 Stability AI에게 별도의 수수료를 지불하지 않는 한 비상업적 목적으로만 모델을 활용해야 하다보니 본격적인 보편화가 쉽지 않을 전망이다. 특히 SD3 기반 NovelAI Diffusion이나 Pony Diffusion 등 우수한 모델의 등장 시기가 더 미뤄질 가능성이 높다. 가장 대중적인 커뮤니티인 Civitai에서도 라이선스 문제가 해결되기 전까지는 SD3 관련 자료를 일시적으로 금지했으며, 결국 Stability AI 측에서 라이선스를 대폭 완화하는 방향으로 수정했다.
Stability AI가 Stable Diffusion 3로 갈팡질팡하며 삽질을 계속하는 사이, Black Forest Labs라는 Stability AI 출신 인원들이 설립한 신흥 인공지능 회사가 출범하면서 매개변수 120억짜리 강력한 그림 인공지능 모델인 FLUX.1을 선보였다. 물론 Stability AI도 이에 대응하듯이 개선판인 Stable Diffusion 3.1을 예고했고 훨씬 가벼우면서 FLUX.1 Pro에 못지 않게 우수한 이미지를 생성할 수 있다고 주장했지만, 유저들의 반응은 또 속냐며 차가운 상태다보니 실제로 상당한 개선을 선보여야 할 것으로 평가된다.
실제로 경쟁자의 등장 및 여러 비판으로 호되게 당한 것을 반면교사 삼았는지, 개선판인 Stable Diffusion 3.5는 호평을 받았다. 확실히 강력하기는 하지만 너무 무거워서 로컬 유저들에게 부담을 주는 FLUX.1에 비해서, 다양한 성능을 제공하는 SD3.5에 더 기대를 거는 유저들도 많이 나타났다."

 

 

 

임베딩의 중요성
NLP(자연어 처리) 분야에서는 주로 “단어, 문장, 문서” 등을 벡터로 바꿔서 텍스트 분석, 감정 분석, 질의응답, 기계 번역 등 다양한 과제에서 활용. 컴퓨터 비전(이미지 처리) 분야에서는 이미지나 영상 데이터를 CNN, Transformer 등으로 처리하여 특징 벡터(Feature Vector)로 변환함으로써 이미지 분류나 유사 이미지 검색 등에 사용함
기타 분야(추천 시스템, 지식 그래프 등)에서도 엔티티나 관계를 벡터화하여 유사성, 관련성, 추론 등에 사용함

 

 

정적 임베딩(Static Embedding) vs 문맥적(동적) 임베딩(Contextual Embedding)
Word2Vec, GloVe, FastText, Doc2Vec 등은 정적 임베딩을 만듦 → 한 번 학습하면 같은 단어(또는 문서)에 대해서는 항상 동일한 벡터가 나옴 
BERT, ELMo, Sentence-BERT 등은 문맥 의존적 임베딩 → 똑같은 단어라도 문맥에 따라 다른 벡터가 생성됨
이미지 임베딩에서는 CNN뿐 아니라 최근에는 Transformer 기반 방식(ViT, Swin Transformer 등)이 활발히 연구/활용되고 있다고 함. Knowledge Graph 지식 그래프 Embedding은 엔티티(점)와 관계(선)를 벡터 공간에서 수학적으로 모델링함으로써, 연결/관계를 예측하거나 새로운 지식을 추론할 수 있도록 함 

 

 

Embedding model 종류들 

 

1. 자연어 처리(NLP)에서의 임베딩 모델

 

(1) Word2Vec
개발자: Google (Tomas Mikolov 등)
특징: 단어를 벡터로 변환하며, 주변 단어(문맥)를 기반으로 의미를 학습
방법: CBOW(Continuous Bag of Words)와 Skip-gram 두 가지 방식
용도: 단어 간 유사성 계산, 텍스트 분석
예: "왕"과 "여왕"의 벡터가 비슷한 위치에 매핑됨

 

(2) GloVe (Global Vectors)
개발자: Stanford University
특징: 단어의 동시 발생 확률(Co-occurrence)을 기반으로 전역 통계 정보를 활용
장점: Word2Vec보다 단어 쌍의 관계를 더 잘 잡아냄
용도: 텍스트 분류, 감정 분석 등

 

(3) FastText
개발자: Facebook
특징: Word2Vec의 확장판. 단어를 n-gram(문자 단위)으로 쪼개 학습
장점: 드문 단어나 오타에도 강함
용도: 다국어 처리, 철자 오류가 많은 데이터에 유리

 

(4) BERT (Bidirectional Encoder Representations from Transformers)
개발자: Google
특징: 양방향 문맥을 고려해 단어 임베딩 생성. 정적인 벡터가 아니라 문맥에 따라 동적으로 변함.
장점: 문장 수준의 이해가 뛰어남
용도: 질의응답, 텍스트 생성, 감정 분석

 

(5) ELMo (Embeddings from Language Models)
개발자: Allen Institute
특징: 문맥에 따라 단어의 의미를 다르게 임베딩(동적 임베딩)
장점: 다의어(예: "bank"가 은행인지 강둑인지) 구분 가능
용도: 복잡한 NLP 태스크

 

(6) Sentence-BERT (SBERT)
특징: BERT를 개선해 문장 수준의 임베딩을 효율적으로 생성.
용도: 문장 유사도 비교, 클러스터링

 

 

2. 이미지 처리에서의 임베딩 모델

 

(1) CNN 기반 임베딩 (예: ResNet, VGG)
특징: Convolutional Neural Network로 이미지 특징을 추출해 벡터로 변환
용도: 이미지 검색, 얼굴 인식

 

(2) Vision Transformer (ViT)
특징: 트랜스포머 구조를 이미지에 적용해 패치 단위로 임베딩
용도: 이미지 분류, 객체 탐지

 

 

3. 기타 분야에서의 임베딩 모델

 

(1) Doc2Vec
특징: Word2Vec을 확장해 문서나 문단 전체를 벡터로 표현
용도: 문서 분류, 추천 시스템

 

(2) Knowledge Graph Embedding (예: TransE, DistMult)
특징: 지식 그래프(엔티티와 관계)를 벡터 공간에 매핑
용도: 관계 추론, 질문 답변

 

(3) Universal Sentence Encoder (USE)
개발자: Google
특징: 다양한 언어와 작업에 활용 가능한 범용 문장 임베딩
용도: 텍스트 유사도, 다국어 처리

 

+ Recent posts