素晴らしい生成AIは、ジュリアプログラミング言語に出会います
生成AIプロジェクトとリソースの包括的なガイドは、ジュリアに関連付けられています。
ジュリアは、技術コンピューティングのための高レベルの高性能ダイナミック言語です。
生成AIには、大規模な機械学習を活用して新しいコンテンツ(多くのモダリティ)を生成するアルゴリズムとモデルが含まれ、自動化、理解、解析、抽出など、単なるコンテンツ作成を超えた幅広いアプリケーションに適応します。
コンテンツ
- 生成AIプロジェクトとジュリア
- モデル
- API SDK
- モデルプロバイダー
- クラウドサービスプロバイダー
- ベクトルデータベース
- ベクトルインデックスサポートを備えた汎用DBMS
- パッケージ
- JLLパッケージ
- ベンチマーク/比較
- アプリケーション/製品
- チュートリアル/学習
- 注目に値する言及
- 必見のPythonプロジェクト
- 他の素晴らしいリスト
生成AIプロジェクトとジュリア
- Juliagenai組織 - Github組織であり、Juliaの開発者と研究者のコミュニティが生成AIに取り組んでいます。
モデル
ジュリアに大規模な言語モデル(およびその他のモダリティ)を構築、訓練、展開します。
- Flux.jl -Fluxは、ジュリアの機械学習ライブラリであり、柔軟性があり、複雑なモデルの構築を可能にします。ただし、執筆時点では、フラックスで実装および訓練された大規模な言語モデル(LLM)を知りません。
- Transformers.jl-Transformers.jlは、事前に訓練されたトランスモデルを使用するための高レベルAPIを提供するJuliaパッケージです。また、
@hgf_strマクロ文字列でフェイスハブを抱きしめるモデルをダウンロードすることもできます。 - pickle.jl-ジュリアにpytorchのウェイトをロードするための優れたパッケージ(自分でモデルを実装したい場合)。
- bytepairencoding.jl-バイトペアエンコーディング(BPE)アルゴリズムの純粋なジュリア実装。 Transformers.jlがテキストをトークン化するために使用しています。
- llama2.jl -llama2.jlは、llama2.cに基づいたLlama2ベースの言語モデルの推論とトレーニングのための簡単なコードを提供します。 GGUF形式(
q4_K_Sバリアント)で量子化された重みをロードすることをサポートします。その他の同様のプロジェクト:LanguageModels.jl - llama.jl-ローカルで言語モデルを実行するためのC/C ++ライブラリであるllama.cppへのJuliaインターフェイス。幅広いモデルをサポートします。
- whisper.jl -whisper.cppへのジュリアインターフェース、OpenaiのWhisper自動音声認識(ASR)モデルのC/C ++の高性能推論。
API SDK
モデルプロバイダー
公式APIを介して生成AIモデルにアクセスします。
- Openai.jl- Openai APIのコミュニティに維持されたジュリアラッパー。
クラウドサービスプロバイダー
人気のあるクラウドサービスプロバイダーのSDKを介して生成AIモデルにアクセスします。
- GoogleCloud.jl -Googleクラウド用のSDK。頂点AIエンドポイントを有効にするためのオープンPRがあります。
- GoogleGenai.jl- Google Gemini APIの非公式ラッパー。
ベクトルデータベース
- Pinecone.jl -Pinecone.io Vectorデータベース用のSDK。
ベクトルインデックスサポートを備えた汎用DBMS
| 名前 | ジュリアクライアント | 使用例 |
|---|
| ElasticSearch | ElasticSearchClient.jl | gptseachplugin with elasticsearch |
| OpenSearch | ElasticSearchClient.jl | gptseachplugin with opensearch |
| PostgreSQL + PGVector | libpq.jl | ジュリアのPGVectorの例 |
パッケージ
- Replgpt.jl- chatgptインターフェイスをジュリアREPLモードとしてもたらします。
- helpgpt.jl- chatgptを呼び出して、ジュリアコードのエラーを説明します。
- Gengpt3.jl -OpenAI APIをラップするGen.jl生成関数。
- PromptingTools.jl-ジュリアの大規模な言語モデルの日常的なアプリケーションを支援し、次のAPIをラッピングし、テンプレートを介してプロンプトを再利用し、異なるモデルプロバイダー(Openai、Ollamaなど)間の簡単な移行を可能にします。 (免責事項:私はこのパッケージの著者です。)
- llmtextanalysis.jl-大規模な言語モデルを活用して、大規模なドキュメントコレクションでテーマ/概念/スペクトルを明らかに、評価し、ラベル付けします。 (免責事項:私はこのパッケージの著者です。)
- aihelpme.jl-パッケージドキュメント(検索拡張生成)を活用することにより、AIコード支援を強化しました。一般的なジュリアパッケージには事前にパッケージ化されていますが、任意のパッケージには使用できます。
- aihelpui.jl- stipple.jlの上に構築されたaihelpme.jlのWebベースのグラフィカルインターフェイス。
- Protoportal.jl-追加のプロンプトテンプレートと機能を備えたPRONTSTOOLS.JL用のWebベースのグラフィカルインターフェイス(Juliaコードの実行と自動修正、メタプロンプキング、自動批評、スピーチツーテキストエントリ)。 ChatGptに似ていますが、ジュリアに向けられています。
JLLパッケージ
JLLは、非ジュリアプロジェクト(C/C ++など)を簡単にインストールして呼び出すための事前に作成されたライブラリと実行可能ファイルです。多くの場合、それらは慣用的なインターフェイスを備えたジュリアパッケージへの最初のステップです。
- llama_cpp_jll.jl -llama.cpp用のjllパッケージ、量子化されたllama2スタイルモデルに最適なインターフェイス。
ベンチマーク/比較
- Julia LLMリーダーボード - さまざまなタスクにわたるさまざまな大規模な言語モデルのジュリア語生成能力の比較。アプリケーションに適切なモデルを選択するヘルプが必要な場合は、アクセスしてください。
- Humaneval.jl- Openai/Human -EvalのJuliaバージョン。元のPythonの問題をJuliaバージョンに書き換え、いくつかの最新のLLMで評価結果を提供します。
アプリケーション/製品
ジュリア語で「機能する」アプリケーションと製品。
- Github Copilot- Openaiモデルの助けを借りて、優れたインライン提案。 Julia Languageで一度に1行ずつ繰り返しタスクするために非常にうまく機能しますが、より大きなコードチャンクはめったに正しいものではありません。
- CODIUM.AI-テストスイートのコード分析、提案、生成用のグレートIDEまたはVSCODEプラグイン。ただし、テストは慣用的なジュリアではなく、pytestのスタイルで書かれていますが。無料の層があります。
- REPLIT -REPLIT'S REPLは、Julia Languageをサポートする社内モデルを搭載しています。
- Codeium-ほとんどの編集者向けの拡張機能を備えたGithub Copilotに代わる無料。
- カーソル - AIを搭載したコードの完了と提案を備えたVSCODEに基づく代替IDE。ジュリア語で本当にうまく機能します。
LLMSを使用したジュリア関連アプリケーションと製品
- Juliahub Askai -Askaiは、ジュリア語とそのエコシステムについて質問することができるJuliahubのぼろきれ(検索拡張生成)アプリケーションです。無料ですが、それを使用するにはJuliahubにログインする必要があります。
- GINIE UIアシスタント-Genie UIアシスタントは、GPT -4搭載のUIビルダーであり、Genie.JLのユーザーが自然言語を使用してUIをより速く作成します。
- comind-ジュリアに構築されたソーシャルネットワーク、メッセージング、およびLLMインターフェイス。
待合室
まだ自分自身を証明し、十分な星を集めるのを待っている新しいプロジェクト。
- flashrank.jl-任意のコンピューターで実行できるモデル(CPUベース)を使用して、高速およびローカルドキュメントのランキング。 PythonのFlashrankに基づいています。
- SemanticCaches.jl-小さな埋め込みモデルを使用したGenaiアプリケーションのよりスマートなキャッシュ - 一度に1つのリクエストを減らします。
- Spehulak.jl- LLMコールをデバッグするためのGenai Observabilityプラットフォーム。 prospingtools.jlと完全に統合されています。
未リリース、実験的ですが機能的:
- Milvus.jl-ジュリア向けのMilvus Vectordbクライアントの最小限の非公式の実装。
アーカイブプロジェクト
- GPTCODINGTOOLS.JL-有用なプロンプトテンプレートと自己修復機能を備えたジュリア言語用のコード生成ツール(ALA OpenAIコードインタープレーター)。それは機能しますが、開発は放棄されています。 (免責事項:私はこのパッケージの著者です。)
チュートリアル/学習
- Transformers.jlでLLMを使用するためのチュートリアル - 変圧器を使用する方法に関する簡単なチュートリアル。
- dataframes.jlドキュメントを介してragチャットボットを構築する - ハンズオンガイド - 最小限の依存関係のみを使用して、dataframes.jlドキュメントを介してragチャットボットを構築する方法に関する実践的なガイド。
- genaiミニタスク:(。*)からデータを抽出しますか?もう探すことはできません! - 構造化されたデータ抽出に関するチュートリアル。 genaiで行うことができる小さなタスクに関する大規模な一連のチュートリアルの一部。
- 小さなバイナリラグ - セマンティック検索の優れたディープダイブ(ragの「r」)。 100ラインのジュリアで、20ms未満で15mのチャンク(ウィキペディアのサイズ)を検索できることを示しています。
注目に値する言及
以下のプロジェクトの一部は、必ずしもジュリア固有のものではありませんが、生成的なAIスペースでの注目に値する言及であり、ジュリアの開発者にとって興味深い言及です。
ローカル展開
- Ollama-大きな言語モデルをローカルでホストしたい人にとって最良のオプション。サーバーを起動して、http.jlでリクエストを送信するだけです。
- LM Studio- LLMSをローカルでホストし、対話するためのデスクトップアプリ。これは、コーディングなしでLLMSを使用したい人にとっては素晴らしい選択肢です。個人的な使用は無料です。
生成AI-前世代
- GenerativeModels.jl- VAESなどのより伝統的な生成モデルをトレーニングするための便利なライブラリ。 Flux.jlの上に構築されています。
###便利なユーティリティ
- stipple.jl-純粋なジュリア(Genie.jlエコシステムの一部)にインタラクティブデータアプリケーションを構築するため。 Genaiアプリケーション用のWebベースのインターフェイスを構築するのに最適です。
- TARO.JL-さまざまな種類のドキュメント用の強力なパーサー(Javaへの互換)。検索された生成(RAG)アプリケーションを構築するのに非常に役立ちます。
必見のPythonプロジェクト
Pythonは、生成AI革命の最先端にあります。幸いなことに、pythoncall.jlがあり、以下のすべてのPythonパッケージを簡単に呼び出すことができます。
- Huggingface Transformers- LLMやその他のモデルにアクセスするための最も人気のあるライブラリ。主にTransformers.jlを介して使用できます(上記参照)。
- Langchain- LLMSの上にアプリケーションを構築するのに最適なオプション(チェーン、エージェントなど)。一般的なモデル、データベース、その他のサービス用のアダプターがたくさんあります。
- Llama Index -Langchainに似ていますが、Ragなどのデータ中心のアプリケーションに焦点を当てています。
- インストラクター - OpenAI APIの上にあるシンプルで強力な構造化された抽出フレームワーク。 Pydanticと一緒にAPIを呼び出す機能の力を理解するのに最適です。
- Marvin- AIアプリケーションを迅速に構築し、生産対応APIを介してそれらを公開する強力なビルディングブロック。
- 通訳を開く-LLMSがコンピューターでコードを実行させます(たとえば、Python、JavaScript、Shellなど)。 OpenAIコードインタープリターのオープンソースのローカル代替品。
他の素晴らしいリスト
- 素晴らしい生成AI-生成AIのすべてに最適なリスト。このリストのインスピレーション!