# 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