Manejo de Embeddings con OpenAI: API, Instalación y Datasets
Clase 11 de 26 • Curso de Embeddings y Bases de Datos Vectoriales para NLP
Contenido del curso
- 9

Uso práctico de Sentence Transformers en procesamiento de textos
11:16 - 10

Análisis Semántico: Buscar Textos con Sentence Transformers
04:42 - 11

Manejo de Embeddings con OpenAI: API, Instalación y Datasets
10:28 - 12

Manejo y Visualización de Embeddings con OpenAI: Guía Práctica
07:24 - 13

Creación de un Motor de Búsqueda Semántico con Python
12:20 - 14

Transformación de Texto a Embeddings con Sentence Transformer
03:53 Quiz_Usando embeddings preentrenados
- 15

Qué es y cómo usar una base de datos vectorial
05:36 - 16

Gestión de Bases de Datos Vectoriales con ChromaDB: Instalación y Uso
11:45 - 17

Generación y manejo de embeddings en Chroma con Sentence Transformer
04:20 - 18

Consultas avanzadas y filtrado en bases de datos con Chroma
09:24 - 19
Cargar colección de Chroma previamente creada
00:40 - 20

Configuración y Uso de Pinecone: Desde la Instalación hasta la Inserción de Datos
05:08 - 21

Optimización de Ingesta de Datos en Pinecone: Procesos y Estrategias
07:48 - 22

Consultas Avanzadas en Pinecone: De Texto a Vector y Filtros
05:57 - 23

Carga de índices en Pinecone: Gestión eficiente en la nube
02:35 - 24

Carga de embeddings en Pinecone para búsqueda semántica
09:22 - 25

Creación de buscador semántico con Gradio y Sentence Transformer
16:22 Quiz_Bases de datos vectoriales
¿Cómo acceder a la funcionalidad de embeddings de OpenAI?
Acceder a la funcionalidad de embeddings de OpenAI es una herramienta poderosa que permite transformar texto en representaciones numéricas (embeddings) que capturan el significado semántico del mismo. Para empezar, necesitas instalar las librerías de OpenAI y TickToken, necesarias para gestionar los embeddings y medir la cantidad de tokens que se utilizarán, respectivamente.
¿Cómo importar las librerías y definir el API Key?
- Instala las librerías de OpenAI y TickToken.
- Importa las librerías necesarias:
OpenAI,GetPass,OS, ypandas. GetPass se utiliza para manejar la API Key de forma segura. - Define la API Key utilizando
OpenAI.APIKeypara asegurar la autenticidad al acceder a los servicios de OpenAI.
¿Cómo cargar y visualizar el dataset?
Para poder manejar y procesar la información, es necesario cargar un dataset. En este caso, se utilizó un archivo CSV llamado GenericFoot, que contiene información sobre alimentos, su nombre científico, grupo y subgrupo.
import pandas as pd
# Cargar dataset
df = pd.read_csv('GenericFoot.csv')
# Visualizar dataset
print(df.head())
¿Cómo calcular la cantidad de tokens necesaria?
OpenAI cobra por el uso de tokens, por lo que es esencial calcular cuántos se necesitan antes de ejecutar las funciones de embeddings. Para esto:
- Importa TickToken.
- Crea una función
numTokensFromStringpara evaluar la cantidad de tokens que un texto utilizará, basado en un encoder determinado. - Asigna la cantidad de tokens calculada a una nueva columna
TotalTokensen tu DataFrame.
import tiktoken
def numTokensFromString(text, encoder_name):
encoding = tiktoken.getEncoding(encoder_name)
return len(encoding.encode(text))
df['TotalTokens'] = df['footName'].apply(lambda x: numTokensFromString(x, 'cl100kBase'))
total_tokens = df['TotalTokens'].sum()
print(f'Tokens totales: {total_tokens}')
¿Cómo generar y aplicar embeddings utilizando OpenAI?
Una vez que conoces la cantidad de tokens, puedes proceder a generar los embeddings. OpenAI ofrece modelos, como textEmbeddingADA002, óptimos para esta tarea.
Creación de la función de embeddings
Crea una función getEmbedding que se encargue de generar embeddings a partir de texto. Utiliza el modelo recomendado y asegúrate de procesar adecuadamente los saltos de línea.
def getEmbedding(text, model='textEmbeddingADA002'):
text = text.replace('\n', '')
response = openai.Embeddings.create(input=text, model=model)
return response['data'][0]['embedding']
Aplica esta función a tus datos para obtener los embeddings de cada fila de texto:
df['EmbeddingAda'] = df['footName'].apply(lambda x: getEmbedding(x))
Validación de la dimensionalidad del embedding
Los embeddings resultantes tienen una alta dimensionalidad, en este caso de 1536 dimensiones. Esto es gracias al uso de modelos avanzados como GPT-3 y GPT-4, que poseen complejidades y corpus de entrenamiento amplios.
Ejemplo de uso de la funcionalidad
Prueba la funcionalidad fuera del dataset:
test_embedding = getEmbedding("Esto es una prueba de embeddings para OpenAI")
print(len(test_embedding)) # Muestra la dimensionalidad del embedding
¿Cuáles son las limitaciones y consideraciones a tener en cuenta?
Es crucial estar al tanto de las restricciones de los modelos de OpenAI: desde la longitud máxima de texto que pueden procesar, inicialmente alrededor de 8000 caracteres, hasta las posibles actualizaciones en sus capacidades y costos asociados. Estas actualizaciones pueden ser verificadas en la documentación proporcionada por OpenAI.