Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 |
Tags
- swift6
- mainrunloop
- ciimage
- swift6.1
- uicollectionview
- mach-o파일분석
- swift-demangle
- Swift
- actor
- XCUITest
- mangle
- task
- updatecycle
- SPM
- Xcode
- IOS
- 뷰를그리는메서드
- displayscale
- 이진삽입정렬
- 뷰의레이아웃을계산하는메서드
- applaucnchprocess
- modulararchitecture
- UIKit
- WWDC24
- Architecture
- xcrun swift-demangle
- swiftconcurrency
- 다이나믹링크분석
- cgimage
- ios바이너리분석
Archives
- Today
- Total
꾸준한 기록
[LLM] 텍스트 임베딩 본문
텍스트 임베딩이란
- 텍스트를 다차원 공간에서 기계가 읽을 수 있는 벡터로 표현하는 방법
- 기본 원리: 두 구문이 유사하다면 이 구문들을 나타내는 벡터들은 유클리드 거리와 같은 측정치로 볼 때 서로 가까워야 한다.
- 결론: 텍스트 임베딩 값이 가깝다 ➡️ 두 구분이 유사하다
텍스트 임베딩 장점
1. 텍스트의 표면적인 의미와 철자를 넘어선 다른 의미를 포착할 수 있다.
2. 텍스트 임베딩을 사용하면 언어에 관한 풍부한 정보를 활용해서, LLM의 사전 훈련과 파인튜닝이 기반이 되는 애플리케이션을 거의 무한하게 구축할 수 있다.
3. 다양한 언어를 활용하여 작업할 때, 정교하고 의미적으로 정확한 모델을 구축할 수 있다.
텍스트 임베딩 작업
비대칭적 의미기반 검색
- 의미기반 검색 시스템은 사용자가 제공한 쿼리의 의미와 문맥을 이해하고, 이를 검색할 수 있는 문서와 비교한다.
- 이러한 시스템은 정확한 키워드나 n-gram 일치에 의존하지 않고도 데이터베이스에서 결과를 찾아낼 수 있으며, 사전 훈련된 LLM을 이용해서 쿼리와 문서/정보의 뉘앙스를 이해한다.
- 비대칭적 의미기반 검색에서 '비대칭'은 입력 쿼리의 의미 정보(기본적으로 크기)와 검색 시스템이 탐색해야 하는 문서 사이에 불균형이 있다는 것을 의미한다. 즉, 일반적으로 둘 중 하나가 나머지 하나에 비해 훨씬 짧다.
- 장점: LLM을 사용하기 때문에 쿼리에 정확한 단어가 포함되어 있지 않더라도 정확한 검색 결과를 얻을 수 있다.
- 단점
- 대문자 또는 구두점의 차이와 같은 텍스트의 작은 변화에 지나치게 민감할 수 있다.
- 현지화된 문화 지식에 의존하는 풍자나 아이러니 같은 애매한 개념에 어려움을 겪는다.
- 기존 방식보다 유지하고 구혀하는데 더 많은 계산 비용이 들 수 있다
의미기반 검색시스템의 동작 흐름
- 1단계: 문서 저장
- 임베딩을 위한 문서 저장한다.
- 저장된 문서를 가지고 텍스트 임베딩을 생성한다.
- 생성한 임베딩은 나중에 유저가 쿼리를 제공했을 때 탐색할 수 있도록 데이터베이스에 저장한다.
- 2단계: 문서 검색
- 사용자에게 전처리되고 정리할 수 있는 쿼리가 주어진다. (ex: 사용자가 입력한 검색어)
- 임베딩 유사도를 통해 후보 문서를 검색한다. (ex: 유클리드 거리)
- 필요한 경우 후보 문서 순위를 재순위화(re-ranking)한다.
- 최종 검색 결과를 사용자에게 반환한다.
의미기반 검색 시스템의 구성 요소
1. 텍스트 임베더
- 입력받은 텍스트를 벡터로 변환한다.
- 벡터의 조건
- 입력된 텍스트마다 고유해야 한다.
- 텍스트의 맥락적 의미를 포함하고 있어야 한다.
- 텍스트 임베더로 무엇을 사용하느지에 따라서 벡터의 품질이 달라지기 때문에 매우 중요하다.
- 무엇이 텍스트를 '유사'하게 만드는가?
- 텍스트를 벡터로 변환하면, 텍스트끼리 유사한지 여부를 파악하기 위해 유사한 정도를 수학적으로 표현해야 한다.
- 코사인 유사도(cosine similarity): 두 벡터가 얼마나 유사한지 측정하는 방법.
- 두 벡터 사이의 각도를 살펴보고, 방향이 얼마나 가까운지에 따라 점수를 매긴다.
- 벡터의 크기는 중요하지 않고 방향만 중요한다.
- 벡터가 정확히 같은 방향을 가리키면 코사인 유사도는 1이다. 수직이면 0이다. 반대 방향을 가리키면 -1이다.
- 또다른 유사도 측정방법: 내적(Dot product), 유클리드 거리(Euclidean distance)
'AI' 카테고리의 다른 글
| Apple Intelligence 에서 사용하는 LLM Model (0) | 2024.06.23 |
|---|