Files
Ollama-Modelfiles/README.md
2025-09-10 02:02:42 +02:00

228 lines
5.8 KiB
Markdown

# Ollama Model Files Collection
This repository contains custom Ollama model configurations optimized for various tasks, particularly git commit message generation and general AI assistance.
## Available Models
### 1. **commit-msg-ernie** - ERNIE-4.5 Commit Message Generator
- **Base Model**: ERNIE-4.5-0.3B (Q4_K_M quantization)
- **Purpose**: Generates conventional commit messages from git diffs
- **Context Window**: 4096 tokens
- **Optimizations**: Temperature 0.4, Top-P 0.9 for consistent output
### 2. **commit-msg-gemma3** - Gemma 3 Commit Message Generator
- **Base Model**: Gemma 3 1B
- **Purpose**: Alternative commit message generator using Google's Gemma 3
- **Context Window**: 4096 tokens
- **Optimizations**: Similar parameters to ERNIE variant for consistency
### 3. **ernie-fixed** - ERNIE-4.5 General Purpose
- **Base Model**: ERNIE-4.5-21B (IQ4_XS quantization)
- **Purpose**: General-purpose conversational AI with improved chat template
- **Features**: Uses ChatML-style template with proper token handling
## Prerequisites
Before installing these models, ensure you have:
- [Ollama](https://ollama.ai/) installed on your system
- Sufficient disk space (models range from 1-15GB depending on quantization)
- Internet connection for downloading base models
### Install Ollama
**Linux/macOS:**
```bash
curl -fsSL https://ollama.ai/install.sh | sh
```
**Windows:**
Download from [ollama.ai](https://ollama.ai/download)
## Installation Instructions
### Method 1: Direct Installation from Repository
1. **Clone the repository:**
```bash
git clone https://gitea.puchstein.bayern/mpuchstein/Ollama-Modelfiles.git
cd Ollama-Modelfiles
```
2. **Install individual models:**
**For commit message generation with ERNIE:**
```bash
cd commit-msg-ernie
ollama create commit-msg-ernie -f Modelfile
```
**For commit message generation with Gemma 3:**
```bash
cd commit-msg-gemma3
ollama create commit-msg-gemma3 -f Modelfile
```
**For general purpose ERNIE chat:**
```bash
cd ernie-fixed
ollama create ernie-fixed -f Modelfile
```
3. **Verify installation:**
```bash
ollama list
```
### Method 2: Individual Model Installation
You can install specific models without cloning the entire repository:
**Download specific Modelfile:**
```bash
# Example for commit-msg-ernie
wget https://gitea.puchstein.bayern/mpuchstein/Ollama-Modelfiles/raw/branch/main/commit-msg-ernie/Modelfile
ollama create commit-msg-ernie -f Modelfile
```
## Usage Examples
### Commit Message Generation
**Using ERNIE variant:**
```bash
# Generate commit message from git diff
git diff --cached | ollama run commit-msg-ernie
```
**Using Gemma 3 variant:**
```bash
# Alternative commit message generator
git diff --cached | ollama run commit-msg-gemma3
```
### General Chat (ERNIE-Fixed)
```bash
# Start interactive chat session
ollama run ernie-fixed
# Or single query
echo "Explain quantum computing" | ollama run ernie-fixed
```
## Integration with Git Workflow
### Automated Commit Messages
Create a git alias for automated commit message generation:
```bash
# Add to your ~/.gitconfig
git config --global alias.aicommit '!f() { git add .; msg=$(git diff --cached | ollama run commit-msg-ernie); git commit -m "$msg"; }; f'
```
**Usage:**
```bash
# Stage changes and generate commit automatically
git aicommit
```
### Git Hook Integration
Create a `prepare-commit-msg` hook:
```bash
#!/bin/sh
# .git/hooks/prepare-commit-msg
if [ "$2" = "" ]; then
# Only generate for manual commits (not merges, etc.)
COMMIT_MSG=$(git diff --cached | ollama run commit-msg-ernie)
if [ -n "$COMMIT_MSG" ]; then
echo "$COMMIT_MSG" > "$1"
fi
fi
```
Make it executable:
```bash
chmod +x .git/hooks/prepare-commit-msg
```
## Model Specifications
| Model | Base Model | Size | Context | Temperature | Use Case |
|-------|------------|------|---------|-------------|----------|
| commit-msg-ernie | ERNIE-4.5-0.3B | ~300MB | 4096 | 0.4 | Git commits |
| commit-msg-gemma3 | Gemma 3 1B | ~1GB | 4096 | 0.4 | Git commits |
| ernie-fixed | ERNIE-4.5-21B | ~15GB | Default | Default | General chat |
## Customization
### Modifying System Prompts
To customize the behavior, edit the `SYSTEM` section in any Modelfile:
```dockerfile
SYSTEM """
Your custom system prompt here...
"""
```
Then recreate the model:
```bash
ollama create your-model-name -f Modelfile
```
### Parameter Tuning
Adjust model parameters for different behaviors:
- **Temperature**: Lower (0.1-0.4) for consistency, higher (0.7-1.0) for creativity
- **Top-P**: Controls nucleus sampling (0.9 recommended)
- **Context Length**: Increase for larger diffs/inputs
## Troubleshooting
### Common Issues
**Model download fails:**
- Check internet connection
- Verify Hugging Face model availability
- Try downloading base model separately: `ollama pull gemma3:1b`
**Out of memory errors:**
- Use smaller quantizations (Q4_K_M instead of F16)
- Reduce context window
- Close other applications
**Poor commit message quality:**
- Ensure git diff has meaningful changes
- Check that changes are staged (`git add`)
- Consider adjusting temperature parameter
### Performance Tips
1. **GPU Acceleration**: Ollama automatically uses GPU if available
2. **Model Caching**: Models stay loaded in memory for faster subsequent calls
3. **Batch Processing**: Process multiple diffs efficiently by keeping model loaded
## Contributing
To contribute improvements:
1. Fork the repository
2. Create feature branch
3. Test your changes
4. Submit pull request with conventional commit messages
## License
This repository contains model configurations and prompts. Refer to individual base model licenses for usage restrictions.
## Related Projects
- [Ollama](https://ollama.ai/) - Local LLM runtime
- [Conventional Commits](https://www.conventionalcommits.org/) - Commit message specification
- [ERNIE Models](https://github.com/PaddlePaddle/ERNIE) - Baidu's ERNIE model family