File size: 7,982 Bytes
9b6340f |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 |
# NullAI 機能解説
## システム概要
NullAIは、専門家検証機能付きのマルチドメイン知識推論システムです。
HuggingFace Transformersベースで、外部API依存なしに動作します。
---
## 1. 推論システム (Inference System)
### 1.1 ModelRouter (`null_ai/model_router.py`)
**機能**: ドメインに応じた最適なモデルの自動選択と推論実行
```python
# 使用例
router = ModelRouter(config_manager)
result = await router.infer(
prompt="心筋梗塞の初期症状は?",
domain_id="medical",
save_to_memory=True
)
```
**効果**:
- 55以上のドメインに対応した専門的な回答
- 自動モデル選択による最適化
- 推論結果の自動メモリ保存
### 1.2 HuggingFace Integration
**対応プロバイダー**:
| プロバイダー | 説明 | 推奨用途 |
|-------------|------|---------|
| `huggingface` | ローカルTransformers | 高品質推論 |
| `huggingface_api` | Inference API | 低リソース環境 |
| `gguf` | llama.cpp互換 | 高速CPU推論 |
### 1.3 ストリーミング生成
**機能**: トークン単位でのリアルタイム配信
```python
async for chunk in service.stream_tokens(session_id, question, domain_id):
if chunk["type"] == "token":
print(chunk["content"], end="", flush=True)
```
---
## 2. 知識ベースシステム (Knowledge Base)
### 2.1 IATH形式データベース
**機能**: 高圧縮・高速アクセスの独自バイナリ形式
```
┌─────────────────────────────────────┐
│ IATH Header (Magic + Version) │
├─────────────────────────────────────┤
│ Metadata (JSON, zstd compressed) │
├─────────────────────────────────────┤
│ Tiles Index │
├─────────────────────────────────────┤
│ Knowledge Tiles (zstd compressed) │
└─────────────────────────────────────┘
```
**効果**:
- 70-90%の圧縮率
- O(1)のタイルアクセス
- 増分更新サポート
### 2.2 Knowledge Tile
**構造**:
```json
{
"tile_id": "med_001",
"domain_id": "medical",
"topic": "心筋梗塞の初期症状",
"content": "...",
"spatial_coords": [0.7, 0.3, 0.85],
"confidence_score": 0.95,
"verification_mark": {
"type": "expert",
"expert_orcid": "0000-0002-1234-5678"
}
}
```
---
## 3. 検証マークシステム (Verification System)
### 3.1 検証レベル
| レベル | 条件 | 信頼度 |
|--------|------|--------|
| `multi_expert` | 2人以上の専門家が検証 | 最高 |
| `expert` | ORCID認証済み専門家が検証 | 高 |
| `community` | 認証ユーザーがレビュー | 中 |
| `none` | 未検証(ゲスト編集含む) | 低 |
### 3.2 ORCID認証
**フロー**:
```
ユーザー → ORCID OAuth → 認証コード → JWTトークン → 専門家ステータス
```
**効果**:
- 学術的な信頼性の担保
- 専門家の所属機関・業績の確認可能
- 改ざん防止
---
## 4. 判断システム (Judgment System)
### 4.1 α-Lobe(生成ローブ)
**機能**: 質問に対する初期回答の生成
```python
class JudgeAlphaLobe:
def generate_initial_response(self, question, context):
# 空間座標の計算
coords = self.calculate_spatial_coordinates(question)
# 関連知識の検索
relevant_tiles = self.search_knowledge_base(coords)
# 回答生成
return self.generate_response(question, relevant_tiles)
```
### 4.2 β-Lobe(検証ローブ)
**機能**: 生成された回答の品質検証
```python
class JudgeBetaLobe:
def verify_response(self, response, question, context):
# 事実性チェック
factual_score = self.check_factuality(response)
# 一貫性チェック
consistency_score = self.check_consistency(response, context)
# 信頼度計算
confidence = self.calculate_confidence(factual_score, consistency_score)
return {"verified": confidence > 0.7, "confidence": confidence}
```
### 4.3 Correction Flow
**機能**: β-Lobeが不合格とした場合の再生成
```
α-Lobe生成 → β-Lobe検証 → 不合格 → 修正プロンプト → 再生成 → 再検証
```
---
## 5. 記憶システム (Memory System)
### 5.1 DendriticMemorySpace
**機能**: 円柱座標系での知識表現
```
r (半径): 抽象度 (0=具体的, 1=抽象的)
θ (角度): ドメイン (0-2π)
z (高さ): 時間/重要度
```
**効果**:
- 意味的に近い知識の効率的検索
- ドメイン横断的な関連付け
- 時系列での知識管理
### 5.2 自動メモリ保存
**条件**:
- 信頼度が閾値(デフォルト0.6)以上
- 検証済みコンテンツ
- 新規または更新された知識
---
## 6. 継続学習システム (NurseLog System)
### 6.1 倒木更新(世代交代)
**コンセプト**: 森林の倒木が次世代の栄養となるように、古いモデルの知識を新モデルに継承
```python
class NurseLogSystem:
def prepare_succession(self):
# 1. 現行モデルの知識を抽出
knowledge = self.extract_model_knowledge()
# 2. 継承データセットの作成
dataset = self.create_succession_dataset(knowledge)
# 3. 新モデルのファインチューニング
new_model = self.finetune_apprentice(dataset)
# 4. 世代交代
self.switch_generation(new_model)
```
### 6.2 Dream Mode(夢モード)
**機能**: 低負荷時に知識の整理・統合を実行
```python
# 50会話ごとに自動実行
if conversation_count % 50 == 0:
await nurse_log_system.enter_dream_mode()
```
---
## 7. API エンドポイント
### 7.1 推論API
```
POST /api/questions/
WebSocket /api/questions/ws/{session_id}
```
### 7.2 知識ベースAPI
```
GET /api/knowledge/ # タイル一覧
GET /api/knowledge/{tile_id} # タイル詳細
PUT /api/knowledge/{tile_id} # 編集(検証マーク付与)
GET /api/knowledge/stats/summary # 統計
```
### 7.3 認証API
```
POST /api/auth/token # ログイン
POST /api/auth/signup # 登録
GET /api/auth/orcid/authorize # ORCID認証開始
GET /api/auth/orcid/callback # ORCID認証コールバック
```
### 7.4 システムAPI
```
GET /api/system/status # システム状態
GET /api/system/health # ヘルスチェック
GET /api/system/providers # 対応プロバイダー
```
---
## 8. ドメイン一覧(55ドメイン)
### 医療・健康 (8)
medical, cardiology, neurology, oncology, pediatrics, psychiatry, pharmacology, nutrition
### 法律 (8)
legal, labor_law, corporate_law, intellectual_property, contract_law, tax_law, family_law, criminal_law
### 経済・金融 (6)
economics, finance, accounting, banking, cryptocurrency, real_estate
### テクノロジー (8)
programming, web_development, machine_learning, cybersecurity, cloud_computing, devops, databases, mobile_development
### 科学 (6)
physics, chemistry, biology, mathematics, environmental_science, astronomy
### ビジネス (6)
business_strategy, marketing, human_resources, project_management, entrepreneurship, supply_chain
### 教育 (4)
education, language_learning, history, philosophy
### 工学 (6)
mechanical_engineering, electrical_engineering, civil_engineering, architecture, manufacturing, robotics
### ライフスタイル (5)
cooking, fitness, travel, gardening, diy
### 芸術 (5)
music, visual_arts, photography, writing, game_development
### 一般 (1)
general
|