sci-assistant / README.md
basiphobe's picture
Update README.md
5044342 verified
---
language:
- en
license: apache-2.0
library_name: transformers
tags:
- medical
- spinal-cord-injury
- healthcare
- disability
- accessibility
- fine-tuned
- lora
- mistral
base_model: teknium/OpenHermes-2.5-Mistral-7B
pipeline_tag: text-generation
widget:
- text: "What is autonomic dysreflexia?"
example_title: "Medical Question"
- text: "How can I transfer from my wheelchair to a car?"
example_title: "Daily Living"
- text: "What exercises are good for someone with paraplegia?"
example_title: "Exercise & Rehabilitation"
model-index:
- name: sci-assistant
results: []
---
# SCI Assistant - Spinal Cord Injury Specialized AI Assistant
A specialized AI assistant fine-tuned specifically for people with spinal cord injuries (SCI). This model is based on OpenHermes-2.5-Mistral-7B and has been trained using a two-phase approach with LoRA (Low-Rank Adaptation) to provide contextually appropriate and medically-informed responses for the SCI community.
## Model Description
This model was fine-tuned using a two-phase training approach:
1. **Phase 1**: Domain pretraining on SCI-related medical texts and resources
2. **Phase 2**: Instruction tuning on conversational SCI-focused Q&A pairs
The model understands the unique challenges, medical realities, and daily life considerations of individuals living with spinal cord injuries.
## Training Details
- **Base Model**: teknium/OpenHermes-2.5-Mistral-7B
- **Training Method**: QLoRA (4-bit quantization with LoRA adapters)
- **Training Data**: 119,117 total entries (35,779 domain text + 83,337 instruction pairs)
- **Hardware**: RTX 4070 Super (12GB VRAM)
- **Training Time**: ~20 hours total (Phase 1 + Phase 2)
## Usage
This repository contains both the LoRA adapter and the full merged model. Choose the option that works best for you:
### Option 1: Use the Full Merged Model (Recommended)
```python
from transformers import AutoModelForCausalLM, AutoTokenizer
model = AutoModelForCausalLM.from_pretrained("basiphobe/sci-assistant")
tokenizer = AutoTokenizer.from_pretrained("basiphobe/sci-assistant")
# Example usage
prompt = "What are the signs of autonomic dysreflexia?"
inputs = tokenizer(prompt, return_tensors="pt")
outputs = model.generate(**inputs, max_length=200)
response = tokenizer.decode(outputs[0], skip_special_tokens=True)
```
### Option 2: Use the LoRA Adapter (Smaller Download)
```python
from transformers import AutoModelForCausalLM, AutoTokenizer, BitsAndBytesConfig
from peft import PeftModel
import torch
# Load model
bnb_config = BitsAndBytesConfig(
load_in_4bit=True,
bnb_4bit_compute_dtype=torch.float16,
)
base_model = AutoModelForCausalLM.from_pretrained(
"teknium/OpenHermes-2.5-Mistral-7B",
quantization_config=bnb_config,
device_map="auto"
)
model = PeftModel.from_pretrained(base_model, "basiphobe/sci-assistant")
tokenizer = AutoTokenizer.from_pretrained("basiphobe/sci-assistant")
# Format prompt with SCI context
system_context = "You are a specialized medical assistant for people with spinal cord injuries. Your responses should always consider the unique needs, challenges, and medical realities of individuals living with SCI."
prompt = f"{system_context}\n\n### Instruction:\n{your_question}\n\n### Response:\n"
# Generate response
inputs = tokenizer(prompt, return_tensors="pt")
outputs = model.generate(**inputs, max_new_tokens=256, temperature=0.7)
response = tokenizer.decode(outputs[0][inputs["input_ids"].shape[1]:], skip_special_tokens=True)
```
## Files in this Repository
- **Full Merged Model**: Ready-to-use model files (`model-*.safetensors`, `config.json`, etc.)
- **LoRA Adapter**: Smaller adapter files (`adapter_model.safetensors`, `adapter_config.json`)
- **Tokenizer**: Shared tokenizer files for both options
## GGUF Format Models
This repository also includes GGUF format models optimized for use with **llama.cpp**, **Ollama**, and other GGUF-compatible inference engines. These formats offer excellent performance and compatibility across different platforms.
### Available GGUF Models
| File | Size | Format | Use Case | RAM Required |
|------|------|--------|----------|--------------|
| `merged-sci-model.gguf` | 14GB | F16 | Maximum quality inference | ~16GB |
| `merged-sci-model-q6_k.gguf` | 5.6GB | Q6_K | High quality with good compression | ~8GB |
| `merged-sci-model-q5_k_m.gguf` | 4.8GB | Q5_K_M | Excellent quality/size balance | ~7GB |
| `merged-sci-model-q5_k_s.gguf` | 4.7GB | Q5_K_S | Good quality, slightly smaller | ~7GB |
| `merged-sci-model-q4_k_m.gguf` | 4.1GB | Q4_K_M | Balanced quality/performance | ~6GB |
### Usage with Ollama
**1. Download and create Modelfile:**
```bash
# Download the Q5_K_M model (recommended balance of quality/size)
wget https://huggingface.co/basiphobe/sci-assistant/resolve/main/merged-sci-model-q5_k_m.gguf
# Create Modelfile
cat > Modelfile << 'EOF'
FROM ./merged-sci-model-q5_k_m.gguf
TEMPLATE """<|im_start|>system
You are a specialized medical assistant for people with spinal cord injuries. Your responses should always consider the unique needs, challenges, and medical realities of individuals living with SCI.<|im_end|>
<|im_start|>user
{{ .Prompt }}<|im_end|>
<|im_start|>assistant
"""
PARAMETER stop "<|im_start|>"
PARAMETER stop "<|im_end|>"
PARAMETER temperature 0.7
PARAMETER top_p 0.9
EOF
```
**2. Create and run the model:**
```bash
ollama create sci-assistant -f Modelfile
ollama run sci-assistant "What are the signs of autonomic dysreflexia?"
```
### Usage with llama.cpp
**1. Install and setup:**
```bash
# Clone and build llama.cpp
git clone https://github.com/ggerganov/llama.cpp
cd llama.cpp
make
# Download model
wget https://huggingface.co/basiphobe/sci-assistant/resolve/main/merged-sci-model-q5_k_m.gguf
```
**2. Interactive chat:**
```bash
./main -m merged-sci-model-q5_k_m.gguf \
--temp 0.7 \
--repeat_penalty 1.1 \
-c 4096 \
--interactive \
--in-prefix "<|im_start|>user\n" \
--in-suffix "<|im_end|>\n<|im_start|>assistant\n"
```
**3. Single prompt:**
```bash
./main -m merged-sci-model-q5_k_m.gguf \
--temp 0.7 \
-c 2048 \
-p "<|im_start|>system\nYou are a specialized medical assistant for people with spinal cord injuries.<|im_end|>\n<|im_start|>user\nWhat exercises are good for someone with paraplegia?<|im_end|>\n<|im_start|>assistant\n"
```
### Performance Comparison
- **F16 Model** (`merged-sci-model.gguf`): Maximum quality, largest memory footprint
- **Q6_K Model** (`merged-sci-model-q6_k.gguf`): Near-maximum quality with 60% size reduction
- **Q5_K_M Model** (`merged-sci-model-q5_k_m.gguf`): Excellent quality retention, good balance
- **Q5_K_S Model** (`merged-sci-model-q5_k_s.gguf`): Very good quality, slightly more compressed
- **Q4_K_M Model** (`merged-sci-model-q4_k_m.gguf`): Good quality, smallest size, recommended for resource-constrained environments
All models use the **ChatML** template format and support up to **32K context length**.
## Intended Use
This model is designed to:
- Provide SCI-specific information and guidance
- Answer questions about daily life with spinal cord injuries
- Offer practical advice for common SCI challenges
- Support the SCI community with contextually appropriate responses
## Limitations
- This model is for informational purposes only and should not replace professional medical advice
- Always consult with healthcare providers for medical decisions
- The model may not have information about the latest medical developments
- Responses should be verified with medical professionals when making health-related decisions
## Direct Use
This model can be used directly for:
- Educational purposes about spinal cord injuries
- Providing general information and support to the SCI community
- Research into specialized medical AI assistants
- Personal use by individuals seeking SCI-related information
The model is designed to provide contextually appropriate responses that consider the unique challenges and medical realities of spinal cord injuries.
### Downstream Use
This model can be fine-tuned further for:
- Integration into healthcare applications
- Specialized medical chatbots for rehabilitation centers
- Educational platforms for SCI awareness and training
- Research applications in medical AI
- Custom applications for SCI support organizations
When used in downstream applications, implementers should:
- Maintain the medical disclaimer requirements
- Ensure proper supervision by medical professionals
- Implement appropriate safety measures and content filtering
- Validate outputs for medical accuracy in their specific use case
### Out-of-Scope Use
This model should NOT be used for:
- **Medical diagnosis or treatment decisions** - Always consult healthcare professionals
- **Emergency medical situations** - Seek immediate professional medical help
- **Legal or financial advice** related to SCI cases
- **Replacement for professional medical consultation**
- **Clinical decision-making** without physician oversight
- **Applications targeting vulnerable populations** without proper safeguards
- **Commercial medical applications** without appropriate medical validation and oversight
## Bias, Risks, and Limitations
### Medical Limitations
- **Not a substitute for medical professionals**: All medical advice should be verified with qualified healthcare providers
- **Training data limitations**: May not include the most recent medical research or treatments
- **Individual variation**: SCI affects individuals differently; responses may not apply to all cases
- **Geographic bias**: Training data may be biased toward certain healthcare systems or regions
### Technical Limitations
- **Hallucination risk**: Like all language models, may generate plausible-sounding but incorrect information
- **Context limitations**: Limited by input context window and may not retain information across long conversations
- **Language limitations**: Primarily trained on English content
- **Update lag**: Cannot access real-time medical research or current events
### Bias Considerations
- **Training data bias**: Reflects biases present in source medical literature and online content
- **Demographic representation**: May not equally represent all demographics within the SCI community
- **Healthcare access bias**: May reflect biases toward certain types of healthcare systems
- **Severity bias**: May be more informed about certain types or severities of SCI
### Risk Mitigation
- Always include medical disclaimers when using this model
- Implement content filtering for harmful or dangerous advice
- Regular evaluation by medical professionals is recommended
- Monitor outputs for accuracy and appropriateness
## Recommendations
Users should be aware of the following recommendations:
**For Direct Users:**
- Always verify medical information with qualified healthcare professionals
- Use responses as educational/informational starting points, not definitive advice
- Be aware that individual SCI experiences vary significantly
- Seek immediate professional help for urgent medical concerns
**For Developers/Implementers:**
- Implement clear medical disclaimers in any application using this model
- Provide easy access to professional medical resources alongside model responses
- Consider implementing content filtering for potentially harmful advice
- Regular review by medical professionals is strongly recommended
- Ensure compliance with relevant healthcare regulations (HIPAA, etc.)
**For Healthcare Organizations:**
- Professional medical oversight is essential when implementing in clinical settings
- Regular validation of model outputs against current medical standards
- Integration should complement, not replace, professional medical consultation
- Staff training on AI limitations and appropriate use cases
## Training Details
### Training Data
The training dataset consisted of 119,117 carefully curated entries focused on spinal cord injury information:
**Domain Pretraining Data (35,779 entries):**
- Medical literature and research papers on SCI
- Educational materials from reputable SCI organizations
- Clinical guidelines and treatment protocols
- Rehabilitation and therapy documentation
- Patient education resources
**Instruction Tuning Data (83,337 entries):**
- SCI-focused question-answer pairs
- Conversational examples with appropriate medical context
- Real-world scenarios and practical advice situations
- Educational Q&A formatted for instruction following
All training data was filtered and curated to ensure:
- Sources from reputable medical organizations and healthcare professionals
- Content originally created or reviewed by medical professionals in the SCI field
- Appropriate tone and sensitivity for SCI community
- Removal of potentially harmful or dangerous advice
- Proper medical disclaimers and context
**Note**: While the source materials were created by medical professionals, this model itself has not undergone independent medical validation.
### Training Procedure
The model was trained using a two-phase approach with QLoRA (Quantized Low-Rank Adaptation):
**Phase 1 - Domain Pretraining:**
- Focus: Medical terminology and SCI-specific knowledge
- Duration: 2 epochs (~8 hours)
- Data: 35,779 domain text entries
- Objective: Adapt base model to SCI medical domain
**Phase 2 - Instruction Tuning:**
- Focus: Conversational abilities and response formatting
- Duration: 2 epochs (~12 hours)
- Data: 83,337 instruction-response pairs
- Objective: Teach appropriate response patterns and tone
#### Preprocessing
Training data underwent extensive preprocessing:
- Content sourced from materials created by healthcare professionals
- Sensitive content filtering and safety checks
- Standardized formatting for instruction-following
- Quality filtering to remove low-quality or inappropriate content
- Tokenization optimization for efficient training
#### Training Hyperparameters
- **Training regime:** 4-bit quantization with LoRA adapters (QLoRA)
- **Learning rate:** 2e-4 with cosine scheduling
- **LoRA rank:** 16
- **LoRA alpha:** 32
- **LoRA dropout:** 0.05
- **Target modules:** q_proj, v_proj
- **Batch size:** 4 with gradient accumulation
- **Max sequence length:** 512 tokens
- **Optimizer:** AdamW with weight decay
#### Speeds, Sizes, Times
- **Total training time:** ~20 hours (8h Phase 1 + 12h Phase 2)
- **Hardware:** RTX 4070 Super (12GB VRAM)
- **Final model size:** 30MB (LoRA adapter only)
- **Base model size:** 7B parameters (not included in adapter)
- **Training throughput:** ~3.5 samples/second average
- **Memory usage:** 6-7GB VRAM during training
## Evaluation
### Testing Data, Factors & Metrics
#### Testing Data
The model was evaluated using:
- Held-out test set of SCI-related questions (500 samples)
- Manual review of response quality and appropriateness
- Comparative analysis against general-purpose models on SCI topics
- Assessment of domain-specific knowledge retention
**Note**: Evaluation was conducted by the model developer, not independent medical professionals.
#### Factors
Evaluation considered multiple factors:
- **Medical accuracy**: Correctness of SCI-related information
- **Appropriateness**: Sensitivity and tone for SCI community
- **Contextual relevance**: Understanding of SCI-specific challenges
- **Safety**: Avoidance of harmful or dangerous advice
- **Completeness**: Comprehensive responses to complex questions
#### Metrics
- **Medical accuracy score**: Based on consistency with source medical literature (not independently validated)
- **Appropriateness rating**: Developer assessment of tone and sensitivity (4.2/5.0 subjective rating)
- **Response relevance**: SCI-specific context understanding (82% relevance score)
- **Safety compliance**: No obviously harmful medical advice detected in test samples
- **Response quality**: Perplexity improvements over base model for SCI domain
### Results
**Quantitative Results:**
- 40% improvement in SCI domain perplexity over base model
- Responses demonstrate consistency with source medical literature
- 95% safety compliance (no obviously harmful medical advice detected)
- 82% average relevance score for SCI-specific contexts
**Qualitative Results:**
- Responses demonstrate clear understanding of SCI terminology and concepts
- Appropriate tone and sensitivity for disability community
- Consistent inclusion of medical disclaimers
- Good balance between being helpful and cautious about medical advice
**Limitations of Evaluation:**
- Evaluation conducted by model developer, not independent medical experts
- No formal clinical validation or testing with SCI patients
- Results based on consistency with training sources, not independent medical verification
## Environmental Impact
Training carbon emissions estimated using energy consumption data:
- **Hardware Type:** RTX 4070 Super (12GB VRAM)
- **Hours used:** ~20 hours total training time
- **Cloud Provider:** Local training (personal hardware)
- **Compute Region:** North America
- **Carbon Emitted:** Approximately 2.1 kg CO2eq (estimated based on local energy grid)
The use of QLoRA significantly reduced training time and energy consumption compared to full fine-tuning methods, making this a relatively efficient training approach.
## Technical Specifications
### Model Architecture and Objective
- **Base Architecture:** Mistral 7B transformer model
- **Adaptation Method:** QLoRA (Quantized Low-Rank Adaptation)
- **Objective:** Causal language modeling with SCI domain specialization
- **Quantization:** 4-bit precision for memory efficiency
- **LoRA Configuration:** Rank-16 adapters on attention projection layers
### Compute Infrastructure
#### Hardware
- **GPU:** NVIDIA RTX 4070 Super (12GB VRAM)
- **CPU:** Modern multi-core processor
- **RAM:** 32GB system memory
- **Storage:** NVMe SSD for fast data loading
#### Software
- **Framework:** Transformers 4.36+, PEFT 0.16.0
- **Training:** QLoRA with bitsandbytes quantization
- **Environment:** Python 3.10+, PyTorch 2.0+, CUDA 12.1
## Citation
If you use this model in your research or applications, please cite:
**BibTeX:**
```bibtex
@misc{sci_assistant_2025,
title={SCI Assistant: A Specialized AI Assistant for Spinal Cord Injury Support},
author={basiphobe},
year={2025},
howpublished={Hugging Face Model Repository},
url={https://huggingface.co/basiphobe/sci-assistant}
}
```
**APA:**
basiphobe. (2025). *SCI Assistant: A Specialized AI Assistant for Spinal Cord Injury Support*. Hugging Face. https://huggingface.co/basiphobe/sci-assistant
## Glossary
**SCI**: Spinal Cord Injury - damage to the spinal cord that results in temporary or permanent changes in function
**QLoRA**: Quantized Low-Rank Adaptation - an efficient fine-tuning method that reduces memory requirements
**Domain Pretraining**: Training phase focused on learning domain-specific terminology and knowledge
**Instruction Tuning**: Training phase focused on learning conversational patterns and response formatting
**Perplexity**: A metric measuring how well a language model predicts text (lower is better)
**LoRA**: Low-Rank Adaptation - parameter-efficient fine-tuning technique
## Model Card Authors
**Primary Author:** basiphobe
**Model Development:** Individual research project for SCI community support
**Data Sources:** Curated from medical literature and educational materials created by healthcare professionals
**Validation Status:** Model has not undergone independent medical professional validation
## Model Card Contact
For questions, issues, or feedback regarding this model:
- **Hugging Face:** https://huggingface.co/basiphobe/sci-assistant
- **Issues:** Please report issues through Hugging Face model repository
- **Medical Concerns:** Always consult qualified healthcare professionals
**Important Note:** This model is provided for educational and informational purposes. Always seek professional medical advice for health-related questions and decisions.
### Framework versions
- PEFT 0.16.0