반응형
250x250
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
- PyQt5
- 교차엔트로피오차
- next.js 튜토리얼
- sqlite3
- total
- 평균
- Depthwise Separagle Convolution
- 합계
- 신경망
- sigmoid
- MIN
- 제약조건
- 데이터베이스
- join
- 밑바닥부터 시작하는 딥러닝
- 학습 구현
- sum
- Depthwise Convolution
- 오차제곱합
- 미니배치
- Next.js
- COUNT
- 시험데이터
- max
- Pointwise Convolution
- 렐루함수
- 수치미분
- PYTHON
- 최댓값
- AVG
Archives
- Today
- Total
우잉's Development
[LLM 기본] 임베딩과 시멘틱 서치 본문
728x90
반응형
Grounding
- LLM에게 검색등을 통해 문맥에 맞는 정보를 제공하거나, 계산기 등을 사용해 정확한 계산 결과를 제공하는 방법
- 정확한 정보를 제공하여 환각을 줄이거나, LLM 학습 후 나온 새로운 정보를 이용한 결과를 생성할 수 있음.
RAG
- Retrieval-Augmented Generation의 약자로, 정보를 검색해 와서 이를 기반으로 텍스트를 생성하는 방법
- 대화의 맥락을 유지하기 위한 장기 기억 메모리로도 활용
Embedding
- 임베딩 기초 : https://wooingg.tistory.com/57
- embedding model 선택
- 모델의 성능은 데이터셋마다 다르므로, 사용할 데이터에 테스트해보고 가장 적절한 모델을 선택해야함.
- 민감하거나 정확도가 높아야 하는 데이터의 경우 파인튜닝한 모델을 사용하는 방법을 고려
- OpenAI의 text-embedding-ada-002모델이 대부분의 경우 일정 수준 이상의 결과를 보여주며 한국어에서도 대체로 성능이 우수한 편으로, 가격도 매우 저렴하여 기본 선택 모델로 좋은편 - Vector DB
- Vector Search를 통해 단어가 실수로 이루어진 벡터로 변환해준다. 변환된 벡터를 단어로 다시 가져오기 위해 필요한 DB.
- 메타데이터와 함께 결과 반환하며 필터링등을 이용한 하이브리드 검색이 가능하다.
- 실시간 인덱싱이 되며 다양한 인덱싱 및 검색 알고리즘을 제공한다.
- 높은 확장성 및 편의 기능 등이 있다.
Vector DB 종류
1. Pincone
2. Milvus
3. Weaviate
4. Qdrant
5. Chroma
6. Redis
7. Elasticsearch
8. PostgreSQL
검색기능
- Hybrid Search : 검색 정확도를 높이기 위해, 키워드 필터링이나 Dense, Sparse벡터등을 조합해 검색하는 방법
- Re-rank : 1차 벡터 서치에 사용한 것과 다른 경량의 임베딩 모델을 사용하거나 1차 결과를 LLM으로 사용자 요청에 맞게 재정렬하여 생성하는 등 Re-rank목적에 맞는 방법을 사용
- Chuncking : 텍스트를 적절한 길이로 자르는 방법
- 임베딩 모델의 최대 토큰수를 넘는 텍스트를 이베딩하기 위해 사용
- 김텍스트를 여러개의 작은 부분으로 나누어 각 부분을 독립적으로 임베딩할 수 있게 하여, 텍스트 데이터의 특징을 더욱 잘 표현하고, 더욱 정교하게 검색하거나 분석하기 위해 사용
- 단순히 토큰 수 단위나 단어 단위로 잘라도 되지만, 문장이나 문단 혹은 구조화된 문서라면 섹션 단위로 자르는 등의 방법을 사용하면 좋음.
- 임베딩 모델과 문서의 성격에 따라 적절한 청킹 방법이 다르므로, 문서에 따라 실험을 통해 적절한 방법과 길이의 청킹 방법을 찾아야함. - Overlab & Sliding : 텍스트 분리했을 때 의미가 소실되거나 왜곡되는 것을 방지하고 문백을 보존 하기 위해 사용
1) Overlab : 각 청크가 일부의 공통된 데이터를 포함하도록 하는 기법
2) Sliding Window : 일정한 길이의 토큰(혹은 단어 등) 윈도우로 텍스트를 스라이드하면서 데이터의 청크를 캡쳐하는 방법
예시)
학원을 가기 전에 떡볶이를 먹으러 분식점에 갔습니다.
window size: 3, Overlap size : 1
학원을/ 가기/ 전에 | 전에/떡볶이를/ 먹으러 | 먹으러/분식점에/ 갔습니다.
728x90
반응형
'Deep learning > LLM' 카테고리의 다른 글
[LLM 응용] 데이터 보안 (0) | 2023.09.13 |
---|---|
[LLM 기본] 프롬프트 요구사항 명세 (0) | 2023.09.06 |
[LLM 기본] 모델 선택 기준 & Function Calling (0) | 2023.09.06 |
[LLM 기본] 프롬프트 엔지니어링 기본 (0) | 2023.09.05 |
[LLM 기본] 생성 조건 (0) | 2023.09.05 |
Comments