Instructions to use thiagonishimura/TerraModel with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- llama-cpp-python
How to use thiagonishimura/TerraModel with llama-cpp-python:
# !pip install llama-cpp-python from llama_cpp import Llama llm = Llama.from_pretrained( repo_id="thiagonishimura/TerraModel", filename="terramodel-3b-q4_k_m.gguf", )
llm.create_chat_completion( messages = "No input example has been defined for this model task." )
- Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- llama.cpp
How to use thiagonishimura/TerraModel with llama.cpp:
Install (macOS, Linux)
curl -LsSf https://llama.app/install.sh | sh # Start a local OpenAI-compatible server with a web UI: llama serve -hf thiagonishimura/TerraModel:Q4_K_M # Run inference directly in the terminal: llama cli -hf thiagonishimura/TerraModel:Q4_K_M
Install from WinGet (Windows)
winget install llama.cpp # Start a local OpenAI-compatible server with a web UI: llama serve -hf thiagonishimura/TerraModel:Q4_K_M # Run inference directly in the terminal: llama cli -hf thiagonishimura/TerraModel:Q4_K_M
Use pre-built binary
# Download pre-built binary from: # https://github.com/ggerganov/llama.cpp/releases # Start a local OpenAI-compatible server with a web UI: ./llama-server -hf thiagonishimura/TerraModel:Q4_K_M # Run inference directly in the terminal: ./llama-cli -hf thiagonishimura/TerraModel:Q4_K_M
Build from source code
git clone https://github.com/ggerganov/llama.cpp.git cd llama.cpp cmake -B build cmake --build build -j --target llama-server llama-cli # Start a local OpenAI-compatible server with a web UI: ./build/bin/llama-server -hf thiagonishimura/TerraModel:Q4_K_M # Run inference directly in the terminal: ./build/bin/llama-cli -hf thiagonishimura/TerraModel:Q4_K_M
Use Docker
docker model run hf.co/thiagonishimura/TerraModel:Q4_K_M
- LM Studio
- Jan
- Ollama
How to use thiagonishimura/TerraModel with Ollama:
ollama run hf.co/thiagonishimura/TerraModel:Q4_K_M
- Unsloth Studio
How to use thiagonishimura/TerraModel with Unsloth Studio:
Install Unsloth Studio (macOS, Linux, WSL)
curl -fsSL https://unsloth.ai/install.sh | sh # Run unsloth studio unsloth studio -H 0.0.0.0 -p 8888 # Then open http://localhost:8888 in your browser # Search for thiagonishimura/TerraModel to start chatting
Install Unsloth Studio (Windows)
irm https://unsloth.ai/install.ps1 | iex # Run unsloth studio unsloth studio -H 0.0.0.0 -p 8888 # Then open http://localhost:8888 in your browser # Search for thiagonishimura/TerraModel to start chatting
Using HuggingFace Spaces for Unsloth
# No setup required # Open https://huggingface.co/spaces/unsloth/studio in your browser # Search for thiagonishimura/TerraModel to start chatting
- Pi
How to use thiagonishimura/TerraModel with Pi:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf thiagonishimura/TerraModel:Q4_K_M
Configure the model in Pi
# Install Pi: npm install -g @mariozechner/pi-coding-agent # Add to ~/.pi/agent/models.json: { "providers": { "llama-cpp": { "baseUrl": "http://localhost:8080/v1", "api": "openai-completions", "apiKey": "none", "models": [ { "id": "thiagonishimura/TerraModel:Q4_K_M" } ] } } }Run Pi
# Start Pi in your project directory: pi
- Hermes Agent new
How to use thiagonishimura/TerraModel with Hermes Agent:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf thiagonishimura/TerraModel:Q4_K_M
Configure Hermes
# Install Hermes: curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash hermes setup # Point Hermes at the local server: hermes config set model.provider custom hermes config set model.base_url http://127.0.0.1:8080/v1 hermes config set model.default thiagonishimura/TerraModel:Q4_K_M
Run Hermes
hermes
- Atomic Chat new
- OpenClaw new
How to use thiagonishimura/TerraModel with OpenClaw:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf thiagonishimura/TerraModel:Q4_K_M
Configure OpenClaw
# Install OpenClaw: npm install -g openclaw@latest # Register the local server and set it as the default model: openclaw onboard --non-interactive --mode local \ --auth-choice custom-api-key \ --custom-base-url http://127.0.0.1:8080/v1 \ --custom-model-id "thiagonishimura/TerraModel:Q4_K_M" \ --custom-provider-id llama-cpp \ --custom-compatibility openai \ --custom-text-input \ --accept-risk \ --skip-health
Run OpenClaw
openclaw agent --local --agent main --message "Hello from Hugging Face"
- Docker Model Runner
How to use thiagonishimura/TerraModel with Docker Model Runner:
docker model run hf.co/thiagonishimura/TerraModel:Q4_K_M
- Lemonade
How to use thiagonishimura/TerraModel with Lemonade:
Pull the model
# Download Lemonade from https://lemonade-server.ai/ lemonade pull thiagonishimura/TerraModel:Q4_K_M
Run and chat with the model
lemonade run user.TerraModel-Q4_K_M
List all available models
lemonade list
TerraModel: SLMs Quantizados para Tradução NL2SQL Geoespacial
📌 Visão Geral do Modelo
O TerraModel é uma família de Small Language Models (SLMs) especializados na tradução de linguagem natural para consultas em bancos de dados relacionais espaciais (PostgreSQL/PostGIS). Este modelo foi otimizado para o domínio de monitoramento ambiental do bioma Amazônia, focado em superar o gargalo de largura de banda de memória (Memory Bandwidth Wall) em infraestruturas baseadas exclusivamente em processadores centrais (CPU-only).
Este repositório contém as versões quantizadas em formato GGUF (4 bits e 8 bits) dos modelos de 3B e 7B de parâmetros, permitindo inferência local de alta eficiência, com baixo consumo de RAM e garantia de privacidade na manipulação de dados governamentais sensíveis. Também disponibilizamos os pesos originais de alta precisão para inferência acelerada por GPU.
🛠️ Detalhes Técnicos
- Modelo Base: Qwen2.5-Coder-Instruct (3B e 7B)
- Técnica de Fine-Tuning: QLoRA (Parameter-Efficient Fine-Tuning)
- Formatos de Inferência: GGUF (via
llama.cpppara CPU) e Safetensors (viatransformerspara GPU) - Quantizações Disponíveis: Q4_K_M (INT4) e Q8_0 (INT8)
- Domínio: Geoespacial, PostGIS, Monitoramento Ambiental (Amazônia)
- Idioma Principal: Português (PT-BR) / SQL
📂 Arquivos do Repositório: Qual versão baixar?
1. Modelos Quantizados (CPU-Only)
Para ambientes restritos a processadores centrais, oferecemos formatos GGUF. Escolha a versão de acordo com a disponibilidade de memória RAM do seu servidor:
Versões Q4 (INT4) Ideais para restrição severa de memória, oferecendo maior velocidade de geração (menor latência):
terramodel-7b-q4_k_m.gguf: Requer ~4.68 GB de RAM.terramodel-3b-q4_k_m.gguf: Requer apenas ~1.93 GB de RAM (Versão mais leve, viável em praticamente qualquer dispositivo).
Versões Q8 (INT8) Recomendadas se você possui maior folga na memória RAM e deseja priorizar a acurácia máxima e a integridade sintática nas consultas geradas:
terramodel-7b-q8_0.gguf: Requer ~8.10 GB de RAM (Melhor equilíbrio de desempenho empírico no benchmark).terramodel-3b-q8_0.gguf: Requer ~3.29 GB de RAM.
2. Modelos em Alta Precisão (GPU)
Para infraestruturas que contam com aceleração gráfica, os pesos fundidos (merged) originais estão disponíveis nas seguintes pastas. O carregamento direto em VRAM (FP16) reflete o tamanho integral dos tensores:
- 📁
terramodel-7b-bf16/(Requer ~15.2 GB de VRAM dedicada) - 📁
terramodel-3b-bf16/(Requer ~6.18 GB de VRAM dedicada)
💻 Como Utilizar (Inferência Local em Python via CPU)
Para rodar o formato GGUF localmente utilizando apenas o processador, recomendamos a biblioteca llama-cpp-python.
Instalação
pip install llama-cpp-python
Exemplo de Código (Python)
from llama_cpp import Llama
def generate_spatial_query(prompt: str, model_path: str) -> str:
"""
Gera uma consulta PostGIS a partir de linguagem natural utilizando o TerraModel.
Args:
prompt (str): A pergunta em linguagem natural.
model_path (str): O caminho local para o arquivo .gguf.
Returns:
str: A consulta SQL gerada pelo modelo.
"""
# Instanciação do modelo otimizada para CPU
llm = Llama(
model_path=model_path,
n_ctx=2048, # Janela de contexto
n_threads=8, # Ajuste para a quantidade de núcleos físicos da sua CPU
verbose=False
)
# System Prompt exato utilizado no fine-tuning do TerraModel
system_prompt = """Você é o TerraModel, um especialista em análise geoespacial e PostgreSQL/PostGIS.
Sua tarefa é traduzir perguntas em linguagem natural para consultas SQL rigorosas e otimizadas.
Você deve basear sua sintaxe ESTRITAMENTE no seguinte esquema de banco de dados:
CREATE TABLE public.dados_deter (gid integer, fid varchar, classname varchar, quadrant varchar, path_row varchar, view_date date, sensor varchar, satellite varchar, areauckm numeric, uc varchar, areamunkm numeric, municipali varchar, geocodibge varchar, uf varchar, geom geometry);
Nota: Use unaccent() para buscar textos."""
# Formatação ChatML requerida pela arquitetura Qwen2.5-Coder
formatted_prompt = f"<|im_start|>system\n{system_prompt}<|im_end|>\n<|im_start|>user\n{prompt}<|im_end|>\n<|im_start|>assistant\n"
# Inferência
response = llm(
formatted_prompt,
max_tokens=256,
stop=["<|im_end|>"],
temperature=0.1 # Temperatura baixa para garantir determinismo na sintaxe SQL
)
return response['choices'][0]['text'].strip()
# Exemplo de uso
if __name__ == "__main__":
pergunta = "Calcule a área total em hectares dos polígonos que representam áreas de desmatamento e que estão dentro de um raio de 10 km de um ponto específico."
caminho_gguf = "./terramodel-7b-q4_k_m.gguf"
sql_gerado = generate_spatial_query(pergunta, caminho_gguf)
print("Query Gerada:\n", sql_gerado)
📊 Avaliação e Desempenho
O modelo foi submetido a um rigoroso benchmark empírico. A versão TerraModel 7B Q8 atingiu uma Acurácia de Execução de 82,00% no PostGIS, superando APIs comerciais como o GPT-4o-mini em cenários de inferência zero-shot focados no esquema do projeto.
Para aprofundamento metodológico, métricas de taxa de transferência (throughput) e validação semântica sistêmica (RAGAS), consulte o artigo científico vinculado a este projeto.
🔗 Conjunto de Dados e Reprodutibilidade
O dataset sintético com as 3.000 amostras (pares NL-SQL) utilizadas para a injeção de conhecimento topológico e os scripts de benchmark estão disponíveis no repositório do GitHub:
- Downloads last month
- 48
4-bit
8-bit