Text Generation
Transformers
GGUF
English
phi
knowledge-system
reasoning
expert-verification
multi-domain
zero-hallucination
spatial-memory
knowledge-tiles
phi-4
microsoft
knowledge-tiles-iath
conversational
Eval Results (legacy)
Instructions to use kofdai/nullai-knowledge-system with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use kofdai/nullai-knowledge-system with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="kofdai/nullai-knowledge-system") messages = [ {"role": "user", "content": "Who are you?"}, ] pipe(messages)# Load model directly from transformers import AutoTokenizer, AutoModelForCausalLM tokenizer = AutoTokenizer.from_pretrained("kofdai/nullai-knowledge-system") model = AutoModelForCausalLM.from_pretrained("kofdai/nullai-knowledge-system", device_map="auto") messages = [ {"role": "user", "content": "Who are you?"}, ] inputs = tokenizer.apply_chat_template( messages, add_generation_prompt=True, tokenize=True, return_dict=True, return_tensors="pt", ).to(model.device) outputs = model.generate(**inputs, max_new_tokens=40) print(tokenizer.decode(outputs[0][inputs["input_ids"].shape[-1]:])) - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- llama.cpp
How to use kofdai/nullai-knowledge-system with llama.cpp:
Install (macOS, Linux)
curl -LsSf https://llama.app/install.sh | sh # Start a local OpenAI-compatible server with a web UI: llama serve -hf kofdai/nullai-knowledge-system:Q4_K_M # Run inference directly in the terminal: llama cli -hf kofdai/nullai-knowledge-system:Q4_K_M
Install from WinGet (Windows)
winget install llama.cpp # Start a local OpenAI-compatible server with a web UI: llama serve -hf kofdai/nullai-knowledge-system:Q4_K_M # Run inference directly in the terminal: llama cli -hf kofdai/nullai-knowledge-system:Q4_K_M
Use pre-built binary
# Download pre-built binary from: # https://github.com/ggerganov/llama.cpp/releases # Start a local OpenAI-compatible server with a web UI: ./llama-server -hf kofdai/nullai-knowledge-system:Q4_K_M # Run inference directly in the terminal: ./llama-cli -hf kofdai/nullai-knowledge-system:Q4_K_M
Build from source code
git clone https://github.com/ggerganov/llama.cpp.git cd llama.cpp cmake -B build cmake --build build -j --target llama-server llama-cli # Start a local OpenAI-compatible server with a web UI: ./build/bin/llama-server -hf kofdai/nullai-knowledge-system:Q4_K_M # Run inference directly in the terminal: ./build/bin/llama-cli -hf kofdai/nullai-knowledge-system:Q4_K_M
Use Docker
docker model run hf.co/kofdai/nullai-knowledge-system:Q4_K_M
- LM Studio
- Jan
- vLLM
How to use kofdai/nullai-knowledge-system with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "kofdai/nullai-knowledge-system" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "kofdai/nullai-knowledge-system", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/kofdai/nullai-knowledge-system:Q4_K_M
- SGLang
How to use kofdai/nullai-knowledge-system with SGLang:
Install from pip and serve model
# Install SGLang from pip: pip install sglang # Start the SGLang server: python3 -m sglang.launch_server \ --model-path "kofdai/nullai-knowledge-system" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "kofdai/nullai-knowledge-system", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker images
docker run --gpus all \ --shm-size 32g \ -p 30000:30000 \ -v ~/.cache/huggingface:/root/.cache/huggingface \ --env "HF_TOKEN=<secret>" \ --ipc=host \ lmsysorg/sglang:latest \ python3 -m sglang.launch_server \ --model-path "kofdai/nullai-knowledge-system" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "kofdai/nullai-knowledge-system", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }' - Ollama
How to use kofdai/nullai-knowledge-system with Ollama:
ollama run hf.co/kofdai/nullai-knowledge-system:Q4_K_M
- Unsloth Studio
How to use kofdai/nullai-knowledge-system with Unsloth Studio:
Install Unsloth Studio (macOS, Linux, WSL)
curl -fsSL https://unsloth.ai/install.sh | sh # Run unsloth studio unsloth studio -H 0.0.0.0 -p 8888 # Then open http://localhost:8888 in your browser # Search for kofdai/nullai-knowledge-system to start chatting
Install Unsloth Studio (Windows)
irm https://unsloth.ai/install.ps1 | iex # Run unsloth studio unsloth studio -H 0.0.0.0 -p 8888 # Then open http://localhost:8888 in your browser # Search for kofdai/nullai-knowledge-system to start chatting
Using HuggingFace Spaces for Unsloth
# No setup required # Open https://huggingface.co/spaces/unsloth/studio in your browser # Search for kofdai/nullai-knowledge-system to start chatting
- Docker Model Runner
How to use kofdai/nullai-knowledge-system with Docker Model Runner:
docker model run hf.co/kofdai/nullai-knowledge-system:Q4_K_M
- Lemonade
How to use kofdai/nullai-knowledge-system with Lemonade:
Pull the model
# Download Lemonade from https://lemonade-server.ai/ lemonade pull kofdai/nullai-knowledge-system:Q4_K_M
Run and chat with the model
lemonade run user.nullai-knowledge-system-Q4_K_M
List all available models
lemonade list
- Atomic Chat
| import math | |
| from typing import Dict, Any, List | |
| # 既存のモジュールをインポート | |
| # calculate_granularity は粒度を計算するもので、ドメインに依存しないためそのまま利用 | |
| from certainty_calculation_formula import calculate_granularity | |
| def assign_verification_score(concepts: list, sources: list) -> float: | |
| """検証スコアを割り当てるダミー関数""" | |
| score = 50.0 | |
| if sources: | |
| score += len(sources) * 5.0 | |
| return score | |
| class CoordinateMapper: | |
| """ | |
| LLMの思考プロセス(推論ステップ)を、動的に読み込まれたドメインスキーマに | |
| 基づいてドメイン固有の空間座標に変換する汎用マッパー。 | |
| """ | |
| def __init__(self, domain_schema: Dict[str, Any]): | |
| """ | |
| 特定のドメインスキーマを元にマッパーを初期化します。 | |
| Args: | |
| domain_schema (Dict[str, Any]): 対象ドメインのスキーマ。 | |
| """ | |
| if not domain_schema: | |
| raise ValueError("ドメインスキーマが提供されていません。") | |
| self.schema = domain_schema | |
| self.keyword_map = self.schema.get("keyword_map", {}) | |
| def map_reasoning_to_domain_space(self, reasoning_steps: List[Dict]) -> List[Dict]: | |
| """ | |
| 抽出された推論ステップを、当マッパーに設定されたドメインの空間座標に変換します。 | |
| Args: | |
| reasoning_steps (List[Dict]): reasoning_chain_extractor.pyから得られる推論ステップのリスト。 | |
| Returns: | |
| List[Dict]: 座標情報が付与された辞書のリスト。 | |
| """ | |
| coordinates = [] | |
| full_text = " ".join(step["text"] for step in reasoning_steps) | |
| # 全体のテキストから主要な座標を推定(デフォルト値として使用) | |
| default_coord = [50, 50, 50] | |
| axis_map = {'x': 0, 'y': 1, 'z': 2} | |
| for axis_name, axis_index in axis_map.items(): | |
| axis_keywords = [kw for kw in self.keyword_map if self.keyword_map[kw]['axis'] == axis_name and kw in full_text] | |
| if axis_keywords: | |
| default_coord[axis_index] = self.keyword_map[axis_keywords[0]]['coord'] | |
| for step in reasoning_steps: | |
| coord = list(default_coord) | |
| # ステップ内のキーワードで座標を上書き | |
| step_keywords = [kw for kw in self.keyword_map if kw in step["text"]] | |
| for kw in step_keywords: | |
| axis_name = self.keyword_map[kw]['axis'] | |
| axis_index = axis_map[axis_name] | |
| coord[axis_index] = self.keyword_map[kw]['coord'] | |
| # メタ軸の計算 | |
| c = int(step["confidence"] * 100) | |
| word_count = len(step["text"].split()) | |
| g = calculate_granularity(word_count) | |
| v = assign_verification_score(step["concepts"], []) | |
| coordinates.append({ | |
| "step_sequence": step["sequence"], | |
| "reasoning_text": step["text"], | |
| "coordinate": { | |
| "medical_space": tuple(coord), # スキーマ名に合わせて変更が必要だが、ここでは固定 | |
| "meta_space": (c, g, v) | |
| }, | |
| "concept_tags": step["concepts"], | |
| "confidence": step["confidence"] | |
| }) | |
| return coordinates | |
| # --- 使用例 --- | |
| if __name__ == "__main__": | |
| from domain_manager import DomainManager | |
| from reasoning_chain_extractor import extract_reasoning_chain | |
| # 1. ドメインマネージャを初期化 | |
| domain_manager = DomainManager() | |
| # 2. ダミーの推論ステップを用意 | |
| dummy_reasoning_chain = [ | |
| {'sequence': 0, 'text': 'まず、民法における契約の定義から始めます。', 'confidence': 0.9, 'concepts': ['民法', '契約']}, | |
| {'sequence': 1, 'text': '次に、具体的な判例を元に解釈を深めます。', 'confidence': 0.8, 'concepts': ['判例', '解釈']} | |
| ] | |
| # 3. 法学ドメイン用のマッパーを生成して実行 | |
| print("--- Case: Legal Domain ---") | |
| legal_schema = domain_manager.get_schema("legal") | |
| legal_mapper = CoordinateMapper(legal_schema) | |
| legal_coordinates = legal_mapper.map_reasoning_to_domain_space(dummy_reasoning_chain) | |
| import json | |
| print(json.dumps(legal_coordinates, indent=2, ensure_ascii=False)) |