Instructions to use CrowtherLabs/Atom-Electron-1.0 with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- PEFT
How to use CrowtherLabs/Atom-Electron-1.0 with PEFT:
from peft import PeftModel from transformers import AutoModelForCausalLM base_model = AutoModelForCausalLM.from_pretrained("openai/gpt-oss-20b") model = PeftModel.from_pretrained(base_model, "CrowtherLabs/Atom-Electron-1.0") - Notebooks
- Google Colab
- Kaggle
Atom Electron 1.0
Atom Electron 1.0 is an instruction-tuned LoRA adapter developed by CrowtherLabs. It is distributed as a PEFT/LoRA adapter and is self-contained — the tokenizer and chat template are bundled in this repository, so you can load and run it with a single repo id and no extra downloads to configure.
- Developer: CrowtherLabs
- Model type: Causal language model (decoder-only), LoRA adapter (PEFT)
- Language: English
- License: Apache-2.0
- Format: LoRA adapter + bundled tokenizer & chat template
Table of contents
- Installation
- Quick start
- Chat format
- Generation parameters
- Merging the adapter
- Hardware requirements
- Repository contents
- Adapter configuration
- License
Installation
pip install -U transformers peft accelerate torch
Optional, for faster/lighter loading:
pip install -U bitsandbytes # 4-bit / 8-bit quantized loading
pip install -U hf_xet # accelerated downloads from the Hub
Quick start
Because the tokenizer is bundled, both the model and tokenizer load from the same repo id:
import torch
from peft import AutoPeftModelForCausalLM
from transformers import PreTrainedTokenizerFast
REPO = "CrowtherLabs/Atom-Electron-1.0"
tokenizer = PreTrainedTokenizerFast.from_pretrained(REPO)
model = AutoPeftModelForCausalLM.from_pretrained(
REPO,
torch_dtype="auto",
device_map="auto",
)
model.eval()
messages = [
{"role": "user", "content": "Explain what a LoRA adapter is in two sentences."},
]
inputs = tokenizer.apply_chat_template(
messages,
add_generation_prompt=True,
return_tensors="pt",
).to(model.device)
with torch.no_grad():
outputs = model.generate(inputs, max_new_tokens=512, do_sample=True, temperature=0.7, top_p=0.9)
response = tokenizer.decode(outputs[0][inputs.shape[-1]:], skip_special_tokens=True)
print(response)
AutoPeftModelForCausalLMresolves and loads the underlying base weights automatically from the adapter configuration — there is nothing else to download or wire up by hand.The bundled tokenizer is loaded with
PreTrainedTokenizerFast(this is an adapter repo, so it has no top-levelconfig.jsonforAutoTokenizerto infer a class from —PreTrainedTokenizerFastreads the bundledtokenizer.jsondirectly and works from the repo id alone).
Chat format
Always build prompts with apply_chat_template rather than concatenating strings by hand — it
applies the correct special tokens and role structure for you.
messages = [
{"role": "system", "content": "You are a helpful research assistant."},
{"role": "user", "content": "Summarise the key idea of transfer learning."},
]
prompt = tokenizer.apply_chat_template(messages, add_generation_prompt=True, tokenize=False)
This is a reasoning-capable model: responses may contain an internal reasoning section
followed by the final answer. You can hint how much deliberation to spend with the optional
reasoning_effort argument ("low", "medium", or "high"):
inputs = tokenizer.apply_chat_template(
messages,
add_generation_prompt=True,
reasoning_effort="high",
return_tensors="pt",
)
Multi-turn conversations are supported — just append {"role": "assistant", ...} and the next
{"role": "user", ...} turns to the messages list.
Generation parameters
Sensible starting points:
| Parameter | Suggested value | Notes |
|---|---|---|
max_new_tokens |
512–2048 | Raise for long-form / multi-step answers. |
do_sample |
True |
False for deterministic (greedy) decoding. |
temperature |
0.6–0.8 | Lower = more focused, higher = more creative. |
top_p |
0.9 | Nucleus sampling. |
repetition_penalty |
1.0–1.1 | Nudge up if you see loops. |
Merging the adapter (optional)
For deployment you can fold the adapter into the base weights to get a standalone model (no PEFT dependency at inference time):
from peft import AutoPeftModelForCausalLM
model = AutoPeftModelForCausalLM.from_pretrained("CrowtherLabs/Atom-Electron-1.0")
merged = model.merge_and_unload()
merged.save_pretrained("atom-electron-1.0-merged")
tokenizer.save_pretrained("atom-electron-1.0-merged")
The merged folder is a full-size model and will be substantially larger than the adapter.
Hardware requirements
- Adapter size: ~1.7 GB (this repository).
- Base weights (fetched automatically on first load): ~20B-parameter class model.
- Recommended GPU: ≥16 GB VRAM for
bf16/quantized inference; more headroom is advised for long contexts or batched generation. - CPU-only loading is possible but slow and memory-heavy; a GPU is strongly recommended.
- Use
device_map="auto"(requiresaccelerate) to shard automatically, andbitsandbytesfor 4-bit/8-bit loading on smaller GPUs.
Repository contents
| File | Purpose |
|---|---|
adapter_model.safetensors |
LoRA adapter weights |
adapter_config.json |
PEFT/LoRA configuration |
tokenizer.json |
Fast tokenizer |
tokenizer_config.json |
Tokenizer settings |
special_tokens_map.json |
Special-token mapping |
chat_template.jinja |
Chat/prompt template |
README.md |
This model card |
Adapter configuration
| Setting | Value |
|---|---|
| PEFT type | LoRA |
Rank (r) |
32 |
lora_alpha |
32 |
lora_dropout |
0.0 |
| Task type | CAUSAL_LM |
| Target modules | q_proj, k_proj, v_proj, o_proj, gate_proj, up_proj, down_proj, lm_head |
License
Released under the Apache-2.0 license. You are free to use, modify, and distribute the model subject to the terms of that license. Please review it before use in production.
Atom Electron 1.0 · developed by CrowtherLabs.
- Downloads last month
- 25