소식
모델
제품
keyboard_arrow_down
리더
URL을 읽거나 검색하면 대규모 모델에 대한 지원이 더 향상됩니다.
벡터 모델
세계적 수준의 다중 모드 다중 언어 임베딩.
재배열자
검색 관련성을 극대화하는 세계적 수준의 신경 검색기입니다.
심층 검색
검색하고, 읽고, 추론하여 가장 좋은 답을 찾으세요.
더
keyboard_arrow_down
분류자
이미지와 텍스트의 제로 샷 및 퓨어 샷 분류.
얇게 써는 기계
긴 텍스트를 청크 또는 토큰으로 분할합니다.

API 문서
AI 프로그래밍 어시스턴트 IDE 또는 대형 모델에 대한 코드를 자동으로 생성합니다.
open_in_new


회사
keyboard_arrow_down
회사 소개
영업팀에 문의
인턴 프로그램
우리와 함께
open_in_new
로고 다운로드
open_in_new
이용약관


로그인
login
프라이버시와 성능을 위한 설계
원활한 통합과 높은 확장성
Azure 시작하기
튜토리얼: 노래 검색하기
Jina 임베딩과 재순위화: Azure의 기업용 AI
기술 기사
4월 29, 2024

Azure의 Jina Embeddings와 Reranker: 확장 가능한 기업용 AI 솔루션

Jina Embeddings와 Rerankers가 이제 Azure Marketplace에서 사용 가능합니다. 개인정보 보호와 보안을 중요시하는 기업들은 이제 Jina AI의 최첨단 모델을 기존 Azure 생태계에 쉽게 통합할 수 있습니다.
Futuristic black background with a purple 3D grid, featuring the "Embeddings" and "Reranker" logos with a stylized "A".
Susana Guzmán
Susana Guzmán • 7 독서의 분

Jina Embeddings와 Rerankers가 이제 Azure Marketplace에서 제공됩니다. 이는 데이터 보안과 운영 효율성이 최우선인 기업들에게 중요한 통합입니다.

Jina AI Launches World's First Open-Source 8K Text Embedding, Rivaling OpenAI
Jina AI introduces jina-embeddings-v2, the world's first open-source model boasting an 8K context length. Matching the prowess of OpenAI's proprietary models, this innovation is now publicly accessible on Huggingface, signaling a significant milestone in the landscape of text embeddings.
Maximizing Search Relevance and RAG Accuracy with Jina Reranker
Boost your search and RAG accuracy with Jina Reranker. Our new model improves the accuracy and relevance by 20% over simple vector search. Try it now for free!

다음과 같은 7개의 모델을 제공합니다:

  1. Jina Embeddings v2 Base - code
  2. Jina Embeddings v2 Base - de
  3. Jina Embeddings v2 Base - zh
  4. Jina Embeddings v2 Base - es
  5. Jina Embeddings v2 Base - en
  6. Jina Reranker v1 Base - en
  7. Jina Reranker v1 Turbo - en
  8. Jina Reranker v1 Tiny - en
  9. Jina ColBERT v1 - en

tag프라이버시와 성능을 위한 설계

데이터 보안 확보가 우리의 최우선 과제입니다. Azure와의 파트너십을 통해 데이터 프라이버시와 효율성에 대한 요구를 충족하는 AI 솔루션을 제공할 수 있게 되었습니다. Azure의 타의 추종을 불허하는 프라이버시 표준은 데이터에 대한 가장 엄격한 보호를 보장하며, 이는 의료, 금융 및 중요한 데이터 보호가 필요한 다른 산업 분야에서 신뢰할 수 있는 플랫폼이 됩니다. 기존 Azure 고객이라면 기존 구독으로 Jina AI의 최첨단 Embedding과 Reranker 모델의 모든 혜택을 받을 수 있습니다.

tag원활한 통합과 높은 확장성

