AI generativa impresionante se encuentra con el lenguaje de programación de Julia
Guía integral de proyectos y recursos generativos de IA en/para/asociado con Julia.
Julia es un lenguaje dinámico de alto nivel y de alto rendimiento para la informática técnica.
La IA generativa abarca algoritmos y modelos que aprovechan el aprendizaje automático a gran escala para generar contenido nuevo (en muchas modalidades), automatizar, comprender, analizar, extraer y mucho más, adaptándose a una amplia gama de aplicaciones más allá de la mera creación de contenido.
Contenido
- Proyectos generativos de IA y Julia
- Modelos
- API SDKS
- Proveedores de modelos
- Proveedores de servicios en la nube
- Bases de datos vectoriales
- DBMS de propósito general con soporte de índice vectorial
- Paquetes
- Paquetes JLL
- Puntos de referencia/comparaciones
- Aplicaciones/productos
- Tutoriales/aprendizaje
- Menciones notables
- Despliegues locales
- AI generativa - Generación anterior
- Proyectos de Python imprescindibles
- Otras listas impresionantes
Proyectos generativos de IA y Julia
- Organización de Juliagenai: una organización de Github y una comunidad de desarrolladores e investigadores de Julia que trabajan en IA generativa.
Modelos
Construir, entrenar y desplegar modelos de idiomas grandes (y otras modalidades) en Julia.
- Flux.jl - Flux es una biblioteca de aprendizaje automático para Julia que es flexible y permite construir modelos complejos. Sin embargo, al momento de escribir, no estoy al tanto de ningún modelo de idioma grande (LLMS) que haya sido implementado y capacitado en flujo.
- Transformers.jl-Transformers.jl es un paquete Julia que proporciona una API de alto nivel para usar modelos Transformer previamente capacitados. También permite descargar cualquier modelo de abrazo Face Hub con una cadena macro
@hgf_str . - Pickle.jl: excelente paquete para cargar pesas de Pytorch en Julia (si desea implementar modelos usted mismo).
- BytePairEncoding.jl - Pure Julia Implementación del algoritmo de codificación de pares de bytes (BPE). Es utilizado por Transformers.jl para tokenizar el texto.
- Llama2.jl - Llama2.jl proporciona un código simple para la inferencia y capacitación de modelos de idiomas basados en LLAMA2 basados en LLAMA2.C. Admite la carga de pesos cuantizados en formato Gguf (variante
q4_K_S ). Otros proyectos similares: languageModels.jl - Llama.jl - Julia Interface to Llama.cpp, una biblioteca C/C ++ para ejecutar modelos de idiomas localmente. Admite una amplia gama de modelos.
- Whisper.jl - Julia Interface to Whisper.cpp, una inferencia de alto rendimiento en C/C ++ del modelo de reconocimiento automático de voz de OpenAI's Whisper (ASR).
API SDKS
Proveedores de modelos
Acceda a los modelos de IA generativos a través de API oficiales.
- OPERAI.JL - Una envoltura de Julia mantenida por la comunidad a la API Operai.
Proveedores de servicios en la nube
Acceda a los modelos de IA generativos a través de SDK de proveedores de servicios en la nube populares.
- Googlecloud.jl - SDK para Google Cloud. Hay un PR abierto para habilitar los puntos finales de Vertex AI.
- Googlegenai.jl - envoltura no oficial para la API de Google Gemini.
Bases de datos vectoriales
- Pinecone.jl - SDK para la base de datos de Vector Pinecone.io.
DBMS de propósito general con soporte de índice vectorial
| Nombre | Cliente de Julia | Ejemplos de uso |
|---|
| Elasticsearch | ElasticsearchClient.jl | GptSeachplugin con elasticsearch |
| OpenSearch | ElasticsearchClient.jl | GPTSeachPlugin con OpenSearch |
| PostgreSQL + PGVector | Libpq.jl | Ejemplos de PGVector para Julia |
Paquetes
- ReplGpt.jl - trae la interfaz CHATGPT como un modo Julia REPL.
- Helpgpt.jl: llama a ChatGPT para explicar cualquier error en el código Julia.
- Gengpt3.jl - una función generativa gen.jl que envuelve la API de OpenAI.
- PromplingTools.jl: ayuda con las aplicaciones cotidianas de modelos de idiomas grandes en Julia envolviendo las próximas API, reutilizando las indicaciones a través de plantillas y habilitando una transición fácil entre diferentes proveedores de modelos (por ejemplo, OpenAi, Ollama). (Descargo de responsabilidad: soy el autor de este paquete).
- LLMTextanalysis.jl - Aproveche los modelos de lenguaje grandes para descubrir, evaluar y etiquetar temas/conceptos/espectros en grandes colecciones de documentos. (Descargo de responsabilidad: soy el autor de este paquete).
- Aihelpme.jl - Asistencia de código AI mejorada aprovechando la documentación del paquete (generación de recuperación aumentada). Viene preenvasado para paquetes de Julia comunes, pero se puede usar para cualquier paquete.
- Aihelpui.jl - interfaz gráfica basada en la web para aihelpme.jl construida sobre stipple.jl.
- ProtoPortal.jl-Interfaz gráfica basada en la web para solicitartools.jl con plantillas y funcionalidad adicionales de inmediato (ejecución de código de Julia y fijación automática, meta-prompting, autocrítica, entrada de voz a texto). Similar a ChatGPT pero orientado a Julia.
Paquetes JLL
Los JLL son bibliotecas y ejecutables prebuilados para instalar y llamar fácilmente proyectos no juliosos (por ejemplo, C/C ++). A menudo son el primer paso hacia un paquete Julia con una interfaz idiomática.
- LLAMA_CPP_JLL.JL - JLL PAGACK para llama.cpp, la mejor interfaz para modelos cuantizados de estilo LLAMA2.
Puntos de referencia/comparaciones
- Julia LLM Raeperboard - Comparación de las capacidades de generación de idiomas de Julia de varios modelos de idiomas grandes en una variedad de tareas. Visite si desea ayuda para elegir el modelo adecuado para su aplicación.
- Humaneval.jl - La versión Julia de OpenAi/Human -Eval. Reescribe los problemas originales de Python en la versión de Julia y proporciona resultados de evaluación con varios LLM más recientes.
Aplicaciones/productos
Aplicaciones y productos que "funcionan" con el idioma Julia.
- Copiloto de GitHub: excelentes sugerencias en línea con la ayuda de modelos Operai. Funciona extremadamente bien con el idioma Julia para tareas repetitivas una línea a la vez, pero los fragmentos de código más grandes rara vez son correctos.
- Codium.ai: excelente complemento IDE o VScode para análisis de código, sugerencia y generación de suites de prueba. Aunque las pruebas se escriben más al estilo de Pytest en lugar de Julia idiomática. Tiene un nivel libre.
- Replicación de replicación: ReplIn's Repl está impulsado por un modelo interno que admite el lenguaje Julia.
- Codeium: alternativa gratuita al copiloto de GitHub con extensiones para la mayoría de los editores.
- Cursor: IDE alternativo basado en VScode con la finalización y sugerencias de código con IA. Funciona muy bien con Julia Language.
Aplicaciones y productos afiliados a Julia utilizando LLMS
- Juliahub Askai - Askai es una aplicación RAG de Juliahub (generación de recuperación aumentada) que permite a los usuarios hacer preguntas sobre el idioma Julia y su ecosistema. Es gratis, pero debe iniciar sesión en Juliahub para usarlo.
- Asistente de UI de Genie - Genie UI Assistant es un GPT -4 Powered UI Builder que ayuda a los usuarios de Genie.jl a crear UI más rápido usando el lenguaje natural.
- Comind: una red social, mensajería e interfaz LLM integrada en Julia.
Sala de espera
Nuevos proyectos que todavía están esperando demostrar su valía y recolectar suficientes estrellas.
- FlashRank.jl: clasificación de documentos rápidos y locales con modelos que pueden ejecutarse en cualquier computadora (basada en CPU). Basado en FlashRank de Python.
- SemanticCaches.jl: almacenamiento en caché más inteligente para aplicaciones de Genai con un pequeño modelo de incrustación - reduciendo la latencia, una solicitud a la vez.
- Spehulak.jl - Plataforma de observabilidad Genai para depurar sus llamadas LLM. Totalmente integrado con la indicación de la información. Jl.
Inédito, experimental pero funcional:
- Milvus.jl: una implementación mínima y no oficial del cliente de Milvus Vectordb para Julia.
Proyectos archivados
- GPTCodingTools.jl - Herramienta de generación de códigos para el lenguaje Julia con plantillas de inmediato y características de autocuración (intérprete de código Ala OpenAi). Funciona, pero el desarrollo ha sido abandonado. (Descargo de responsabilidad: soy el autor de este paquete).
Tutoriales/aprendizaje
- Tutorial para usar LLMS con Transformers.jl: un breve tutorial sobre cómo usar Transformers.jl para acceder a LLMS desde HuBgingface Hub.
- Construyendo un chatbot de trapo a través de Dataframes.jl Documentación - Guía práctica - Una guía práctica sobre cómo construir un chatbot de trapo a través de dataframes.jl documentación utilizando solo dependencias mínimas.
- Mini-tareas de Genai: ¿Extrayendo datos de (.*)? ¡No busques más! - Un tutorial sobre extracción de datos estructurados. Una parte de una serie más grande de tutoriales sobre pequeñas tareas que se pueden hacer con Genai.
- Tiny Binary Rag: una excelente inmersión profunda en la búsqueda semántica (la "R" en el trapo). Muestra que con 100 líneas de Julia, puede buscar 15 millones de fragmentos (~ tamaño de Wikipedia) en <20 ms.
Menciones notables
Algunos de los siguientes proyectos no son necesariamente menciones específicas de Julia, sino notables en el espacio generativo de IA e interesantes para los desarrolladores de Julia.
Despliegues locales
- Ollama: la mejor opción para aquellos que buscan alojar un modelo de idioma grande localmente. Simplemente inicie el servidor y envíe las solicitudes con http.jl.
- LM Studio: una aplicación de escritorio para alojar e interactuar con LLM localmente. Es una gran opción para aquellos que desean usar LLM sin codificar. Es gratis para uso personal .
AI generativa - Generación anterior
- Generativemodels.jl: biblioteca útil para capacitar a modelos generativos más tradicionales como VAE. Está construido sobre Flux.jl.
### utilidades útiles
- Stipple.jl - para construir aplicaciones de datos interactivos en puro Julia (parte del ecosistema Genie.jl). Excelente para construir interfaces basadas en la web para aplicaciones Genai.
- Taro.jl - poderoso analizador para varios tipos de documentos (interopta a Java). Muy útil para aplicaciones de generación de recuperación de construcción (RAG).
Proyectos de Python imprescindibles
Python está a la vanguardia de la revolución generativa de IA. Afortunadamente, tenemos pythoncall.jl que nos permite llamar fácilmente todos los paquetes de Python a continuación.
- Huggingface Transformers: la biblioteca más popular para acceder a LLMS y otros modelos. Se puede usar principalmente a través de transformers.jl (ver arriba).
- Langchain: la mejor opción para construir aplicaciones además de LLMS (por ejemplo, cadenas, agentes). Tiene muchos adaptadores para modelos comunes, bases de datos y otros servicios.
- ÍNDICE DE LLAMA: similar a Langchain pero con un enfoque en aplicaciones centradas en datos como RAG.
- Instructor: marco de extracción estructurado simple pero potente en la parte superior de la API de Operai. Excelente para comprender el poder de las funciones llamando a API junto con Pydantic.
- Marvin: poderosos bloques de construcción para construir aplicaciones de IA rápidamente y exponerlas a través de una API lista para la producción.
- Abrir intérprete: deje que LLM ejecute código en su computadora (por ejemplo, Python, JavaScript, Shell y más). Una alternativa local de código abierto al intérprete de código OpenAI.
Otras listas impresionantes
- AI generativa impresionante: gran lista para todas las cosas de IA generativa. ¡Una inspiración para esta lista!