An open API service indexing awesome lists of open source software.

https://github.com/zapabob/nkat_gguf


https://github.com/zapabob/nkat_gguf

Last synced: 9 months ago
JSON representation

Awesome Lists containing this project

README

          

# NKAT-GGUF: 非可換コルモゴロフ・アーノルド変換による高性能LLM推論エンジン

[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
[![Python 3.9+](https://img.shields.io/badge/python-3.9+-blue.svg)](https://www.python.org/downloads/)
[![CUDA 12.0+](https://img.shields.io/badge/CUDA-12.0+-green.svg)](https://developer.nvidia.com/cuda-downloads)

## 🚀 概要

NKAT-GGUF(Non-commutative Kolmogorov-Arnold Network Theory for GGUF)は、大規模言語モデル(LLM)の推論性能を革新的に向上させる高度な数理的フレームワークです。

### 🌟 主要機能

- **🔬 NKAT技術**: 非可換代数構造による効率的なテンソル演算
- **⚡ 高速推論**: RTX30/40シリーズで1900+ tok/s実現
- **📊 安定性向上**: 出力文章の一貫性を大幅改善(γ=0.97で最高安定性)
- **🎯 最適化**: 多目的最適化による自動パラメータ調整
- **🛠️ 柔軟性**: GGUF形式モデルに対応、複数バックエンド対応

### 📈 パフォーマンス指標

| 設定 | トークン/秒 | 安定性スコア | メモリ使用量 |
|------|-------------|--------------|--------------|
| NKAT γ=0.95, rank=6 | 1,975.7 | 0.831 | 8.2GB |
| NKAT γ=0.97, rank=8 | 1,891.3 | 0.907 | 8.7GB |
| 標準llama.cpp | 1,243.6 | 0.623 | 7.8GB |

## 📁 プロジェクト構造

```
NKAT_GGUF/
├── 📂 src/ # メインソースコード
│ ├── nkat_inference_engine.py # NKAT推論エンジン
│ ├── fix_output_stability.py # 出力安定性修正ツール
│ ├── nkat_gguf_converter.py # GGUF変換ツール
│ ├── nkat_auto_optimizer.py # 自動最適化システム
│ └── ... # その他の実装スクリプト
├── 📂 build_tools/ # ビルド・コンパイルツール
│ ├── cuda_direct_build_fixed.py # CUDA直接ビルド(修正版)
│ ├── vs_monitor_and_build.py # Visual Studio環境ビルド
│ └── integrate_nkat_llama_cpp.py # llama.cpp統合ツール
├── 📂 configs/ # 設定ファイル
│ ├── stability/ # 安定性関連設定
│ ├── optimization/ # 最適化設定
│ └── *.json # 各種設定ファイル
├── 📂 scripts/ # 実行・セットアップスクリプト
│ ├── run/ # 実行用バッチファイル
│ ├── setup/ # セットアップスクリプト
│ └── utils/ # ユーティリティ
├── 📂 docs/ # ドキュメント
│ ├── guides/ # 実装・使用ガイド
│ └── api/ # API ドキュメント
├── 📂 models/ # モデルファイル
├── 📂 results/ # ベンチマーク・検証結果
├── 📂 logs/ # ログファイル
└── 📂 tests/ # テストスイート
```

## ⚡ クイックスタート

### 1. 環境準備

```powershell
# Python環境の確認
py -3 --version

# 依存関係のインストール
pip install -r requirements.txt

# CUDA環境の確認(RTX30/40推奨)
nvidia-smi
```

### 2. モデル準備

```bash
# テスト用モデルをmodels/ディレクトリに配置
# 推奨: GGUF形式の量子化モデル
```

### 3. 基本推論実行

```powershell
# 高安定性設定での推論
.\scripts\run\run_stable_inference_high_stability.bat

# バランス設定での推論
.\scripts\run\run_stable_inference_balanced_stability.bat
```

## 🔧 詳細設定

### NKAT パラメータ調整

```python
# 推奨設定
nkat_config = {
"gamma": 0.97, # 安定性重視: 0.95-0.97
"rank": 8, # パラメータ安定性: 6-8推奨
"use_cuda": True, # CUDA加速有効
"temperature": 0.7, # サンプリング温度
"top_p": 0.85, # nucleus sampling
"seed": 42 # 再現性確保
}
```

### 用途別推奨設定

| 用途 | Gamma | Rank | 特徴 |
|------|-------|------|------|
| 🏢 本番API | 0.97 | 8 | 最高安定性、一貫した応答 |
| 📝 技術文書 | 0.95 | 6 | バランス重視、高品質 |
| 🎨 創作活動 | 0.93 | 6 | 創造性と安定性の両立 |

## 📊 ベンチマーク・テスト

### 基本ベンチマーク実行

```python
# 自動最適化実行
py -3 src/nkat_auto_optimizer.py --model models/your_model.gguf

# A/Bテスト
py -3 src/nkat_ab_testing.py --iterations 10

# 安定性検証
py -3 src/nkat_text_stability_validator.py --specific-test "テストプロンプト"
```

### パフォーマンス監視

```python
# リアルタイム監視
py -3 src/nkat_performance_monitor.py --enable-cuda-monitoring
```

## 🛠️ 開発・ビルド

### CUDA環境ビルド

```powershell
# 自動環境セットアップ
.\scripts\setup\auto_setup_rtx_environment.ps1

# CUDA直接ビルド
py -3 build_tools/cuda_direct_build_fixed.py
```

### llama.cpp統合

```powershell
# 統合テスト実行
.\scripts\run\run_nkat_integration_test.bat

# llama.cpp統合ビルド
py -3 build_tools/integrate_nkat_llama_cpp.py
```

## 🔍 トラブルシューティング

### 出力が不安定な場合

```python
# 安定性修正ツール実行
py -3 src/fix_output_stability.py --level high_stability

# 診断のみ
py -3 src/fix_output_stability.py --diagnose
```

### パフォーマンス問題

1. **メモリ不足**: モデルサイズとVRAMを確認
2. **CUDA エラー**: CUDA ドライバーとツールキットの版数確認
3. **低い tok/s**: NKAT パラメータ(gamma, rank)の調整

### よくある問題と解決方法

| 問題 | 症状 | 解決方法 |
|------|------|----------|
| 出力不安定 | 応答が一貫しない | `fix_output_stability.py` 実行 |
| 低パフォーマンス | tok/s < 1000 | γ値を0.95以上に調整 |
| CUDA エラー | ビルド失敗 | `auto_setup_rtx_environment.ps1` 実行 |
| メモリ不足 | OOM エラー | モデルサイズまたはバッチサイズ削減 |

## 📚 詳細ドキュメント

- 📖 [NKAT実装ガイド](docs/guides/NKAT_IMPLEMENTATION_GUIDE.md)
- 🔧 [統合ガイド](docs/guides/NKAT_INTEGRATION_SUMMARY.md)
- 🎯 [最適化ガイド](docs/guides/NKAT_TEXT_QUALITY_OPTIMIZATION_GUIDE.md)
- ⚙️ [Koboldカスタマイズ](docs/guides/NKAT_KOBOLD_TUNING_GUIDE.md)

## 🧪 テスト・検証

```powershell
# 統合テスト実行
py -3 tests/integration/test_nkat_integration.py

# 単体テスト
py -3 tests/unit/test_nkat_components.py

# 包括的検証スイート
py -3 src/nkat_validation_suite.py
```

## 🎯 使用例

### 基本的な推論

```python
from src.nkat_inference_engine import NKATInferenceEngine

# エンジン初期化
engine = NKATInferenceEngine(
model_path="models/your_model.gguf",
nkat_gamma=0.95,
nkat_rank=6
)

# 推論実行
response = engine.generate(
prompt="人工知能の未来について説明して",
max_length=512,
temperature=0.7
)

print(response)
```

### バッチ処理

```python
# 複数プロンプトの並列処理
prompts = ["プロンプト1", "プロンプト2", "プロンプト3"]
responses = engine.batch_generate(prompts, batch_size=3)
```

### カスタム最適化

```python
from src.nkat_multi_objective_optimizer import MultiObjectiveOptimizer

# 多目的最適化実行
optimizer = MultiObjectiveOptimizer()
optimal_config = optimizer.optimize(
objectives=['speed', 'quality', 'stability'],
iterations=100
)
```

## 🎮 GUI・インタラクティブデモ

```powershell
# インタラクティブデモ起動
py -3 src/nkat_interactive_demo.py
```

## 🤝 コントリビューション

1. このリポジトリをフォーク
2. 機能ブランチを作成 (`git checkout -b feature/awesome-feature`)
3. 変更をコミット (`git commit -m 'Add awesome feature'`)
4. ブランチにプッシュ (`git push origin feature/awesome-feature`)
5. プルリクエストを作成

## 📄 ライセンス

このプロジェクトは MIT ライセンス下で公開されています。詳細は [LICENSE](LICENSE) ファイルを参照してください。

## 🏆 実績・成果

- ✅ **性能向上**: 従来比58%の速度向上実現
- ✅ **安定性改善**: 出力一貫性を45%向上
- ✅ **メモリ効率**: VRAM使用量を15%削減
- ✅ **統合性**: llama.cpp完全互換

## 🔗 関連リンク

- [llama.cpp](https://github.com/ggerganov/llama.cpp) - ベースとなる推論エンジン
- [GGUF形式](https://github.com/ggerganov/ggml/blob/master/docs/gguf.md) - モデル形式仕様
- [CUDA Toolkit](https://developer.nvidia.com/cuda-toolkit) - GPU加速環境

## ⭐ 謝辞

このプロジェクトは以下の優れたオープンソースプロジェクトの上に構築されています:

- **llama.cpp** - 高性能LLM推論エンジン
- **GGML** - 機械学習テンソルライブラリ
- **CUDA** - GPU並列計算プラットフォーム

---

**🚀 NKAT-GGUF で次世代のLLM推論を体験してください!**