Azure에 배포하면 프라이버시를 보장할 뿐만 아니라 기존 Azure 서비스와의 원활한 통합이 가능합니다. 이를 통해 순조로운 전환이 가능하며 성능을 저하시키지 않으면서도 변동하는 수요에 맞춰 AI 배포를 확장할 수 있습니다.

tagAzure 시작하기

이 튜토리얼에서는 음악을 위한 검색 애플리케이션을 만들어보겠습니다. 우리는 정확한 곡 제목이 아닌, 우리의 검색 기반 모델의 품질을 실제로 테스트하는 모호한 쿼리로 검색하고자 합니다.

이를 위해 첫 단계는 Azure에서 모든 것을 설정하는 것입니다.

tagAzure 가입하기

유효한 결제 수단이 있는 Azure 계정 구독이 있는지 확인하세요. 계정이 없다면 Azure 홈페이지에서 가입할 수 있습니다.

tagAzure에 Jina 모델 배포하기

Azure Marketplace에서 "jina"를 검색하면 Jina AI의 모든 임베딩 및 리랭커 모델을 찾을 수 있습니다. 거기서 귀하의 필요에 가장 적합한 것을 선택하세요.

Screenshot 2024-04-17 at 15.12.54

배포 설정의 기본 탭에서 배포에 대한 몇 가지 세부 정보를 제공해야 합니다. 기본적으로 구성은 4개의 CPU 코어와 8GB의 메모리를 사용하도록 설정되어 있습니다. 특정 요구 사항에 따라 이러한 설정을 애플리케이션의 필요에 맞게 조정할 수 있습니다.

Screenshot 2024-04-23 at 16.41.29

이것으로 배포가 시작됩니다. 몇 분 정도 소요될 수 있습니다. 이후 다음과 같은 화면이 표시됩니다:

Screenshot 2024-04-17 at 15.16.21

이제 모델이 배포되어 사용할 준비가 되었습니다.

tag튜토리얼: 노래 검색하기

이 튜토리얼에서는 Azure 배포를 사용하여 대중음악에 대한 데이터 파일 모음을 위한 기본 검색 엔진을 구축할 것입니다.

💡
이 튜토리얼은 Colab에서도 따라할 수 있으며, 다운로드하여 자신의 노트북에서 실행할 수도 있습니다.

tag데이터셋 로드하기

from datasets import load_dataset

dataset = load_dataset("sander-wood/wikimusictext")

이것은 WikiMusicText (WikiMT) 데이터셋을 로드합니다.

tagJina Embeddings v2와 Reranker 엔드포인트 시작하기

먼저 Azure 포털에서 임베딩과 리랭커 엔드포인트를 배포하세요. 사용할 지역을 결정하고 임베딩 서비스에 하나의 DNS 접두사를, 리랭커 서비스에 다른 하나의 DNS 접두사를 할당해야 합니다. 그런 다음 아래 코드의 embeddings_url과 reranker_url 변수에 해당 정보를 저장하세요.

jina_embed와 jina_rerank 함수는 Azure에서 호스팅되는 API에 요청을 보내 텍스트 임베딩을 생성하고 리랭킹을 수행합니다.

import json

import requests

embeddings_url = "http://<Your DNS prefix>.<Your region>.azurecontainer.io:8080/invocations"
reranker_url = "http://<Your DNS prefix>.<Your region>.azurecontainer.io:8080/invocations"

def jina_embed(text):
    headers = {"Content-Type": "application/json"}
    json_data = {"data": [{"text": text}]}

    response = requests.post(embeddings_url, headers=headers, data=json.dumps(json_data))
    return response.json()["data"][0]["embedding"]

def jina_rerank(query, search_results):
    headers = {"Content-Type": "application/json"}

    json_data = {
        "data": {
            "documents": [
                {"text": search_result[0]} for search_result in search_results
            ],
            "query": query,
            "top_n": 3,
        }
    }

    response = requests.post(reranker_url, headers=headers, data=json.dumps(json_data))
    return response.json()["data"][0]["results"]

