このキュレーションリストは、Large Language Model (LLM)を使ってJSONやその他の構造化出力を生成することに関連するリソースに焦点を当てています。
ライブラリ、モデル、ノートブックなど、関数コール、ツール、CFGなどを使ってLLMを使ってJSONを生成するためのリソースのリスト。
ディレクトリ
命名法
JSONの生成にはさまざまな呼び方があるが、基本的に意味は同じである:
- 構造化出力LLMを使用して、JSON、XML、YAMLなど、特定の技術(関数呼び出し、ブートストラップ生成など)に関係なく、構造化された出力を生成します。
- 関数呼び出しLLMは実際に関数を呼び出すのではなく、JSONメッセージによって呼び出しの意図を示すだけです。
- JSONモードLLMが有効なJSONを生成しなければならないことを指定する。ベンダーによっては、スキーマが指定されたりされなかったりし、LLMが予期しないスキーマを生成することがある。
- ツール使用: LLMに画像生成、ウェブ検索、"ファンクションコール "などのツールを提供します。APIリクエストのファンクションコール引数は、現在「ツール」と呼ばれています。
- プライミングLLMがテキストを生成するための特定の仕様に従うようにする。 文脈に依存しない文法.
- GPTオペレーションChatGPTは指定された OpenAPI仕様 を使用して、APIサーバー内のエンドポイントとパラメータを使用して操作(つまりAPIコール)を呼び出すことができます。ファンクションコール」と呼ばれる機能とは異なり、この機能はAPIサーバー上でホストされている関数を呼び出します。
上記の用語はそれぞれ意味が違うかもしれないので、このリストを「厳選LLM JSON」と名付けた。
ホスティングモデル
プロバイダー | モデリング | リンク |
---|---|---|
アンソロピック | claude-3-opus-20240229claude-3-sonnet-20240229claude-3-haiku-20240307 | APIドキュメント値段を決める |
エニースケール | ミクストラル-7B-インストラクター-v0.1ミクストラル-8x7B-インストラクター-v0.1 | 関数呼び出しJSONモード値段を決めるお知らせ(2023年) |
アジュール | gpt-4gpt-4-turbogpt-35-turbomistral-large-latestmistral-large-2402 | 関数呼び出しOpenAIの価格ミストラル価格 |
コヒーレ | Command-RCommand-R+ | 関数呼び出し値段を決めるコマンド-R (2024-03-11)コマンド-R+ (2024-04-04) |
花火.ai | 消火機能-v1 | 関数呼び出しJSONモード文法モデル値段を決める発表(2023-12-20) |
グーグル インターネット企業 | ジェミニ-1.0-プロ | 関数呼び出し値段を決める |
グロック | llama2-70bmixtral-8x7bgemma-7b-it | 関数呼び出し値段を決める |
ハグする顔 TGI | 複数のオープンソースモデル | 文法、JSONパターン、関数呼び出しとツール現地で利用無料または定言的もしかしたらサーバーレス エンドポイントはサービスを提供する。 |
ミストラル | ミストラル-ラージ-最新 | 関数呼び出し値段を決める |
オープンAI | gpt-4gpt-4-turbogpt-35-turbo | 関数呼び出しJSONモード値段を決める発表 (2023-06-13) |
リサナ | 反転-sm | APIドキュメント値段を決める発表 (2024-03-18) |
一緒に AI | ミストラル-8x7B-インストラクター-v0.1ミストラル-7B-インストラクター-v0.1コードラマ-34b-インストラクター | 関数呼び出しJSONモード値段を決める発表 2024-01-31 |
並列関数呼び出し
以下は、複数の並列関数呼び出しをサポートするホストAPIモデルのリストである。これらの呼び出しには、複数の都市の天気をチェックすることや、最初にホテルの場所を見つけ、その場所の天気をチェックすることが含まれる。
- 人間的
- claude-3-opus-20240229
- claude-3-sonnet-20240229
- claude-3-haiku-20240307
- アズール/オープンナイ
- gpt-4-turbo-プレビュー
- gpt-4-1106-プレビュー
- プレビュー
- GPT-3.5-ターボ-1106
- gpt-3.5-turbo-0125
- コヒーレ
- コマンドr
- together_ai
- ミクストラル-8x7B-インストラクター-v0.1
- ミストラル-7B-インストラクター-v0.1
- コードラマ-34b-インストラクター
ローカルモデル
ミストラル 7B インストラクター v0.3 (2024-05-22, Apache 2.0) は Mistral のコマンドを微調整したもので、関数呼び出しのサポートを追加しています。
C4AIコマンド R+ (2024-03-20, CC-BY-NC, Cohere)は、10言語での推論、要約、質問応答のために最適化された高度な検索拡張生成(RAG)とツール使用機能を持つ104Bパラメータの多言語モデルである。使用効率を向上させるために定量化がサポートされ、複雑なタスク実行における独自のマルチステップツール統合が実証されている。
エルメス2プロ - ミストラル7B (2024-03-13, Nous Research) は、関数コール、JSON構造化出力、汎用タスクに特化した7Bパラメトリックモデルです。更新されたOpenHermes 2.5データセットと新しい関数呼び出しデータセットに基づき、特別なシステムキューとマルチラウンド構造を使用して学習。関数呼び出しとJSONモデルの評価において、それぞれ91%と84%の精度を達成。
ゴリラ OpenFunctions v2 (2024-02-27, Apache 2.0 Licence. Charlie Cheng-Jie Ji et al.) JSONスキーマオブジェクトに基づく関数の解釈と実行、複数言語のサポート、機能的関連性の検出機能。
ネクサスレイヴン-V2 (2023-12-05、Nexusflow)は、ゼロサンプル関数呼び出しにおいてGPT-4を最大7%上回る13Bモデルであり、ソフトウェアツールの効率的な利用を可能にする。CodeLlama-13B-instructをベースとしたさらなる命令の微調整。
機能 (2023-08-04, ミートカイ) JSONスキーマオブジェクトの解釈と関数の実行に基づき、様々な計算ニーズと呼び出しタイプをサポートします。OpenAI-python および llama-cpp-python と互換性があり、JSON 生成タスクにおける関数呼び出しの効率的な実行が可能です。
ハグする顔 TGI というのも複数のローカルモデルJSON出力と関数呼び出しのサポートが有効になりました。
Pythonライブラリ
DSPy (MIT)は、言語モデル(LM)のヒントと重みをアルゴリズム的に最適化するためのフレームワークです。タイプ予測因子とシグネチャーこれは ピダンティック 入力と出力に型制約を課すことで、文字列ベースのフィールドを改善。
ファズタイプ (MIT)はPydanticを拡張し、アノテーションタイプの自動修正を提供することで、データの標準化を強化し、電子メール、日付、カスタムエンティティなどの複雑なタイプを扱えるようにした。
ガイダンス (Apache-2.0)は、制約生成をサポートし、Pythonのロジックとラージ言語モデル(LLM)の呼び出しを組み合わせ、関数の再利用と外部ツールの呼び出しをサポートし、より高速な生成のためにヒントを最適化します。
講師 (MIT)は、関数呼び出し、ツール呼び出し、制約付きサンプリングパターンを使って、LLMの構造化データ生成を簡素化する。検証はPydanticに基づいており、複数のLLMをサポートしています。
ラングチェーン (MIT)は、リンクポート、他のツールとの統合、アプリケーション用のチェーンを提供する。構造化されたアウトプットの連鎖とクロスモデル関数呼び出しサポートする。
LiteLLM (MIT)100以上のLLMをOpenAIフォーマットで簡単に呼び出すことができる。関数呼び出し以下は、ツール・コールのJSONモードとJSONモードの例である。
ラマインデックス (MIT)は、さまざまな抽象化レベルを提供する。構造化出力モジュールテキスト補完エンドポイント用の出力パーサー、プロンプトを構造化出力にマッピングするための出力パーサー、プロンプトを構造化出力にマッピングするための出力パーサー、プロンプトを構造化出力にマッピングするための出力パーサーを含む。 パイダンティック・プログラムパイドランティック・プログラムは、特定のタイプの出力のためにあらかじめ定義されたプログラムである。
マーヴィン (Apache-2.0)は、エンティティ抽出やマルチモーダルサポートなどの自己文書化ツールを備えた、信頼性の高い自然言語インターフェースを構築するための軽量なツールキットです。
概要 (Apache-2.0)様々なモデル、Jinjaテンプレート、正規表現パターン、JSONパターン、Pydanticモデル、文脈に依存しない文法をサポートして構造化テキストを生成します。
ピダンティック (MIT)は、データモデル、検証、JSONスキーマ生成、シームレスな構文解析とシリアライゼーションを定義することで、データ構造とJSONの使用を簡素化する。
SGLang (MPL-2.0)は、JSONパターンを正規表現やPydanticモデルを使って指定し、制約付きのデコードを可能にします。その高性能なランタイムは、JSONデコードを高速化します。
シンコード (MIT)は、大規模言語モデル(LLM)の文法ガイド付き生成のためのフレームワークです。Python、Go、Java、JSON、YAMLなどの文脈に依存しない文法(CFG)をサポートしています。
ミラスコープ (MIT)は、構造化抽出をサポートし、直感的なPython APIを提供するLLMツールキットである。
マグネティック (MIT)Pythonで3行のコードでLLMを呼び出す。Pydanticによって提供される@promptデコレーターを使って、構造化された出力を返すLLM関数を作るだけだ。
フォーマトロン (Formatronは様々なモデル推論ライブラリとシームレスに統合されている。
トランスフォーマー (MIT)は、EBNFインターフェースを介してHugging Face Transformersに文脈自由文法(CFG)サポートを拡張し、Transformersコードへの最小限の変更とJSONパターンとJSONモードのサポートで構文制約付き生成を実装する。
ブログ記事
構文構造の生成速度は? (2024-04-12, .txt Engineering)は、文法的に正しいテキストを生成するための、ほぼゼロコストの方法を示している。C構文では ラマ.cpp
50回まで。
LLM性能向上のための構造化生成:GSM8Kベンチマーク (2024-03-15, .txt Engineering) 8つのモデルで一貫性の強化を示し、「キューの一貫性」と「思考コントロール」の利点を強調。
LoRAX + Outlines: 構造化生成とLoRAによるJSON抽出の改善 (2024-03-03, Predibase Blog) OutlinesとLoRAX v0.8を組み合わせると、構造化生成、微調整、LoRAアダプタにより、抽出精度とパターンの完全性が向上します。
FU、わかりにくいLLMフレームワークのヒントをざっと見てみよう。 (2023-02-14, Hamel Husain) ツールの機能を理解し、その必要性を評価するために、mitmproxyを使ってAPIコールをインターセプトするための実践的なガイドを提供する。複雑さを軽減し、基礎となる LLM と緊密に統合することに重点を置いている。
合体:5倍速いLLM推論 (2024-02-02、.txt Engineering)は、構造化生成を高速化するために「集約」技術を使用することを実証した。これは非構造化生成よりも高速であるが、生成の品質に影響を与える可能性がある。
LLMにパイダンティックが不可欠な理由 (2024-01-19, アダム・アッザム)は、JSONスキーマを介してデータモデルを共有し、非構造化データと構造化データ間の推論を可能にする重要なツールとしてのPydanticの出現について説明した。決定空間を定量化することの重要性が強調され、古いスキーマのバージョンにおけるLLMのオーバーフィッティングの潜在的な問題についても言及された。
関数コールを始める (2024-01-11, Elvis Saravia) LLMを外部ツールやAPIに接続するための関数コールを紹介し、OpenAI APIの使用例を示し、潜在的なアプリケーションを強調した。
ChatGPTの構造化データサポートの限界に挑む (2023-12-21、Max Woolf)は、有料API、JSONスキーマ、Pydanticをフルに活用する方法を探る。 チャットGPT 機能性の方法。アウトプットの質を向上させるテクニックと、構造化データサポートの利点を紹介。
インストラクターを選ぶ理由 (2023-11-18, Jason Liu) は、読みやすいアプローチ、部分抽出や様々な型のサポート、自己修正機構を提供するライブラリの利点を説明している。インストラクターのウェブサイトにある他のリソースを推薦。
構文を使ってllama.cppの出力を制約する (2023-09-06, Ian Maurer) コンテキストに依存しない構文を組み合わせて、llama.cppの出力精度を高める。
OpenAIの関数とPythonライブラリを使ったデータ抽出 (2023-07-09、Simon Willison) OpenAI Pythonライブラリと関数呼び出しによる、単一のAPI呼び出しでの構造化データの抽出を、コード例と、ストリーム制約を扱うための提案とともに示します。
ビデオ
(2024-04-09, Simon Willison)は、datasette-extractプラグインが、構造化されていないテキストや画像からデータを抽出し、GPT-4 TurboのAPIを介してデータベースのテーブルに入力する方法を示しています。
(2024-03-25、Andrej Baranovskij)は、Ollama、Instructor、Instructorを使った関数呼び出しベースのデータ抽出を実演した。 スパロー・エージェント .
(2024-03-18、プロンプト・エンジニア)は、関数呼び出しと構造化JSON出力を得意とする70億のパラメータを持つモデル、Hermes 2 Proを発表した。関数呼び出しで90%、JSONモードで84%の精度を示し、他のモデルを凌駕した。
(2024-02-24, Sophia Yang)は、大規模な言語モデルを外部ツールに接続し、関数の引数を生成し、関数を実行するデモを行った。これは、JSONデータの生成や操作にも拡張できる。
(2024-02-13.マット・ウィリアムズ)は、モデルによって生成された構造化出力が、解析と関数の呼び出しに使用されることを明確にしている。実装を比較し、以下の点を強調する。 オーラマ のアプローチはより簡潔で、一貫性を保つために少数のサンプルチップを使用する。
(2024-02-12.ジェイソン・リュー属ウェイト&バイアス・プログラム)は、構造化されたJSON出力、関数呼び出し、および検証を処理するためにPydanticを使用する方法についての簡潔なコースを提供し、堅牢なパイプラインと効率的なプロダクション統合を構築するためのエッセンスをカバーします。
(2023-10-10.ジェイソン・リュー属AIエンジニア会議)は、構造化キューイングと出力検証におけるPydanticの重要性を論じ、Instructorライブラリを紹介し、信頼性と保守性の高いLLMアプリケーションのための高度なアプリケーションを実演する。
ジュピター・ノートブック
llama-cpp-python と OpenAI Python クライアントを使った関数呼び出し Instructorライブラリを使用したセットアップを含む統合を実演し、気象情報の取得とユーザー詳細の抽出の例を示す。
ミストラル・モデルを使った関数呼び出し 支払トランザクションデータフレームを含む簡単な例を通して、Mistral モデルと外部ツールとの接続を示します。
チャットgpt構造化データ 任せる マックス・ウルフ ChatGPTの関数コールと構造化データサポートをデモし、様々なユースケースとデータ構造をカバーします。
ヒットチャート
バークレー・ファンクション・コール・リーダーボード(BFCL) は、LLMの関数呼び出し能力をテストするための評価フレームワークで、Python、Java、JavaScript、SQL、REST APIなどの言語にわたる2000以上の質問-関数-答えのペアで構成され、単純、複数、並列の関数呼び出し、関数の関連性の検出に重点を置いています。