1 puntos por eastlighting1 16 일 전 | Aún no hay comentarios. | Compartir por WhatsApp

Soy un estudiante que terminó la maestría en un laboratorio de investigación donde trabajaba con grafos de conocimiento, ontologías y temas relacionados.

Después de graduarme, me puse a pensar en qué área podría fortalecer mi perfil, y recordé el énfasis que hacía la universidad en el "open source". Luego de considerar varias ideas, me acordé de que durante la maestría intenté hacer una investigación usando neo4j, pero terminé abandonándola porque el IO tardaba demasiado. Así que pensé en desarrollar bibliotecas rápidas, manteniendo al mismo tiempo un nivel de rendimiento comparable al de las bibliotecas existentes. Bajo el tema de un Graph Ecosystem, y con ayuda de un AI Agent, estoy desarrollando varias bibliotecas de grafos.

  • Lynxes

    • Lynxes es una biblioteca de Dataframe orientada a ser la versión Graph de Polars. Por eso el nombre sigue la línea de Pandas - Polars - Lynxes. (Lynx es un lince)
    • También implementé y estoy usando un archivo de datos llamado gf, con una estructura similar al RDF de las ontologías.
    • Está basada en Apache Arrow, pero este no soporta CRUD de forma nativa como si fuera un dataframe. Así que tuve que pensar bastante en cómo manejar esa parte.
    • Si ven el benchmark, para ser sincero no es más rápida que bibliotecas ya establecidas como networkx o igraph, pero aun así estoy satisfecho porque su uso no resulta incómodo.
  • CaracalDB

    • CaracalDB es una biblioteca de base de datos orientada a ser la versión Graph DB de DuckDB. Seguramente ya notaron que la estructura X + DB está tomada de DuckDB, y el nombre Caracal surgió siguiendo la sugerencia de GPT de que el caracal es un animal parecido al lince.
    • CaracalDB también tiene su propio archivo de base de datos con extensión .crcl. Originalmente era una estructura de directorios, pero cuando pedí convertirla en archivo, funcionó bien así también, lo cual me gustó.
    • Por su naturaleza de base de datos embebida, naturalmente es más rápida que Neo4j, que usa servidor.

Ambas bibliotecas están publicadas en PyPI, así que se pueden usar de inmediato.

    uv add lynxes  
    uv add caracaldb  

Además, estoy realizando por separado trabajo de benchmark y optimización en este repositorio.

  • TASK 1 es Knowledge Graph y TASK 2 es GraphRAG. Lo siguiente que quiero intentar es GNN.

Todavía hay muchas partes que me faltan por mejorar. También agradezco críticas y observaciones como: "¿por qué implementaste esto así?" o "¿por qué este benchmark está implementado de esta manera?".

Aún no hay comentarios.

Aún no hay comentarios.