tag데이터셋 로드하기

이 데이터는 AI 모델 학습을 위해 수집되었으므로 학습 데이터셋과 테스트 데이터셋으로 나눕니다. 이 튜토리얼에서는 간단히 학습 데이터만 사용하겠습니다. 아래 코드는 학습 데이터를 pandas DataFrame으로 변환합니다:

ds = dataset['train']
input_df = ds.dataset.to_pandas()

tag임베딩 생성 및 FAISS에서 인덱스 만들기

이 함수는 텍스트 데이터를 처리하고 임베딩 형태로 특징을 추출합니다. 시간이 좀 걸릴 것입니다.

import numpy as np
from tqdm import tqdm

tqdm.pandas()


def generate_embeddings(input_df):
    all_embeddings = []

    for t in input_df.text:
        review_embeddings = []
        all_embeddings.append(np.array(jina_embed(t)))

    input_df["embeddings"] = all_embeddings

    return input_df


enhanced_dataframe = generate_embeddings(input_df)

이 코드는 DataFrame의 text 열의 각 항목을 반복하면서 jina_embed()를 호출하여 임베딩을 가져옵니다. 임베딩은 NumPy 배열로 all_embeddings 리스트에 저장됩니다. 그런 다음 DataFrame에 embeddings라는 새로운 열로 추가합니다.

enhanced_dataframe의 값을 출력하여 방금 수행한 작업을 시각화할 수 있습니다:

Screenshot 2024-04-22 at 12.39.07

마지막 열에는 임베딩이 읽기 쉬운 형태로 포함되어 있습니다.

이제 FAISS(Facebook AI Similarity Search) 인덱스를 만들어 임베딩을 저장하고 검색해야 합니다:

import faiss

dim = 768  # dimension of Jina v2 embeddings
index_with_ids = faiss.IndexIDMap(faiss.IndexFlatIP(dim))

for idx, row in enhanced_dataframe.iterrows():
    embeddings = row["embeddings"]
    normalized_embedding = np.ascontiguousarray(
        np.array(embeddings, dtype="float32").reshape(1, -1)
    )
    faiss.normalize_L2(normalized_embedding)
    index_with_ids.add_with_ids(normalized_embedding, idx)

이 코드는 검색을 단순화하고 속도를 높이기 위해 임베딩 벡터도 정규화합니다.

tag쿼리에 대한 매치 검색

find_similar_texts 함수는 방금 만든 인덱스에서 가장 가까운 매치를 검색합니다:

def find_similar_texts(query, n=20):
    query_embedding = jina_embed(query)
    query_embedding = np.ascontiguousarray(
        np.array(query_embedding, dtype="float32").reshape(1, -1)
    )
    faiss.normalize_L2(query_embedding)

    similarities, indices = index_with_ids.search(query_embedding, n)

    results = []
    for i in range(n):
        similarity = similarities[0][i]
        index_id = indices[0][i]
        results.append((enhanced_dataframe.loc[index_id, "text"], similarity))

    return results

tag가장 관련성 높은 매치를 얻기 위한 재순위화

FAISS 인덱스에서 결과를 검색한 후, 결과 세트를 jina_rerank 함수로 보내 모든 답변에 관련성 점수를 할당하고 관련성으로 정렬된 결과 목록을 반환합니다.

의미론적 이해가 많이 필요한 쿼리로 우리의 솔루션을 테스트해 보겠습니다:

query = "What are some jazz songs that reached the top of the music charts in 1960s?"
search_results = find_similar_texts(query)

most_relevant_results = jina_rerank(query, search_results)
pprint.pprint(most_relevant_results)

가장 관련성 높은 결과는 다음과 같습니다:

