gemini 임베딩 : Google Gemini AI 프레임 워크에서 다국어 텍스트 임베딩 모델
단어 임베딩은 기계 번역, 질문 및 답변 및 정보 검색과 같은 힌디어의 NLP (Natural Language Processing) 작업에 중요합니다. 이 내장은 단어의 의미 론적 특성을 포착하여보다 정확하고 상황 지향적 인 NLP 응용 프로그램을 가능하게합니다. 많은 힌디어 스피커와 힌디어 언어의 숫자 함량이 증가함에 따라 고품질 임베딩은 이러한 언어의 NLP 성능을 향상시키는 데 중요합니다. 맞춤형 임베딩은 특히 인도어 가족의 고유 한 언어 특성과 자원 제한을 해결할 수 있습니다. 새로 출시 된 Gemini Embedding 모델은 Google의 강력한 Gemini AI 프레임 워크를 활용하여 100 개가 넘는 언어로 최첨단 성능을 달성하여 다국어 텍스트 임베딩의 상당한 발전을 나타냅니다.
Gemini 임베딩 모델은 분류, 검색 및 시맨틱 검색과 같은 작업에 능숙하여 효율성과 정확성을 높이기 위해 적용됩니다. 더 큰 입력 스케일과 더 높은 치수 출력을 지원함으로써 Gemini Embedding은 더 풍부한 텍스트 표현을 제공하여 다양한 응용 프로그램에서 널리 사용될 수 있습니다.
*이 기사는 *** 데이터 과학 블로그 마라톤 의 일부로 출판됩니다 . ***
2025 년 3 월, Google은 Gemini API에서 사용할 수있는 새로운 실험 Gemini 임베딩 텍스트 모델 (Gemini-Embedding-exp-03-07)을 발표했습니다.
고급 임베딩 모델은 Gemini 모델에서 비롯되었으며, 이는 언어의 뉘앙스와 미묘한 맥락에 대한 Gemini의 깊은 이해를 물려 받으므로 다양한 응용 분야에서 널리 사용될 수 있습니다. MTEB 다국어 순위에서 1 위를 차지합니다.
Gemini 임베딩은 텍스트를 비슷한 의미를 가진 텍스트 입력이 서로 가까운 벡터 공간의 벡터에 매핑되는 조밀 한 벡터로 나타납니다. 현재 100 개가 넘는 언어를 지원하며 임베딩은 검색 및 분류와 같은 다양한 작업에 사용할 수 있습니다.
Gemini 임베딩의 핵심은 변압기 아키텍처를 기반으로하며 Gemini LLM에서 초기화되었습니다. 이 기초는 모델의 언어 구조와 의미론에 대한 깊은 이해를 제공합니다. 이 모델은 양방향주의 메커니즘을 사용하여 입력 시퀀스를 처리하여 임베딩을 생성 할 때 단어 나 문구의 전체 컨텍스트를 고려할 수 있도록합니다.
손실 기능 : 쌍둥이 자리 임베딩 모델은 노이즈 비교 추정 (NCE) 손실을 사용하여 배치 부정적인 예제를 사용하여 훈련됩니다. 정확한 손실은 훈련 단계에 따라 약간 다릅니다. 일반적으로, 훈련 예제에는 쿼리, 긍정적 인 목표 및 (선택 사항) 어려운 목표가 포함됩니다.
또한 읽으십시오 : Gemini Embedding : Gemini의 보편적 임베딩
우리는 힌디어 문서에 대한 검색을 최신 새로 출시 된 Gemini Embedding과 비교 한 다음 Jina AI Embedding 및 Multialual-E5-Large Embedding과 비교합니다. 다음 표에서 볼 수 있듯이 Gemini Embedding 및 Jina AI 임베딩은 최대 태그 수 측면에서 높아서 모델이 긴 문서 또는 복잡한 쿼리를 처리 할 수 있습니다. 또한, 다음 표에서 볼 수 있듯이, Gemini 임베드는 단어 간의보다 상세하고 미묘한 의미 론적 관계를 포착하여 복잡한 언어 패턴과 의미에서 미묘한 차이를 나타낼 수 있도록하는 더 높은 임베딩 차원을 가지게됩니다.
매개 변수 수 | 치수를 포함시킵니다 | 최대 마크 | 언어 수 | 인형 임베딩 | |
Gemini-embedding-exp-03-07 | 알려지지 않은 | 3072 | 8192 | 100 | 2048, 1024, 512, 256 및 128 치수와 같은 다양한 크기로 임베딩을 잘라냅니다. |
Jinaai/Jina-embeddings-v3 | 572 백만 | 1024 | 8194 | 100 | 유연한 임베드 크기 (32, 64, 128, 256, 512, 768, 1024)를 지원하며, 잘린 임베드가 애플리케이션에 맞게됩니다. |
다국어 -E5-large-instruct | 5 억 6 천만 | 1024 | 514 | 94 | NA |
다음 실용 튜토리얼에서는 힌디어 문서 검색을 최신 새로 출시 된 Gemini Embeddings와 비교 한 다음 Jina AI Embedding 및 다국어 -E5-Large Embedings와 비교합니다.
1 단계. 필요한 라이브러리를 설치하십시오
<code>!pip install langchain-community !pip install chromadb</code>
2 단계. 데이터를로드하십시오
우리는 웹 사이트의 힌디어 데이터를 사용하여 힌디어 언어 검색으로 Gemini 임베딩의 성능을 평가했습니다.
<code>from langchain_community.document_loaders import WebBaseLoader loader = WebBaseLoader("https://ckbirlahospitals.com/rbh/blog/pregnancy-early-symptoms-in-hindi") data = loader.load()</code>
3 단계. 데이터를 차단하십시오
다음 코드는 recursiveCharacterTexTsplitter를 사용하여 대형 텍스트 문서를 겹치지 않고 500 자 덩어리로 분할합니다. 그런 다음이 분할을 DataVariable에 적용하고 결과를 All_Splits에 저장합니다. Gemini Imbedding API의 속도 한계로 인해 10 개의 스플릿 만 사용합니다.
<code>from langchain_text_splitters import RecursiveCharacterTextSplitter text_splitter = RecursiveCharacterTextSplitter(chunk_size=500, chunk_overlap=0) all_splits = text_splitter.split_documents(data) all_splits = all_splits[:10]</code>
4 단계. 벡터 데이터베이스에 데이터를 저장하십시오
먼저 "GeminieMbeddingFunction"이라는 클래스를 만듭니다. Gemini Embedding API를 쿼리하고 입력 쿼리의 내장 값을 반환하는 데 도움이됩니다. 그런 다음 "create_chroma_db"라는 함수를 만들어 데이터를 저장할뿐만 아니라 내장 할 수있는 컬렉션을 만듭니다.
<code>import chromadb from chromadb import Documents, EmbeddingFunction, Embeddings class GeminiEmbeddingFunction(EmbeddingFunction): def __call__(self, input: Documents) -> Embeddings: title = "Custom query" return client.models.embed_content( model="gemini-embedding-exp-03-07", contents=input).embeddings[0].values def create_chroma_db(documents, name): chroma_client = chromadb.Client() db = chroma_client.create_collection(name=name, embedding_function=GeminiEmbeddingFunction()) for i, d in enumerate(documents): db.add( documents=d.page_content, ids=str(i) ) return db db = create_chroma_db(all_splits, "datab")</code>
5 단계. 데이터베이스 쿼리
<code>def get_relevant_passage(query, db): passage = db.query(query_texts=[query], n_results=1)['documents'][0][0] return passage passage = get_relevant_passage("आपको प्रेगनेंसी टेस्ट कब करवाना चाहिए?", db) print(passage)</code>
6 단계. Jina AI 임베딩과 비교하십시오
다음 코드는 Hugging Face Transformer 모델을 사용하여 사용자 정의 임베딩 기능을 정의하고 텍스트 입력을 처리하여 임베딩을 생성하는 방법을 정의합니다.
<code>from transformers import AutoTokenizer, AutoModel from chromadb import EmbeddingFunction tokenizer = AutoTokenizer.from_pretrained('jinaai/jina-embeddings-v3') model = AutoModel.from_pretrained('jinaai/jina-embeddings-v3') # the model returns many hidden states per document so we must aggregate them def average_pool(last_hidden_states, attention_mask): last_hidden = last_hidden_states.masked_fill(~attention_mask[...,None].bool(), 0.0) return last_hidden.sum(dim=1) / attention_mask.sum(dim=1)[...,None] class CustomHuggingFace(EmbeddingFunction): def __call__(self, texts): queries = [f'query: {text}' for text in texts] batch_dict = tokenizer(texts, max_length=512, padding=True, truncation=True, return_tensors='pt') outputs = model(**batch_dict) embeddings = average_pool(outputs.last_hidden_state, batch_dict['attention_mask']) return embeddings.tolist()</code>
질문
<code>def get_relevant_passage(query, db): passage = db.query(query_texts=[query], n_results=1)['documents'][0][0] return passage passage = get_relevant_passage("आपको प्रेगनेंसी टेस्ट कब करवाना चाहिए?", db) print(passage)</code>
다국어 -E5-Large 임베드를 선택하기 위해 토큰 화기와 모델을 "intfloat/multiredual-e5-large-instruct"로 교체합니다.
질문 번호 | 질문 | 쌍둥이 자리 삽입 | Jinaai/Jina-embeddings-v3 | intfloat/다국어 -E5-Large-Instruct |
1 | आपको ेगनेंसी ेगनेंसी ेगनेंसी효야 टेस टेस효치 कब치 ?치위 ?용 ?용 ?용 ?용용? 하여용용용용용? 하여용용용용용? 용용용용용용용용용용용용용사 전용용용용용용용용용용용용용 증가용용용용용용용용용용용 액용용용용용용용위용용용용용용용용용용용용용용용 용용용용용용용용용용용용용탁 내포심하지 으로편 | 임신 초기 증상에 대해 더 많이 배우려면이 블로그 게시물이 완벽합니다. 언제 임신 검사를 받아야합니까? -실수 | 임신 초기 증상에 대해 더 많이 배우려면이 블로그 게시물이 완벽합니다. 언제 임신 검사를 받아야합니까? -실수 | 임신 초기 증상에 대해 더 많이 배우려면이 블로그 게시물이 완벽합니다. 언제 임신 검사를 받아야합니까? -실수 |
2 | 임신 के kuch 기호 क 익 य 류 होते हैं? | 임신의 초기 증상은 무엇입니까? 임신 중에 여성에서 많은 호르몬 변화가 발생합니다. 임신의 초기 증상에는 메스꺼움, 구토, 빈번한 배뇨 및 피로가 포함되며,이 블로그 게시물에서 논의 할 것입니다. -옳은 | 임신 징후 : 초기 증상에 대한 완전한 정보! 집에 빠른 상담 환자 로그인 저희에게 연락하십시오 : 08062136530 응급 전화 : 07340054470 환자와 방문객들에게 서비스를 제공하기 위해 메인 메뉴를 열어 임신의 초기 증상에 대해 WhatsApp에 전화하도록 약속합니다. 산부인과 | 임신의 초기 증상은 무엇입니까? 임신 임신의 조기 증상 - 오류 | 임신의 초기 증상은 무엇입니까? 임신 중에 여성에서 많은 호르몬 변화가 발생합니다. 임신의 초기 증상에는 메스꺼움, 구토, 빈번한 배뇨 및 피로가 포함되며,이 블로그 게시물에서 논의 할 것입니다. -옳은 |
3 | ग ■는지 ग भ भ के दौ एंटीब 효치어 용고 लेने लेने लेने से 용고? | 임신 첫 며칠 동안 난자와 정자는 수정되어 출혈 및 복통과 같은 증상을 유발합니다. 이 기간 동안 건강한 임신의 경우 여성은 항생제 복용을 피하는 것이 좋습니다. 어머니와 아기에게는 위험 할 수 있습니다. 임신 초기 증상이 항상 월경이나 구토가 지연되는 것은 아닙니다. 또한 다른 증상이 발생할 수 있으며 - 정확한 주의가 필요합니다. | 임신 첫 며칠 동안 난자와 정자는 수정되어 출혈 및 복통과 같은 증상을 유발합니다. 이 기간 동안 건강한 임신의 경우 여성은 항생제 복용을 피하는 것이 좋습니다. 어머니와 아기에게는 위험 할 수 있습니다. 임신 초기 증상이 항상 월경이나 구토가 지연되는 것은 아닙니다. 또한 다른 증상이 발생할 수 있으며 - 정확한 주의가 필요합니다. | 모든 여성이 알아야 할 것. 임신 관련 질문에 대해서는 산부인과 전문의에게 연락하여 모든 합병증을 제거하는 것이 좋습니다. -실수 |
4 | कब कब भ는지 भ एंटीब एंटीब एंटीब दव दव लेने लेने 용고? | 임신 첫 며칠 동안 난자와 정자는 수정되어 출혈 및 복통과 같은 증상을 유발합니다. 이 기간 동안 건강한 임신의 경우 여성은 항생제 복용을 피하는 것이 좋습니다. 어머니와 아기에게는 위험 할 수 있습니다. 임신 초기 증상이 항상 월경이나 구토가 지연되는 것은 아닙니다. 또한 다른 증상이 발생할 수 있으며 - 정확한 주의가 필요합니다. | 임신 첫 며칠 동안 난자와 정자는 수정되어 출혈 및 복통과 같은 증상을 유발합니다. 이 기간 동안 건강한 임신의 경우 여성은 항생제 복용을 피하는 것이 좋습니다. 어머니와 아기에게는 위험 할 수 있습니다. 임신 초기 증상이 항상 월경이나 구토가 지연되는 것은 아닙니다. 또한 다른 증상이 발생할 수 있으며 - 정확한 주의가 필요합니다. | 모든 여성이 알아야 할 것. 임신 관련 질문에 대해서는 산부인과 전문의에게 연락하여 모든 합병증을 제거하는 것이 좋습니다. -실수 |
5 | ग ण십시오. | 월경 지연 : 이것은 임신의 가장 초기적이고 가장 흔한 증상입니다. 이 증상에만 근거한 임신 확인은 전적으로 맞지 않습니다. 그러나 월경이 일주일 이상 지연되면 임신 검사를 권장합니다. 유방 변화 : 임신 중에는 가슴이 부풀어 오르거나 부드러워 지거나 색이 변합니다. 주로 젖꼭지의 크기와 색상이 변경됩니다 (Areola). -옳은 | 이를 염두에두고 임신을 확인하는 방법은 무엇입니까? 임신 첫 달을 돌보는 방법? 임신 검진 방법은 무엇입니까? 임신 중에 어떻게 앉아야합니까? 임신 중에 성관계가 발생해야합니까? 임신 중에 어떤 과일을 먹어야합니까? 임신 중에 얼마나 많은 물을 마셔야합니까? 어머니가되는 기쁨은 세상에서 가장 큰 행복입니다. 임신 중에 여성의 신체적, 심리적 변화에는 많은 변화가 있습니다. 이러한 변화를 임신 초기 증상이라고 부릅니다 - 오류 | 임신의 초기 증상은 무엇입니까? 임신 중에 여성에서 많은 호르몬 변화가 발생합니다. 임신의 초기 증상에는 메스꺼움, 구토, 빈번한 배뇨 및 피로가 포함되며,이 블로그 게시물에서 논의 할 것입니다. -옳은 |
6 | ग ■는지 님 के पहले पहले संकेत क क 효치 होते हैं? | 임신 징후 : 초기 증상에 대한 완전한 정보! 집에 빠른 상담 환자 로그인 저희에게 연락하십시오 : 08062136530 응급 전화 : 07340054470 환자와 방문객들에게 서비스를 제공하기 위해 메인 메뉴를 열어 임신의 초기 증상에 대해 WhatsApp에 전화하도록 약속합니다. 산부인과 | 임신의 초기 증상은 무엇입니까? 임신 임신의 조기 증상 - 오류 | 이를 염두에두고 임신을 확인하는 방법은 무엇입니까? 임신 첫 달을 돌보는 방법? 임신 검진 방법은 무엇입니까? 임신 중에 어떻게 앉아야합니까? 임신 중에 성관계가 발생해야합니까? 임신 중에 어떤 과일을 먹어야합니까? 임신 중에 얼마나 많은 물을 마셔야합니까? 어머니가되는 기쁨은 세상에서 가장 큰 행복입니다. 임신 중에 여성의 신체적, 심리적 변화에는 많은 변화가 있습니다. 이러한 변화를 임신 초기 증상이라고 부릅니다 - 오류 | 임신의 초기 증상은 무엇입니까? 임신 중에 여성에서 많은 호르몬 변화가 발생합니다. 임신의 초기 증상에는 메스꺼움, 구토, 빈번한 배뇨 및 피로가 포함되며,이 블로그 게시물에서 논의 할 것입니다. -옳은 |
7 | ग ■는지 님 भ पुष पुष के लिए लिए कौन से से ह ह र र치 क क पत 효어 용고? | 임신 검사를 받기 가장 좋은시기는 월경이 7 일 이상 지연된 후입니다. 가정 임신 테스트 도구를 사용하여 집에서 HCG 수준을 감지 할 수 있습니다. 임신 중에이 호르몬 수치는 크게 증가합니다. 한 가지 주목해야 할 것은 조기 테스트가 잘못된 결과로 이어질 수 있다는 것입니다. 따라서 기간이 지연되고 테스트가 부정적인 경우 다시 테스트하기 전에 최소 3 일 더 기다리는 것이 좋습니다. -옳은 | 이 작업을 수행하는 올바른 방법도 있습니다. 테스트 도구 설명서에서도 볼 수 있습니다. 정확한 결과를 얻으려면 올바른 수준의 HCG 호르몬을 측정 할 수 있으므로 아침에 첫 소변을 사용해야합니다. 또한 임신 초기 증상이 발생하고 검사 결과가 부정적인 경우 즉시 혈액 검사를 받으려면 의사를 참조하십시오. 어쨌든 궁금한 점이 있으면 의사와 상담해야합니다. -옳은 | 임신의 초기 증상은 무엇입니까? 임신 중에 여성에서 많은 호르몬 변화가 발생합니다. 임신의 초기 증상에는 메스꺼움, 구토, 빈번한 배뇨 및 피로가 포함되며,이 블로그 게시물에서 논의 할 것입니다. -실수 |
위의 힌디어 출력에서 볼 수 있듯이 Gemini 임베딩을 사용하여 7 쿼리에서 5 개의 올바른 출력을 얻을 수 있으며 Jina AI Embedding 및 Multialual-E5-Large를 사용하면 3 가지 정확한 응답 만 얻습니다.
이것은 MTEB 벤치 마크에 반영된 바와 같이, Gemini 임베딩이 잘 작동하고 다른 임베딩 모델보다 힌디어와 같은 다국어를 더 잘 처리 함을 보여줍니다.
요컨대, Gemini 임베딩은 다국어 NLP, 특히 힌디어와 같은 힌디어 언어의 상당한 발전을 나타냅니다. 강력한 다국어 기능, 대규모 입력 크기에 대한 지원 및 MTEB와 같은 벤치 마크의 우수한 성능을 지원하는 Gemini는 검색, 분류 및 시맨틱 검색과 같은 작업을 탁월합니다. 실질적인 비교를 통해 Gemini의 성능은 다른 모델보다 우수하여 더 높은 정확도와 효율성을 제공하여 다국어 NLP를 홍보하는 데 유용한 도구입니다.
이 기사에 표시된 미디어는 분석 Vidhya가 소유하지 않으며 저자의 재량에 따라 사용할 수 있습니다.
Q1. A : Gemini Embedding 모델은 Google의 Gemini AI를 기반으로하며 힌디어를 포함한 100 개 이상의 언어에 대한 최고 수준의 다국어 텍스트 임베드를 제공합니다.
Q2. 다른 모델에 비해 쌍둥이 자리 삽입물은 무엇입니까? A : Gemini Embedding은 다국어 지원에 탁월하며 8000 마커 및 출력 3072 차원을 처리하여 분류, 검색 및 시맨틱 검색의 효율성을 보장합니다.
Q3. GeMini 임베딩은 다국어 작업에서 어떻게 수행됩니까? 답변 : Gemini Embedding은 영어 및 Assamese 및 Macedonian과 같은 저주적 언어와 같은 고 자원 언어로 잘 수행됩니다. MTEB 다국어 순위에서 1 위를 차지하여 강력한 다국어 기능을 보여줍니다.
Q4. Gemini 임베딩 모델의 무엇입니까? A :이 모델은 Gemini LLM에서 초기화되며 양방향주의를 가진 변압기 아키텍처를 사용하여 상황과 의미를 포착하는 고품질 텍스트 임베드를 생성합니다.
Q5. A : Gemini 임베딩은 훈련을위한 배치 부정적인 예와 함께 노이즈 비교 추정 (NCE) 손실을 사용합니다. NLP 성능을 향상시키기 위해 대규모 데이터 세트 및 작업 별 데이터 세트의 사전 결합하는 두 가지 교육 단계를 거칩니다.
위 내용은 다국어 -E5-Large & Jina와 Gemini 임베딩의 비교의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!