46.6kЗаказать демоВойтиНачать бесплатно
OpenAI

OpenAI / text-embedding-3-small

Самая экономичная модель встраивания текста от OpenAI с повышенной точностью и эффективностью по сравнению с text-embedding-ada-002 и text-embedding-3-large.

Введение в text-embedding-3-small

text-embedding-3-small - это небольшая модель встраивания текста OpenAI, создающая вкрапления с 1536 размерами. По сравнению с другими моделями встраивания текста OpenAI, такими как text-embedding-ada-002 и text-embedding-3-large, text-embedding-3-small является наиболее экономичной моделью с повышенной точностью и эффективностью. Она отлично подходит для приложений векторного поиска общего назначения.

Давайте вкратце рассмотрим некоторые основы.

МодельРазмерыMax TokensМодель MIRACL avgMETB avgЦена
text-embedding-3-large3072819154.964.6$0.13 / 1M tokens
text-embedding-ada-0021536819131.461.0$0.10 / 1M tokens
text-embedding-3-small1536819144.062.3$0.02 / 1M tokens

Как генерировать векторные вкрапления с помощью text-embedding-3-small

Существует два основных способа создания векторных вкраплений:

  • PyMilvus: Python SDK для Milvus, который легко интегрирует модель text-embedding-3-small.
  • OpenAI Embedding: Python SDK, предлагаемый OpenAI.

После того как векторные вкрапления сгенерированы, их можно хранить в Zilliz Cloud (полностью управляемый сервис векторных баз данных на базе Milvus) и использовать для поиска семантического сходства. Вот четыре ключевых шага:

  1. Зарегистрируйтесь для получения бесплатной учетной записи Zilliz Cloud.
  2. Настройте бессерверный кластер и получите Публичную конечную точку и ключ API.
  3. Создайте коллекцию векторов и вставьте в нее свои векторные вкрапления.
  4. Запустите семантический поиск по сохраненным вкраплениям.

Генерировать векторные вкрапления с помощью PyMilvus и вставлять их в Zilliz Cloud для семантического поиска

из pymilvus import model, MilvusClient

OPENAI_API_KEY = "your-openai-api-key"
ef = model.dense.OpenAIEmbeddingFunction(
   model_name="text-embedding-3-small",
   api_key=OPENAI_API_KEY,
   )

# Генерируем вкрапления для документов
docs = [
   "Искусственный интеллект был основан как академическая дисциплина в 1956 году",
   "Алан Тьюринг был первым человеком, который провел серьезные исследования в области искусственного интеллекта",
   "Тьюринг родился в Майда-Вейл, Лондон, и вырос на юге Англии".
]

docs_embeddings = ef.encode_documents(docs)

# Генерируем вкрапления для запросов
запросы = ["Когда был основан искусственный интеллект",
          "Где родился Алан Тьюринг?"]

query_embeddings = ef.encode_queries(queries)

# Подключение к облаку Zilliz с помощью публичной конечной точки и ключа API
client = MilvusClient(
    uri=ZILLIZ_PUBLIC_ENDPOINT,
    token=ZILLIZ_API_KEY)

КОЛЛЕКЦИЯ = "документы"
if client.has_collection(collection_name=COLLECTION):
    client.drop_collection(collection_name=COLLECTION)
client.create_collection(
    имя_коллекции=COLLECTION,
    dimension=ef.dim,
    auto_id=True)

для doc, embedding в zip(docs, docs_embeddings):
    client.insert(COLLECTION, {"text": doc, "vector": embedding})
    
results = client.search(
    имя_коллекции=КОЛЛЕКЦИЯ,
    data=query_embeddings,
    consistency_level="Strong",
    output_fields=["text"])

Для получения дополнительной информации обратитесь к нашей документации PyMilvus Embedding Model.

Генерировать вкрапления с помощью OpenAI's Python SDK и вставлять их в Zilliz Cloud для семантического поиска

from openai import OpenAI
from pymilvus import MilvusClient

OPENAI_API_KEY = "your-openai-api-key"
client = OpenAI(api_key=OPENAI_API_KEY)
# Генерируем вставки для документов
doc_response = client.embeddings.create(
   input=[
   "Искусственный интеллект был основан как академическая дисциплина в 1956 году",
   "Алан Тьюринг был первым человеком, который провел серьезные исследования в области искусственного интеллекта",
   "Тьюринг родился в Майда-Вейл, Лондон, и вырос на юге Англии".
   ],
   model="text-embedding-3-small"
   )
doc_embeddings = [data.embedding for data in doc_response.data]

# Создание вкраплений для запросов
query_response = client.embeddings.create(
   input=["Когда был основан искусственный интеллект",
          "Где родился Алан Тьюринг?"],
   model="text-embedding-3-small"
   )
query_embeddings = [data.embedding for data in query_response.data]

# Подключение к облаку Zilliz с помощью публичной конечной точки и ключа API
client = MilvusClient(
    uri=ZILLIZ_PUBLIC_ENDPOINT,
    token=ZILLIZ_API_KEY)

КОЛЛЕКЦИЯ = "документы"
if client.has_collection(collection_name=COLLECTION):
    client.drop_collection(collection_name=COLLECTION)
client.create_collection(
    имя_коллекции=COLLECTION,
    dimension=1536,
    auto_id=True)

для doc, embedding в zip(docs, docs_embeddings):
    client.insert(COLLECTION, {"text": doc, "vector": embedding})
    
results = client.search(
    имя_коллекции=КОЛЛЕКЦИЯ,
    data=query_embeddings,
    consistency_level="Strong",
    output_fields=["text"])

Для получения дополнительной информации обратитесь к OpenAI's Embedding Guide.