A IA generativa incrível encontra a linguagem de programação Julia
Guia abrangente para projetos e recursos generativos de IA em/para/associados a Julia.
Julia é uma linguagem dinâmica de alto nível e de alto desempenho para a computação técnica.
A IA generativa abrange algoritmos e modelos que aproveitam o aprendizado de máquina em larga escala para gerar novos conteúdos (em muitas modalidades), automatizar, entender, analisar, extrair e muito mais, adaptando-se a uma ampla gama de aplicações além da mera criação de conteúdo.
Conteúdo
- Projetos de IA generativos e Julia
- Modelos
- API SDKS
- Provedores de modelos
- Provedores de serviços em nuvem
- Bancos de dados vetoriais
- DBMs de uso geral com suporte ao índice vetorial
- Pacotes
- Pacotes JLL
- Benchmarks/comparações
- Aplicações/produtos
- Tutoriais/aprendizado
- Menções dignas de nota
- Implantações locais
- AI generativa - geração anterior
- Projetos Python obrigatórios
- Outras listas incríveis
Projetos de IA generativos e Julia
- JuliaGenai Organization - Uma organização do GitHub e uma comunidade de desenvolvedores e pesquisadores de Julia que trabalham em IA generativa.
Modelos
Construa, treine e implante grandes modelos de idiomas (e outras modalidades) em Julia.
- Flux.jl - O Flux é uma biblioteca de aprendizado de máquina para Julia que é flexível e permite a construção de modelos complexos. No entanto, no momento da redação deste artigo, não tenho conhecimento de grandes modelos de idiomas (LLMs) que foram implementados e treinados em fluxo.
- Transformers.jl-Transformers.jl é um pacote Julia que fornece uma API de alto nível para o uso de modelos de transformadores pré-treinados. Ele também permite baixar quaisquer modelos de HUGGING FACE HUB com string de macro
@hgf_str . - Pickle.jl - Ótimo pacote para carregar pesos pytorch em Julia (se você quiser implementar modelos).
- Bytepairencoding.jl - Implementação pura de Julia de algoritmo de codificação de pares de bytes (BPE). É usado pelo Transformers.jl para tokenizar o texto.
- Llama2.jl - llama2.jl fornece código simples para inferência e treinamento de modelos de idiomas baseados em LLAMA2 baseados em llama2.c. Ele suporta carregamento de pesos quantizados no formato GGUF (variante
q4_K_S ). Outros projetos semelhantes: LanguageModels.jl - LLAMA.JL - Julia Interface para llama.cpp, uma biblioteca C/C ++ para executar modelos de linguagem localmente. Suporta uma ampla gama de modelos.
- Whisper.jl - Interface Julia para sussurrar.cpp, uma inferência de alto desempenho no modelo C/C ++ do modelo de reconhecimento automático de discursos (ASR) do OpenAI.
API SDKS
Provedores de modelos
Acesse modelos de IA generativos por meio de APIs oficiais.
- Openai.jl - Um invólucro de Julia, mantido na comunidade, para a API Openai.
Provedores de serviços em nuvem
Acesse modelos de IA generativos por meio de SDKs de provedores populares de serviços em nuvem.
- Googlecloud.jl - SDK para o Google Cloud. Existe um PR aberto para ativar pontos de extremidade do vértice AI.
- GoogleGenai.jl - wrapper não oficial para a API do Google Gemini.
Bancos de dados vetoriais
- Pinecone.jl - SDK para Pinecone.io Vector Database.
DBMs de uso geral com suporte ao índice vetorial
| Nome | Julia Client | Exemplos de uso |
|---|
| Elasticsearch | ElasticsearchClient.jl | GptSeachplugin com elasticsearch |
| OpenSearch | ElasticsearchClient.jl | GptSeachplugin com openEarch |
| PostGresql + PGVector | Libpq.jl | Exemplos de PGVector para Julia |
Pacotes
- Replgpt.jl - traz a interface ChatGPT como um modo Julia Repl.
- Helpgpt.jl - chama ChatGPT para explicar quaisquer erros no código Julia.
- Gengpt3.jl - uma função generativa gen.jl que envolve a API do OpenAI.
- PromptingTools.jl - Ajuda com as aplicações cotidianas de grandes modelos de linguagem em Julia, envolvendo as próximas APIs, reutilizando instruções por meio de modelos e permitindo uma transição fácil entre diferentes provedores de modelos (por exemplo, Openai, Ollama). (Isenção de responsabilidade: sou o autor deste pacote.)
- Llmtextanalysis.jl - Aproveite grandes modelos de linguagem para descobrir, avaliar e rotular temas/conceitos/espectros em grandes coleções de documentos. (Isenção de responsabilidade: sou o autor deste pacote.)
- Aihelpme.jl - ASSISTÊNCIA DE CÓDIGO AI AUMENTADO Aproveitando a documentação do pacote (geração aumentada de recuperação). Vem pré-embalado para pacotes Julia Common, mas pode ser usado para qualquer pacote.
- Aihelpui.jl - interface gráfica baseada na Web para aihelpme.jl construído sobre o stipple.jl.
- Protoportal.jl-Interface gráfica baseada na Web para PromptingTools.jl com modelos e funcionalidades de prompt extras (execução de código Julia e entrada automática, meta-criação, entrada automática de fala em texto). Semelhante ao chatgpt, mas voltado para Julia.
Pacotes JLL
As JLLs são bibliotecas e executáveis pré-construídos para instalar e chamar projetos que não são de julia facilmente (por exemplo, C/C ++). Muitas vezes, eles são o primeiro passo em direção a um pacote Julia com uma interface idiomática.
- LLAMA_CPP_JLL.JL - Pacote JLL para llama.cpp, a melhor interface para modelos quantizados no estilo llama2.
Benchmarks/comparações
- Tabela de classificação Julia LLM - Comparação dos recursos de geração de idiomas Julia de vários grandes modelos de idiomas em uma variedade de tarefas. Visite se quiser ajuda a escolher o modelo certo para o seu aplicativo.
- Humaneval.jl - A versão de Julia do Openai/Human -Eval. Ele reescreve os problemas originais do Python na versão Julia e fornece resultados de avaliação com vários LLMs mais recentes.
Aplicações/produtos
Aplicativos e produtos que "funcionam" com a linguagem Julia.
- Github Copilot - Excelentes sugestões em linha com a ajuda dos modelos Openai. Funciona extremamente bem com o idioma Julia para tarefas repetitivas uma linha de cada vez, mas pedaços de código maiores raramente estão corretos.
- Codium.ai - Ótimo plug -in de IDE ou VSCode para análise de código, sugestão e geração de suítes de teste. Embora os testes sejam escritos mais no estilo de pytest do que em Julia idiomática. Tem um nível livre.
- REPLIT - O REPLET da REPLIT é alimentado por um modelo interno que suporta a linguagem Julia.
- Codeium - Alternativa gratuita ao GitHub Copilot com extensões para a maioria dos editores.
- Cursor - IDE alternativo com base no VSCode com a conclusão e sugestões de código de IA. Funciona muito bem com a linguagem Julia.
Aplicações e produtos afiliados a Julia usando LLMS
- Juliahub Askai - Askai é um aplicativo Juliahub (geração aumentada de recuperação) do Juliahub que permite aos usuários fazer perguntas sobre o idioma Julia e seu ecossistema. É gratuito, mas você precisa estar conectado ao Juliahub para usá -lo.
- Assistente de UI da Genie - o Assistente de Ui da Genie é um construtor de interface do usuário do GPT -4, ajudando os usuários da Genie.JL a criar UIs mais rapidamente usando linguagem natural.
- Comind - uma rede social, mensagens e interface LLM construídas em Julia.
Sala de espera
Novos projetos que ainda estão esperando para provar a si mesmos e coletar estrelas suficientes.
- FlashRank.jl - classificação de documentos rápida e local com modelos que podem ser executados em qualquer computador (baseado em CPU). Baseado no flashrank do Python.
- Semanticcaches.jl - Cache mais inteligente para aplicativos Genai com um pequeno modelo de incorporação - reduzindo a latência, uma solicitação por vez.
- Spehulak.jl - Plataforma de observabilidade da Genai para depurar suas chamadas LLM. Totalmente integrado ao PromptingTools.jl.
Não lançado, experimental, mas funcional:
- MILVUS.JL - Uma implementação mínima e não oficial do cliente Milvus vectordb para Julia.
Projetos arquivados
- GPTCodingTools.JL - Ferramenta de geração de código para a linguagem Julia com modelos de prompt útil e recursos de autocura (intérprete de código ALA OpenAI). Funciona, mas o desenvolvimento foi abandonado. (Isenção de responsabilidade: sou o autor deste pacote.)
Tutoriais/aprendizado
- Tutorial para o uso de LLMs com Transformers.jl - Um breve tutorial sobre como usar o Transformers.jl para acessar o LLMS do HUGGINGFace Hub.
- Construindo um chatbot de pano sobre dados de dados de dados.jl - guia prático - um guia prático sobre como criar um chatbot de pano sobre documentação de scrames dataframes.jl usando apenas dependências mínimas.
- Genai Mini-Tasks: Extraindo dados de (.*)? Não procure mais! - Um tutorial sobre extração de dados estruturada. Uma parte de uma série maior de tutoriais sobre pequenas tarefas que podem ser realizadas com a Genai.
- Tiny Rag binário - um excelente mergulho profundo em busca semântica (o "R" em Rag). Ele mostra que, com 100 linhas de Julia, você pode pesquisar pedaços de 15m (~ tamanho da Wikipedia) em <20ms.
Menções dignas de nota
Alguns dos projetos abaixo não são necessariamente menções específicas de Julia, mas notáveis no espaço generativo da IA e interessantes para os desenvolvedores de Julia.
Implantações locais
- Ollama - A melhor opção para quem procura hospedar um grande modelo de idioma localmente. Basta iniciar o servidor e enviar as solicitações com http.jl.
- LM Studio - Um aplicativo de desktop para hospedar e interagir com o LLMS localmente. É uma ótima opção para quem deseja usar o LLMS sem codificar. É gratuito para uso pessoal .
AI generativa - geração anterior
- Generativemodels.jl - Biblioteca útil para treinar modelos generativos mais tradicionais como VAES. É construído sobre o Flux.JL.
### Utilitários úteis
- Stipple.jl - Para criar aplicativos de dados interativos em Julia Pure (parte do ecossistema Genie.jl). Excelente para criar interfaces baseadas na Web para aplicativos da Genai.
- Taro.jl - analisador poderoso para vários tipos de documentos (interop para java). Muito útil para criar aplicações de geração de recuperação de recuperação (RAG).
Projetos Python obrigatórios
Python está na vanguarda da revolução generativa da IA. Felizmente, temos o PyTyCall.jl nos permitindo chamar facilmente todos os pacotes Python abaixo.
- Transformers do Huggingface - a biblioteca mais popular para acessar o LLMS e outros modelos. Pode ser usado principalmente via Transformers.jl (veja acima).
- Langchain - A melhor opção para criar aplicativos no topo do LLMS (por exemplo, correntes, agentes). Possui muitos adaptadores para modelos, bancos de dados e outros serviços comuns.
- Índice de LLAMA - semelhante ao Langchain, mas com foco em aplicativos centrados em dados, como o RAG.
- Instrutor - Estrutura de extração estruturada simples e poderosa no topo da API OpenAI. Excelente para entender o poder da API de chamada de função, juntamente com o Pydantic.
- Marvin - poderosos blocos de construção para criar aplicativos de IA rapidamente e expô -los por meio de uma API pronta para produção.
- Open Intreper - Deixe o LLMS executar o código no seu computador (por exemplo, Python, JavaScript, Shell e muito mais). Uma alternativa local de código aberto ao intérprete de código OpenAI.
Outras listas incríveis
- IA generativa incrível - ótima lista para todas as coisas de IA generativa. Uma inspiração para esta lista!