1. 데이터 올리기
2. Eland와 Elasticsearch 연동하기
3. Huggingface에서 모델 선택해 탑재하기
4. 확인하기
[실습] Elasticsearch NLP - Text Embedding과 KNN search 하기 — y-seo의 딩코 기록들 (tistory.com)
[실습] Elasticsearch NLP - Text Embedding과 KNN search 하기
개요 목표 : ElasticSearch에서 NLP를 적용할 수 있다. 순서 Elastic에 데이터를 올린다. Eland와 Elastic을 연동한다. Huggingface에서 모델을 선택해 탑재한다. 1. Elastic에 데이터 올리기 (1) Machine Learning > Data V
y-seo.tistory.com
위 블로그의 4번과정까지는 동일하다.
5. Sentiment Analysis 하기
(1) text_field로 predicted_value 찾는 Query 실행하기
POST _ml/trained_models/distilbert-base-uncased-finetuned-sst-2-english/deployment/_infer
{
"docs": [
{
"text_field": "The movie was awesome!"
}
]
}
(2) Sentiment Analysis를 위한 파이프라인 생성하기
모든 각각의 리뷰에 대해 predicted_value를 달기 위해 감정 분석 파이프라인을 한 번 더 생성한다.
PUT _ingest/pipeline/sentiment_demo
{
"processors": [
{
"inference": {
"model_id": "distilbert-base-uncased-finetuned-sst-2-english",
"field_map": {
"document": "text_field"
}
}
}
],
"on_failure": [
{
"set": {
"description": "Index document to 'failed-<index>'",
"field": "_index",
"value": "failed-{{{_index}}}"
}
},
{
"set": {
"description": "Set error message",
"field": "ingest.failure",
"value": "{{_ingest.on_failure_message}}"
}
}
]
}
inference에는 model_id와 document 같은 source들이 있다.
set으로 error index를 남기는 설정을 할 수도 있다.
(3) 대상 인덱스를 리인덱싱하기
POST _reindex
{
"source": {
"index": "movie_ratings_vector"
},
"dest": {
"index": "movie_ratings_vector_sentiment",
"pipeline": "sentiment_demo"
}
}
이전에 생성한 파이프라인을 통해 할 수 있도록 한다.
(4) 인덱싱을 확인, 비교하기
GET movie_ratings_vector_sentiment/_search
'Cloud > ElasticSearch' 카테고리의 다른 글
[실습] ChatGPT로 Elastic Docs Chatbot 만들기 (0) | 2024.01.02 |
---|---|
[실습] Elasticsearch NLP - Vector Image Search 하기 (0) | 2024.01.02 |
[실습] Elasticsearch NLP - Text Embedding과 KNN search 하기 (0) | 2024.01.02 |
[개념] Elastic NLP (0) | 2024.01.02 |
[실습] Elasticsearch에서 Machine Learning 사용하기 (0) | 2023.12.29 |