Fantastische generative KI trifft die Julia -Programmiersprache
Umfassender Leitfaden für generative KI -Projekte und -Ressourcen in/for/associated mit Julia.
Julia ist eine dynamische Sprache auf hoher Ebene für technisches Computer.
Generative KI umfasst Algorithmen und Modelle, die großflächiges maschinelles Lernen nutzen, um neue Inhalte (über viele Modalitäten hinweg) zu generieren, zu automatisieren, zu verstehen, zu analysieren, zu extrahieren, und vieles mehr, um sich an eine Vielzahl von Anwendungen anzupassen, die über die bloße Erstellung von Inhalten hinausgehen.
Inhalt
- Generative KI -Projekte und Julia
- Modelle
- API SDKS
- Modellanbieter
- Cloud -Diensteanbieter
- Vektordatenbanken
- Allgemeine DBMs mit Vektorindexunterstützung
- Pakete
- JLL -Pakete
- Benchmarks/Vergleiche
- Anwendungen/Produkte
- Tutorials/Lernen
- Bemerkenswerte Erwähnungen
- Lokale Bereitstellungen
- Generative AI - Vorgängergeneration
- Muss Python-Projekte
- Andere großartige Listen
Generative KI -Projekte und Julia
- JULIAGENAI ARGANIGSION - Eine Github -Organisation und eine Gemeinschaft von Julia -Entwicklern und Forschern, die an generativen KI arbeiten.
Modelle
Erstellen, trainieren und setzen Sie Großsprachenmodelle (und andere Modalitäten) in Julia auf.
- FLUX.JL - Flux ist eine Bibliothek für maschinelles Lernen für Julia, die flexibel ist und komplexe Modelle ermöglicht. Zum Zeitpunkt des Schreibens bin mir jedoch keine große Sprachmodelle (LLMs) bekannt, die im Fluss implementiert und geschult wurden.
- Transformers.jl-Transformers.jl ist ein Julia-Paket, das eine hochrangige API für die Verwendung von vorgeborenen Transformatormodellen bietet. Es ermöglicht auch, Modelle von der Umarmung von Face Hub mit
@hgf_str -Makro -String herunterzuladen. - Pickle.jl - Tolles Paket zum Laden von Pytorch -Gewichten in Julia (wenn Sie Modelle selbst implementieren möchten).
- Bytepairencoding.jl - reiner Julia -Implementierung des Byte -Paares (BPE) -Algorithmus. Es wird von Transformers.jl verwendet, um Text zu tokenisieren.
- LLAMA2.JL - LLAMA2.JL bietet einfachen Code für Inferenz und Ausbildung von LAMA2 -basierten Sprachmodellen basierend auf Llama2.c. Es unterstützt das Laden quantisierter Gewichte im GGUF -Format (
q4_K_S Variante). Andere ähnliche Projekte: Languagemodels.jl - Llama.jl - Julia Schnittstelle zu Lama.cpp, eine C/C ++ - Bibliothek für die lokalen Ausführung von Sprachmodellen. Unterstützt eine breite Palette von Modellen.
- Flüster.jl - Julia Schnittstelle zu flüstert.cpp, eine leistungsstarke Inferenz in C/C ++ des Openai -Modells Whisper Automatic Rede Recognition (ASR).
API SDKS
Modellanbieter
Zugriff über generative KI -Modelle über offizielle APIs.
- OpenAI.JL - Eine von der Gemeinschaft gepflegte Julia -Wrapper der Openai -API.
Cloud -Diensteanbieter
Zugriff über generative KI -Modelle über SDKs populärer Cloud -Dienstanbieter.
- Googlecloud.jl - SDK für Google Cloud. Es gibt eine offene PR, um die Endpunkte von Scheitelpunkten AI zu ermöglichen.
- Googlegenai.jl - Inoffizielle Wrapper für die Google Gemini -API.
Vektordatenbanken
- PineCone.jl - SDK für die Pnecone.io -Vektor -Datenbank.
Allgemeine DBMs mit Vektorindexunterstützung
| Name | Julia Client | Nutzungsbeispiele |
|---|
| Elasticsarch | ElasticsearchClient.jl | GptSeachplugin mit Elasticsearch |
| OpenSearch | ElasticsearchClient.jl | GptSeachplugin mit OpenSearch |
| PostgreSQL + PGVector | Libpq.jl | PGVector -Beispiele für Julia |
Pakete
- Replgpt.jl - bringt Chatgpt -Schnittstelle als Julia Reply -Modus.
- Helpgpt.jl - Ruft Chatgpt an, um Fehler im Julia -Code zu erklären.
- Gengpt3.jl - Eine generative Funktion von Gen.jl, die die OpenAI -API umhüllt.
- PromptingTools.jl - hilft bei alltäglichen Anwendungen von großsprachigen Modellen in Julia, indem sie kommende APIs einwickelt, Eingabeaufforderungen über Vorlagen wiederverwendet und einen einfachen Übergang zwischen verschiedenen Modellanbietern (z. B. OpenAI, Ollama) ermöglicht. (Haftungsausschluss: Ich bin der Autor dieses Pakets.)
- LLMTEXTANALYSE.JL - Nutzen Sie große Sprachmodelle, um Themen/Konzepte/Spektren in großen Dokumentsammlungen aufzudecken, zu bewerten und zu beschriften. (Haftungsausschluss: Ich bin der Autor dieses Pakets.)
- AIHELPME.JL - Verbesserte AI -Code -Unterstützung durch Nutzung von Paketdokumentation (Abrufer Augmented Generation). Kommt für gemeinsame Julia-Pakete vorverpackt, kann aber für jedes Paket verwendet werden.
- Aihelpui.jl - Webbasierte grafische Schnittstelle für aihelpme.jl auf Stipple.jl.
- Protoportal.jl-Webbasierte grafische Schnittstelle für PromptionTools.jl mit zusätzlichen Eingabeaufforderungen und Funktionen (Julia Code Execution und automatische Fixierung, Meta-Promping, automatisch kritische, Sprach-zu-Text-Eintrag). Ähnlich wie Chatgpt, aber auf Julia ausgerichtet.
JLL -Pakete
JLLs sind vorgefertigte Bibliotheken und ausführbare Produkte, die problemlos Nicht-Julia-Projekte installieren und aufrufen können (z. B. C/C ++). Oft sind sie der erste Schritt in Richtung eines Julia -Pakets mit einer idiomatischen Schnittstelle.
- llama_cpp_jll.jl - jll -Paket für llama.cpp, die beste Schnittstelle für quantisierte Modelle im Llama2 -Stil.
Benchmarks/Vergleiche
- Julia LLM Langlaube - Vergleich der Fähigkeiten der Julia -Spracherzeugung verschiedener großer Sprachmodelle über eine Reihe von Aufgaben. Besuchen Sie, wenn Sie Hilfe bei der Auswahl des richtigen Modells für Ihre Anwendung wünschen.
- Humaneval.jl - Die Julia -Version von OpenAI/Human -Eval. Es schreibt die ursprünglichen Python -Probleme in die Julia -Version um und liefert die Bewertungsergebnisse mit mehreren neuesten LLMs.
Anwendungen/Produkte
Anwendungen und Produkte, die mit Julia Language "funktionieren".
- Github Copilot - Ausgezeichnete Inline -Vorschläge mit Hilfe von OpenAI -Modellen. Es funktioniert sehr gut mit Julia Language für sich wiederholende Aufgaben jeweils, aber größere Code -Stücke sind selten korrekt.
- Codium.AI - Großartige IDE- oder VSCODE -Plugin für die Codeanalyse, den Vorschlag und die Erzeugung von Testsuiten. Obwohl die Tests eher im Stil des Pytest als im idiomatischen Julia geschrieben sind. Es hat eine freie Stufe.
- RePLIT - RePlits Reply wird von einem internen Modell angetrieben, das die Julia -Sprache unterstützt.
- Codeium - Kostenlose Alternative zu Github Copilot mit Erweiterungen für die meisten Redakteure.
- Cursor - Alternative IDE basierend auf VSCODE mit AI -betriebener Code -Abschluss und Vorschlägen. Es funktioniert sehr gut mit Julia Language.
Julia-verbundene Anwendungen und Produkte unter Verwendung von LLMs
- Juliahub Askai - Askai ist eine Juliahub -Anwendung (Abrufer Augmented Generation), mit der Benutzer Fragen zur Julia -Sprache und ihres Ökosystems stellen können. Es ist kostenlos, aber Sie müssen in Juliahub angemeldet werden, um es zu verwenden.
- Genie UI Assistant - Genie UI Assistent ist ein GPT -4 -Börsener -UI -Builder, der Genie.jls Nutzern hilft, UIS schneller mit natürlicher Sprache zu erstellen.
- COMIND - Ein soziales Netzwerk, eine Messaging und ein LLM -Schnittstellen in Julia.
Wartezimmer
Neue Projekte, die noch darauf warten, sich zu beweisen und genügend Sterne zu sammeln.
- FlashRank.jl - Schnelles und lokales Dokumentranking mit Modellen, die auf jedem Computer ausgeführt werden können (CPU -basiert). Basierend auf Pythons FlashRank.
- Semanticcaches.jl - Seltsamteres Caching für Genai -Anwendungen mit einem winzigen Einbettungsmodell - Reduktionslatenz, eine Anfrage jeweils.
- Spehulak.jl - Genai Observability Platform zum Debuggen Ihrer LLM -Anrufe. Voll integriert in die AufregungsTools.jl.
Unveröffentlicht, experimentell, aber funktional:
- Milvus.jl - Eine minimale und inoffizielle Implementierung des Milvus Vectordb -Kunden für Julia.
Archivierte Projekte
- GPTCodingTools.jl - Tool für die Codegenerierung für Julia -Sprache mit nützlichen Schablonen und Selbstheilungsfunktionen (ALA OpenAI -Code -Interpreter). Es funktioniert, aber die Entwicklung wurde aufgegeben. (Haftungsausschluss: Ich bin der Autor dieses Pakets.)
Tutorials/Lernen
- Tutorial für die Verwendung von LLMs mit Transformers.jl - Ein kurzes Tutorial zur Verwendung von Transformers.jl zum Zugriff auf LLMs von HuggingFace -Hub.
- Erstellen eines Lag -Chatbots über DataFrames.jl -Dokumentation - Handbuch - eine praktische Anleitung zum Erstellen eines Lag -Chatbots über DataFrames.jl -Dokumentation mit nur minimalen Abhängigkeiten.
- Genai Mini-Tasks: Daten extrahieren aus (.*)? Suchen Sie nicht weiter! - Ein Tutorial zur strukturierten Datenextraktion. Ein Teil einer größeren Reihe von Tutorials für kleine Aufgaben, die mit Genai ausgeführt werden können.
- Tiny Binary Rag - ein ausgezeichnetes Tiefe bei semantischer Suche (das "R" im Lappen). Es zeigt, dass Sie mit 100 Zeilen von Julia 15 m Stücke (~ Größe von Wikipedia) in <20 ms durchsuchen können.
Bemerkenswerte Erwähnungen
Einige der folgenden Projekte sind nicht unbedingt juliaspezifische, aber bemerkenswerte Erwähnungen im generativen KI-Raum und interessant für Julia-Entwickler.
Lokale Bereitstellungen
- Ollama - Die beste Option für diejenigen, die ein großes Sprachmodell lokal hosten möchten. Starten Sie einfach den Server und senden Sie die Anforderungen an http.jl.
- LM Studio - Eine Desktop -App zum Hosting und Interaktion mit LLMs lokal. Es ist eine großartige Option für diejenigen, die LLMs ohne Codierung verwenden möchten. Es ist kostenlos für den persönlichen Gebrauch .
Generative AI - Vorgängergeneration
- Generativemodels.jl - Nützliche Bibliothek, um traditionellere generative Modelle wie Vaes zu trainieren. Es ist auf Flux.jl. gebaut.
### Nützliche Dienstprogramme
- Stipple.jl - zum Aufbau interaktiver Datenanwendungen in reinem Julia (Teil des Genie.jl -Ökosystems). Hervorragend zum Aufbau von webbasierten Schnittstellen für Genai-Anwendungen.
- Taro.jl - Mächtiger Parser für verschiedene Arten von Dokumenten (Interop zu Java). Sehr nützlich für den Aufbau von RAG-Anwendungen (Abrufgeneration).
Muss Python-Projekte
Python befindet sich am Vordergrund der generativen AI -Revolution. Glücklicherweise haben wir Pythoncall.jl, mit denen wir alle folgenden Python -Pakete problemlos anrufen können.
- Suggingface -Transformatoren - die beliebteste Bibliothek für den Zugriff auf LLMs und andere Modelle. Es kann hauptsächlich über Transformers.jl verwendet werden (siehe oben).
- Langchain - Die beste Option zum Aufbau von Anwendungen auf LLMs (z. B. Ketten, Agenten). Es verfügt über viele Adapter für gemeinsame Modelle, Datenbanken und andere Dienste.
- Lama -Index - ähnlich wie Langchain, aber mit Schwerpunkt auf datenzentrierten Anwendungen wie Rag.
- Ausbilder - Einfacher, aber leistungsstärkerer strukturierter Extraktionsgerüst auf der OpenAI -API. Ausgezeichnet, um die Kraft der Funktion zu verstehen, die API zusammen mit Pydantic aufruft.
- MARVIN - Starke Bausteine, um schnell KI -Anwendungen zu erstellen und sie über eine produktionsbereite API zu enthüllen.
- Open Interpreter - Lassen Sie LLMs Code auf Ihrem Computer ausführen (z. B. Python, JavaScript, Shell und mehr). Eine lokale Open-Source-Alternative zu OpenAI-Code-Interpreter.
Andere großartige Listen
- Awesome generative KI - großartige Liste für alles generative KI. Eine Inspiration für diese Liste!