2023. 8. 2. 12:50ㆍ인공지능
임베딩은 특정한 데이터 유형의 벡터 표현입니다. 임베딩은 복잡한 구조를 숫자의 벡터로 변환하여 기계가 데이터를 이해하고 처리할 수 있게 만드는 역할을 합니다.
임베딩은 마치 단어나 이미지를 특별한 방법으로 숫자로 바꾸어 주는 마법 같은 것입니다. 그러면 기계가 우리가 사용하는 단어나 그림을 이해할 수 있도록 도와주는 겁니다.
예를 들어, 우리가 고양이와 개 사진을 보면 바로 알아차릴 수 있지만, 컴퓨터는 그렇게 쉽게 이해하지 못합니다. 그래서 우리가 사진을 임베딩으로 바꾸어주면, 컴퓨터도 그림을 더 쉽게 이해할 수 있게 됩니다.
또한, 단어를 임베딩으로 바꿔주면 컴퓨터가 단어의 뜻을 알아차리기 쉬워집니다. 예를 들면, '사과'라는 단어를 임베딩으로 바꾸면, 컴퓨터는 '사과'가 과일임을 알게 될겁니다.
이렇게 임베딩은 기계와 우리 사람 사이의 소통을 돕는 역할을 해주는데, 마치 기계와 우리 사이의 번역기 같은 존재랄까요!
임베딩 예시 : chatGPT와의 대화
Q1 : 단어 벡터값을 줄게...
# 단어 임베딩의 간단한 예시
word_embeddings = {
'king': [1.1, 2.3, 3.4],
'queen': [1.2, 2.4, 3.5],
'man': [0.9, 2.1, 3.5],
'woman': [1.0, 2.2, 3.6]
}
여기서 king - man + woman 은 뭐야?
A1 : 좋습니다! 다시 주어진 임베딩에서 'king' - 'man' + 'woman'을 계산해보겠습니다:
'king' - 'man' + 'woman' = [1.1 - 0.9, 2.3 - 2.1, 3.4 - 3.5] + [1.0, 2.2, 3.6]
= [0.2, 0.2, -0.1] + [1.0, 2.2, 3.6]
= [0.2 + 1.0, 0.2 + 2.2, -0.1 + 3.6]
= [1.2, 2.4, 3.5]
따라서 'king' - 'man' + 'woman'의 값은 [1.2, 2.4, 3.5]입니다.
Q2 : 그럼 이거에 해당하는 단어는 뭐야?
주어진 임베딩에서 가장 가까운 벡터를 찾아보겠습니다.
* 유클리드 거리 : 두 점 사이의 직선 거리를 나타내는 기하학적 개념
1. 유클리드 거리 계산:
- 'king'와 [1.2, 2.4, 3.5] 벡터 간의 유클리드 거리: sqrt((1.1 - 1.2)^2 + (2.3 - 2.4)^2 + (3.4 - 3.5)^2) ≈ 0.141
- 'queen'과 [1.2, 2.4, 3.5] 벡터 간의 유클리드 거리: sqrt((1.2 - 1.2)^2 + (2.4 - 2.4)^2 + (3.5 - 3.5)^2) ≈ 0.0
- 'man'과 [1.2, 2.4, 3.5] 벡터 간의 유클리드 거리: sqrt((0.9 - 1.2)^2 + (2.1 - 2.4)^2 + (3.5 - 3.5)^2) ≈ 0.316
- 'woman'과 [1.2, 2.4, 3.5] 벡터 간의 유클리드 거리: sqrt((1.0 - 1.2)^2 + (2.2 - 2.4)^2 + (3.6 - 3.5)^2) ≈ 0.141
2. 가장 유사한 벡터 선택:
유클리드 거리가 가장 작은 값은 'queen'과 [1.2, 2.4, 3.5] 벡터 간의 거리인 약 0.0입니다. 따라서 'king' - 'man' + 'woman' 벡터 [1.2, 2.4, 3.5]에 가장 가까운 단어는 'queen'입니다.
* 트랜스포머 : 딥러닝에서 사용되는 하나의 모델 아키텍처로, 주로 자연어 처리(NLP) 분야에서 매우 강력한 성능을 보여줍니다. 기존의 순환 신경망(RNN)보다 훨씬 병렬화가 용이하고, 긴 문장을 처리하는 데에도 효과적이라는 장점을 갖고 있어요.
'인공지능' 카테고리의 다른 글
F1 Score 측정하는 프로그램 (0) | 2023.10.30 |
---|---|
Deepl API를 이용하여 영어를 한국어로 변환하기 (1) | 2023.09.20 |
github의 llama_cpp.server에 lora 기능을 추가해달라고 요청했다! (0) | 2023.09.19 |
WSL에 우바부가 설치하기 (1) | 2023.08.27 |
딥러닝 기초 용어 정리( Epoch, Loss, Accuracy) (0) | 2023.08.26 |
[LLM] 인공지능 챗으로 동맥경화에 대해서 상담을 받아보았습니다. (0) | 2023.08.21 |
[LLM] 우바부가 API로 gradio 연동하기 (0) | 2023.08.17 |
파인튜닝 시, step 수는 몇으로 해야하는지 알아보자. (0) | 2023.07.13 |