Uso text-embedding-3-large para ai embeddings model y algo va mal con él. Es decir, tengo que recargar mi cuenta de OpenAI dos veces desde el (30 de noviembre), lo cual es una locura porque debería ser suficiente para meses… ¿Ha cambiado algo relacionado con temas? Quizás rellena siempre temas que ya están hechos o no lo sé.
Revisé el mío. Explotó el 27.11. y antes de eso eran menos de 100k tokens al día, pero luego aumentó a 7 millones y aumenta cada día y ayer estuvo cerca de los 20 millones.
Edición: Octubre, el costo de los embeddings fue de 46 centavos. Ahora, diciembre, cerca de cuatro días: casi 6 dólares.
24 millones al día es todo tu foro, eso parece tener errores. A menos que reciba actualizaciones en todos esos temas todos los días, eso es ciertamente un error.
Una cosa que puede estar relacionada es que solíamos omitir la llamada a la API de embeddings cuando el resumen del tema no cambiaba, pero hemos revertido esto en gen_bulk_reprensentations@Roman.
@Don, ¿sabes cuántas solicitudes de embeddings estás haciendo al día?
Dado el límite de 250 por hora, tenemos un límite estricto de 6k por día. Estos números todavía están dentro del límite.
Sin embargo, si solo se activan por nuestra “actualización de una muestra aleatoria” de temas, debería limitarse al 10% de eso, lo que, en el peor de los casos, serían 600 solicitudes.
@Roman ¿no se está aplicando este límite aquí de alguna manera? ¿O el problema está en otro lugar?
Sí, creo que el error que corregí reveló otro que la verificación de resumen estaba ocultando.
Creo que el error está aquí:
Lo cambié de find_each a find_in_batches la semana pasada (el primero usa lotes internamente), y dado que ambos dependen de limit para especificar el tamaño del lote, se ignora el límite original de limit - rebaked. Deberíamos usar pluck + each_slice en su lugar.
A primera vista, no parece relacionado. Parece que falló al generar el embedding y está intentando insertar NULL. ¿Podría ser que OpenAI esté devolviendo un error? ¿Quizás algo relacionado con las cuotas?
¿Puedes ejecutar esto desde una consola?
DiscourseAi::Embeddings::VectorRepresentations::Base
.find_representation(SiteSetting.ai_embeddings_model)
.new(DiscourseAi::Embeddings::Strategies::Truncation.new)
.vector_from("this is a test")
.present?
Debería registrar el error en tus registros si genera un Net::HTTPBadResponse.
Eso significa que puede generar embeddings entonces. ¿Persisten estos errores? Deberías ver estos errores cada cinco minutos si es así.
Ejecuté algunas pruebas en mi instancia local contra nuestro servicio de embeddings autoalojado y confirmé que el rellenado funciona bajo las siguientes condiciones:
No hay embeddings.
El digest está desactualizado y el updated_at de los embeddings es anterior a 6 horas.
El digest no está desactualizado y el updated_at de los embeddings es anterior a 6 horas (en este caso no se actualiza).
No sé nada sobre límites, pero la cantidad de solicitudes de API, etc. volvió a la normalidad después de la corrección anterior. Así que gracias, chicos, por su rápida reacción.