Instructions to use BernaLabs/berna-r8 with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use BernaLabs/berna-r8 with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="BernaLabs/berna-r8")# pip install -U transformers accelerate # Load model directly from transformers import AutoModel model = AutoModel.from_pretrained("BernaLabs/berna-r8", device_map="auto") - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- vLLM
How to use BernaLabs/berna-r8 with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "BernaLabs/berna-r8" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "BernaLabs/berna-r8", "prompt": "Once upon a time,", "max_tokens": 512, "temperature": 0.5 }'Use Docker
docker model run hf.co/BernaLabs/berna-r8
- SGLang
How to use BernaLabs/berna-r8 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 "BernaLabs/berna-r8" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "BernaLabs/berna-r8", "prompt": "Once upon a time,", "max_tokens": 512, "temperature": 0.5 }'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 "BernaLabs/berna-r8" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "BernaLabs/berna-r8", "prompt": "Once upon a time,", "max_tokens": 512, "temperature": 0.5 }' - Docker Model Runner
How to use BernaLabs/berna-r8 with Docker Model Runner:
docker model run hf.co/BernaLabs/berna-r8
Download code/forgetting/smart_freezer.py from BernaLabs/berna-r8: direct link, hf CLI and curl.
- Browser
- Download file 2.99 kB
-
https://huggingface.co/BernaLabs/berna-r8/resolve/main/code/forgetting/smart_freezer.py
- Command line
-
hf download hf://BernaLabs/berna-r8/code/forgetting/smart_freezer.py
-
curl -L -o smart_freezer.py https://huggingface.co/BernaLabs/berna-r8/resolve/main/code/forgetting/smart_freezer.py
2.99 kB
| """ | |
| Smart Freezer v2 — K6-centric. | |
| K6 = Encompassment = "cognitive identity" of a cell. | |
| Freezing decision uses BOTH: | |
| - S (saturation) >= S* | |
| - K6 stability over T consecutive measurements | |
| A cell is frozen only if BOTH its saturation AND its K6 identity are stable. | |
| """ | |
| import math | |
| class SmartFreezer: | |
| def __init__(self, S_star=0.85, K6_star=0.60, T=3, | |
| K6_stability=0.02, check_every=100, verbose=False): | |
| self.S_star = S_star | |
| self.K6_star = K6_star | |
| self.T = T | |
| self.K6_stability = K6_stability | |
| self.check_every = check_every | |
| self.verbose = verbose | |
| self.n_frozen = 0 | |
| self.freeze_log = [] | |
| def _k6_identity_stable(self, cell): | |
| """Is the cell's K6 identity stable over T measurements?""" | |
| if not hasattr(cell, "K_history") or len(cell.K_history) < self.T: | |
| return False | |
| recent_k6 = [k[5] for k in cell.K_history[-self.T:]] | |
| if len(recent_k6) < self.T: | |
| return False | |
| k6_mean = sum(recent_k6) / len(recent_k6) | |
| if k6_mean < self.K6_star: | |
| return False | |
| # stability = low variance | |
| k6_var = sum((x - k6_mean) ** 2 for x in recent_k6) / len(recent_k6) | |
| k6_std = math.sqrt(k6_var) | |
| return k6_std <= self.K6_stability | |
| def maybe_freeze(self, cell, current_step): | |
| """Freeze cell if BOTH S-saturation AND K6-identity are stable.""" | |
| if getattr(cell, "frozen", False): | |
| return False | |
| recent_s = cell.S_history[-self.T:] | |
| if len(recent_s) < self.T: | |
| return False | |
| if not all(s >= self.S_star for s in recent_s): | |
| return False | |
| # K6 identity check | |
| if not self._k6_identity_stable(cell): | |
| return False | |
| cell.frozen = True | |
| cell.freeze_step = current_step | |
| self.n_frozen += 1 | |
| self.freeze_log.append({ | |
| "cell_id": cell.cell_id, | |
| "step": current_step, | |
| "S_mean": sum(recent_s) / len(recent_s), | |
| "K6_mean": sum(k[5] for k in cell.K_history[-self.T:]) / self.T, | |
| "layer_idx": cell.layer_idx, | |
| }) | |
| return True | |
| def periodic_check(self, cells, current_step): | |
| n_new = 0 | |
| for c in cells: | |
| if c.state != "active": | |
| continue | |
| if self.maybe_freeze(c, current_step): | |
| n_new += 1 | |
| if self.verbose and n_new: | |
| print(f"[SmartFreezer] step {current_step}: froze {n_new} new cells " | |
| f"(total={self.n_frozen})") | |
| return n_new | |
| def is_saturated(self, cell): | |
| recent = cell.S_history[-self.T:] | |
| return len(recent) >= self.T and all(s >= self.S_star for s in recent) | |
| def stats(self): | |
| return { | |
| "n_frozen": self.n_frozen, | |
| "S_star": self.S_star, | |
| "K6_star": self.K6_star, | |
| "T": self.T, | |
| "K6_stability": self.K6_stability, | |
| } | |