[{'id': 'c26a67d979cb73474e9f80221b14b5c9',
  'index': 0,
  'document': {'id': 'd2183fd857661fbf9ca60a22e91888a0',
   'text': 'An instrumental version by Heywood and Hugo Winterhalter reached No. 2 on the Billboard Hot 100 chart and No. 7 on the R&B chart in 1956. A version sung by Andy Williams was also popular that year. The tune has been covered by a number of jazz performers beginning in the 1960s.'},
  'relevance_score': 0.7132052183151245,
  'usage': {'id': '037b9d22a5f13b68258ab51cbab1a7ad', 'total_tokens': 64}},
 {'id': 'a9205e69a4e76ca49717b8497a2798bf',
  'index': 4,
  'document': {'id': '25e78e92da17f01df111a7ed2716b057',
   'text': '"Take Five" is a jazz standard composed by Paul Desmond and originally recorded by the Dave Brubeck Quartet for their album Time Out on July 1, 1959. Two years later it became a surprise hit and the biggest-selling jazz single ever. The single was inducted into the Grammy Hall of Fame in 1996. It became the first jazz single to surpass a million in sales.'},
  'relevance_score': 0.204337015748024,
  'usage': {'id': '6d55f32b339b83350ffb9489fbf31f5d', 'total_tokens': 80}},
 {'id': '50a610653b307f6f1ae6ec796b72ca83',
  'index': 9,
  'document': {'id': '70278633234c32775b1a28b364f6783a',
   'text': 'Oh, You Crazy Moon is a jazz standard by Jimmy Van Heusen, with lyrics by Johnny Burke. It was recorded by Mel Torme in 1960 and Frank Sinatra in 1965.'},
  'relevance_score': 0.16270869970321655,
  'usage': {'id': '79eabc46bf3c659d3ad3e4d4d7e7a8f2', 'total_tokens': 40}}]

이제 끝났습니다. 다른 쿼리로 직접 시도해보고 어떤 결과가 나오는지 확인해보세요.

tagJina 임베딩과 재순위화: Azure의 기업용 AI

Jina AI는 기업이 필요로 하는 실제 애플리케이션을 위한 최첨단 AI를 기업에 제공하는 데 초점을 맞추고 있습니다. Azure Marketplace에 우리의 모델을 배치함으로써 비즈니스 프로세스에 AI를 추가하는 장벽을 제거하고, 기존 Azure 플랜의 일부로 청구되어 통합이 간단해집니다.

우리는 Jina Embeddings와 Jina Reranker를 사용하거나 고려하는 모든 사람들의 의견을 소중히 여깁니다. 우리 웹사이트를 통해 연락하거나 Discord 채널에 참여하여 피드백을 공유하고 Jina AI의 빠르게 발전하는 제품에 대한 최신 정보를 받아보세요. 우리는 포용적인 AI 생태계를 믿으며 여러분의 사용 사례에 대해 이야기를 나누고 싶습니다.

Jina AI - Your Search Foundation, Supercharged.
Jina AI offers best-in-class embeddings, reranker and prompt optimizer, enabling advanced multimodal AI.
Your Search Foundation, Supercharged.
Join the Jina AI Discord Server!
Check out the Jina AI community on Discord - hang out with 4981 other members and enjoy free voice and text chat.
Discord
범주:
기술 기사
rss_feed
사무실
location_on
캘리포니아주 서니베일
710 Lakeway Dr, Ste 200, 서니베일, CA 94085, 미국
location_on
독일 베를린(본사)
Prinzessinnenstraße 19-20, 10969 베를린, 독일
location_on
중국 베이징
중국 베이징 하이뎬구 서가 48호 6호관 5층
location_on
중국 선전
중국 선전 푸안 테크놀로지 빌딩 4층 402호
검색 기반
리더
벡터 모델
재배열자
심층 검색
분류자
얇게 써는 기계
API 문서
Jina API 키 받기
비율 제한
API 상태
회사
회사 소개
영업팀에 문의
소식
인턴 프로그램
우리와 함께
open_in_new
로고 다운로드
open_in_new
자귀
안전
이용약관
은둔
쿠키 관리
email
Jina AI © 2020-2025.