
# Canarim 7B - GGUF
- Criador do Modelo: [Maicon Domingues](https://nlp.rocks/)
- Modelo Original: [Canarim-7B](https://huggingface.co/dominguesm/canarim-7b)

Estes modelos não foram treinados para seguir instruções (instruction tuning). Ou seja, eles não são chatbots. Eles funcionam bem em tarefas few-shot: você passa exemplos de entrada e saída, seguidos por um novo exemplo de entrada, daí o modelo gera o texto complementar (a resposta).

## Arquivos Incluídos

| Nome | Método Quant | Bits | Tamanho  | Desc |
| ---- | ---- | ---- | ---- | ----- |
| [canarim7b-q2_k.gguf](https://huggingface.co/lucianosb/canarim-7b-GGUF/blob/main/canarim7b-q2_k.gguf) | q2_K | 2 | 2.83 GB | Quantização em 2-bit. Significativa perda de qualidade. Não-recomendado. |
| [canarim7b-q3_k_m.gguf](https://huggingface.co/lucianosb/canarim-7b-GGUF/blob/main/canarim7b-q3_k_m.gguf) | q3_K_M| 3 | 3.3 GB | Quantização em 3-bit. |
| [canarim7b-q3_k_s.gguf](https://huggingface.co/lucianosb/canarim-7b-GGUF/blob/main/canarim7b-q3_k_s.gguf) | q3_K_S | 3 | 2.95 GB | Quantização em 3-bit. |
| [canarim7b-q4_0.gguf](https://huggingface.co/lucianosb/canarim-7b-GGUF/blob/main/canarim7b-q4_0.gguf) | q4_0 | 4 | 3.83 GB | Quantização em 4-bit. Prefira usar o Q3_K_M|
| [canarim7b-q4_k_s.gguf](https://huggingface.co/lucianosb/canarim-7b-GGUF/blob/main/canarim7b-q4_k_s.gguf) | q4_K_S | 4 | 3.86 GB | Quantização em 4-bit. |
| [canarim7b-q3_k_l.gguf](https://huggingface.co/lucianosb/canarim-7b-GGUF/blob/main/canarim7b-q3_k_l.gguf) | q3_K_L | 3 | 3.6 GB | Quantização em 3-bit com menor perda de qualidade. |
| [canarim7b-q4_k_m.gguf](https://huggingface.co/lucianosb/canarim-7b-GGUF/blob/main/canarim7b-q4_k_m.gguf) | q4_K_M | 4 | 4.08 GB | Quantização em 4-bit. |
| [canarim7b-q4_1.gguf](https://huggingface.co/lucianosb/canarim-7b-GGUF/blob/main/canarim7b-q4_1.gguf) | q4_1 | 4 | 4.24 GB | Quantização em 4-bit. Acurácia maior que q4_0 mas não tão boa quanto q5_0. Inferência mais rápida que os modelos q5. |
| [canarim7b-q5_0.gguf](https://huggingface.co/lucianosb/canarim-7b-GGUF/blob/main/canarim7b-q5_0.gguf) | q5_0 | 5 | 4.65 GB | Quantização em 5-bit. Melhor acurácia, maior uso de recursos, inferência mais lenta. |
| [canarim7b-q5_1.gguf](https://huggingface.co/lucianosb/canarim-7b-GGUF/blob/main/canarim7b-q5_1.gguf) | q5_1 | 5 | 5.06 GB | Quantização em 5-bit. Ainda Melhor acurácia, maior uso de recursos, inferência mais lenta. |
| [canarim7b-q5_k_m.gguf](https://huggingface.co/lucianosb/canarim-7b-GGUF/blob/main/canarim7b-q5_k_m.gguf) | q5_K_M | 5 | 4.78 GB | Quantização em 5-bit. Melhor performance. Recomendado. |
| [canarim7b-q5_k_s.gguf](https://huggingface.co/lucianosb/canarim-7b-GGUF/blob/main/canarim7b-q5_k_s.gguf) | q5_K_S | 5 | 4.65 GB | Quantização em 5-bit. |
| [canarim7b-q6_k.gguf](https://huggingface.co/lucianosb/canarim-7b-GGUF/blob/main/canarim7b-q6_k.gguf) | q6_K | 6 | 5.53 GB | Quantização em 6-bit. |
| [canarim7b-q8_0.gguf](https://huggingface.co/lucianosb/canarim-7b-GGUF/blob/main/canarim7b-q8_0.gguf) | q8_0 | 8 | 7.16 GB | Quantização em 8-bit. Quase indistinguível do float16. Usa muitos recursos e é mais lento. |

**Observação**: os valores de RAM acima não pressupõem descarregamento de GPU. Se as camadas forem descarregadas para a GPU, isso reduzirá o uso de RAM e usará VRAM.

## Como executar com `llama.cpp`

Usei o seguinte comando. Para melhores resultados forneça exemplos de resultados esperados. Exemplo:

> Complete a classificação da última frase de acordo com os exemplos fornecidos.
> 
> Isso é demais! // Negativo
> 
> Isso é ruim! // Positivo
> 
> Que filme maravilhoso! // Positivo
> 
> Que série horrível! //

```
./main -m ./models/canarim-7b-GGUF/canarim7b-q5_1.gguf --color --temp 0.5 -n 256 -p "### Instrução: {comando} ### Resposta:"
```

Para compreender os parâmetros, veja [a documentação do llama.cpp](https://github.com/ggerganov/llama.cpp/blob/master/examples/main/README.md)

Experimente gratuitamente no Google Colab: [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/lucianosb/canarim-notebooks/blob/main/canarim_7b_llamacpp_5_k_m.ipynb)

## Sobre o formato GGUF

GGUF é um novo formato introduzido pela equipe llama.cpp em 21 de agosto de 2023. É um substituto para o GGML, que não é mais suportado pelo llama.cpp.

O principal benefício do GGUF é que ele é um formato extensível e à prova de futuro que armazena mais informações sobre o modelo como metadados. Ele também inclui código de tokenização significativamente melhorado, incluindo pela primeira vez suporte total para tokens especiais. Isso deve melhorar o desempenho, especialmente com modelos que usam novos tokens especiais e implementam modelos de prompt personalizados.

Aqui está uma lista de clientes e bibliotecas que são conhecidos por suportar GGUF:

- [llama.cpp](https://github.com/ggerganov/llama.cpp).
- [ollama](https://ollama.ai/) - servidor com interfaces REST e CLI
- [Faraday.dev](https://faraday.dev/) - App para Windows e Mac
- [lollms-webui](https://github.com/ParisNeo/lollms-webui) - Lord of Large Language Models Web User Interface
- [text-generation-webui](https://github.com/oobabooga/text-generation-webui), a interface web mais amplamente utilizada. Suporta GGUF com aceleração GPU via backend ctransformers - backend llama-cpp-python deve funcionar em breve também.
- [KoboldCpp](https://github.com/LostRuins/koboldcpp), agora suporta GGUF a partir da versão 1.41! Uma poderosa interface web GGML, com aceleração total da GPU. Especialmente bom para contar histórias.
- [LM Studio](https://lmstudio.ai), versão 0.2.2 e posteriores suportam GGUF. Uma GUI local totalmente equipada com aceleração GPU em ambos Windows (NVidia e AMD) e macOS.
- [LoLLMS Web UI](https://github.com/ParisNeo/lollms-webui), agora deve funcionar, escolha o backend c_transformers. Uma ótima interface web com muitos recursos interessantes. Suporta aceleração GPU CUDA.
- [ctransformers](https://github.com/marella/ctransformers), agora suporta GGUF a partir da versão 0.2.24! Uma biblioteca Python com aceleração GPU, suporte LangChain e servidor AI compatível com OpenAI.
- [llama-cpp-python](https://github.com/abetlen/llama-cpp-python), suporta GGUF a partir da versão 0.1.79. Uma biblioteca Python com aceleração GPU, suporte LangChain e servidor API compatível com OpenAI.
- [candle](https://github.com/huggingface/candle), adicionou suporte GGUF em 22 de agosto. Candle é um framework ML Rust com foco em desempenho, incluindo suporte GPU e facilidade de uso.
- [LocalAI](https://github.com/go-skynet/LocalAI), adicionou suporte GGUF em 23 de agosto. LocalAI provê uma API Rest para modelos LLM e de geração de imagens.

## Template

````
### Instrução:
{prompt}

### Resposta:
````
{"language": ["pt"], "license": "llama2", "model_name": "Canarim 7B", "inference": false, "model_creator": "Maicon Domingues", "model_link": "https://huggingface.co/dominguesm/canarim-7b", "model_type": "llama", "quantized_by": "lucianosb", "pipeline_tag": "text-generation"}
gguf text-generation pt license:llama2 region:us