- 新しいAPIである llama.cpp に文法ベースのサンプリングが追加され、生成を誘導および制約する取り組みを扱った記事です。
- llama API は、文法規則に基づくサンプリングを可能にする、文脈自由文法を表すデータ構造を受け取ります。
- 文法サンプリングのコードは非決定性プッシュダウンオートマトンをモデル化しており、パース状態のために複数のスタックを維持します。
- 記事では、チェス、算術、JSON、日本語など、さまざまなシナリオ向けの文法 API 使用例が示されています。
- 文法を状態遷移テンソルにコンパイルして GPU 上で実行するなど、潜在的な最適化にも言及されています。
- コントリビューターたちは、文法ファイル対応の追加、文法パーサーの改善、トークン評価の最適化について議論しています。
- この貢献の有用性が強調されており、サンプリング API を別モジュールとして分離する提案があります。
- lmql.ai や jsonformer など、文法ベース生成に類似のアプローチを使う他のプロジェクトにも触れられています。
- 文法内で完全なトークンを参照することや、使いやすさ向上のために llama.cpp API にパーサーを含める提案があります。
- コントリビューターたちはコードをレビューしてフィードバックを提供し、潜在的な改善点を議論しながら、この機能に関する経験を共有しています。
- あるソフトウェアエンジニアが文法サンプリング関連のプロジェクトに参加しており、ARM64+CUDA で問題に直面しています。
- 編集者は、その問題がツールチェーンのパッケージ組み合わせに関連している可能性を示唆し、支援を申し出ています。
- LocalAI 関数を追加するためのプルリクエストがあり、プロジェクトでより標準的な BNF 構文を使う提案があります。
- 文法違反は最悪の結果と見なされており、今後の検討事項としてバックトラッキングが提案されています。
- EBNF の実装と、従うべき形式についての議論が進行中です。
- 最新の更新では、サンプリングは完全なトークン一致に制限され、不適切に分割されるトークンを処理するためのさらなる改善が提案されています。
- プロジェクトへの変更は承認されてマージ準備が整っており、編集者は更新後のプロジェクトを試すことを楽しみにしています。
- 他プロジェクトで取り組まれている類似の問題にも触れられており、語彙トークン分布の事前計算が提案されています。
- あるソフトウェアエンジニアはそのアプローチに関心を示し、意見を共有する意向を示しています。
- GitHub 上での議論は、複数の参加者とともに続いています.
1件のコメント
Hacker Newsの意見