Instructions to use henriqueimoveis/Echoes-0.1 with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use henriqueimoveis/Echoes-0.1 with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="henriqueimoveis/Echoes-0.1", trust_remote_code=True)# Load model directly from transformers import AutoModelForCausalLM model = AutoModelForCausalLM.from_pretrained("henriqueimoveis/Echoes-0.1", trust_remote_code=True, dtype="auto") - Notebooks
- Google Colab
- Kaggle
- Local Apps
- vLLM
How to use henriqueimoveis/Echoes-0.1 with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "henriqueimoveis/Echoes-0.1" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "henriqueimoveis/Echoes-0.1", "prompt": "Once upon a time,", "max_tokens": 512, "temperature": 0.5 }'Use Docker
docker model run hf.co/henriqueimoveis/Echoes-0.1
- SGLang
How to use henriqueimoveis/Echoes-0.1 with SGLang:
Install from pip and serve model
# Install SGLang from pip: pip install sglang # Start the SGLang server: python3 -m sglang.launch_server \ --model-path "henriqueimoveis/Echoes-0.1" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "henriqueimoveis/Echoes-0.1", "prompt": "Once upon a time,", "max_tokens": 512, "temperature": 0.5 }'Use Docker images
docker run --gpus all \ --shm-size 32g \ -p 30000:30000 \ -v ~/.cache/huggingface:/root/.cache/huggingface \ --env "HF_TOKEN=<secret>" \ --ipc=host \ lmsysorg/sglang:latest \ python3 -m sglang.launch_server \ --model-path "henriqueimoveis/Echoes-0.1" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "henriqueimoveis/Echoes-0.1", "prompt": "Once upon a time,", "max_tokens": 512, "temperature": 0.5 }' - Docker Model Runner
How to use henriqueimoveis/Echoes-0.1 with Docker Model Runner:
docker model run hf.co/henriqueimoveis/Echoes-0.1
Echoes-0.1
Echoes-0.1 é uma continuação do treinamento (continued pretraining + SFT) do Echoes-0 original. É a mesma arquitetura GPT-2 pequena (≈124M parâmetros, 12 camadas, 768 de hidden, vocab 32k, contexto 256), só que tendo visto bem mais tokens em PT-BR e passado por uma rodada de SFT pra responder em formato Pergunta/Resposta.
Disclaimer pré-leitura. Esse modelo continua sendo, no fundo, uma arquitetura GPT-2 pequena e ainda undertrained. Eu não tenho 9 trilhões de H100, não tenho cluster, não tenho TPU. Tenho uma RTX 4060 de 8GB e bastante café. Se você esperava o GPT-4 brasileiro, esse não é o modelo. Se você esperava ver alguém fazendo continued pretraining + SFT em casa num GPT-2, com Muon como otimizador e um pipeline meio doido pra fingir que tem mais VRAM do que tem, esse é o modelo certo.
O que mudou em relação ao Echoes-0
O Echoes-0 era um modelo só pretreinado, com pouco volume de dados em PT-BR e nenhum SFT. A versão 0.1 foi treinada em duas fases adicionais:
- Continued pretraining em ~360M de tokens de corpus PT-BR diversificado (mistura de fontes web, blogs, literatura, jurídico e PDFs educativos), para estender o conhecimento de língua e o vocabulário ativo.
- SFT em ~470k exemplos de instrução estilo Alpaca em português
(
gabrielcampos505/ultra-alpaca-ptbr) somados a paráfrases de identidade reforçadas, para o modelo responder em formatoPergunta: ... Resposta: ....
Tudo isso treinado localmente numa RTX 4060 8GB usando NorMuon (variante prática do Muon de Keller Jordan) com gradient streaming chunked e activation offload suave, sem distributed training, sem FSDP, sem nada chique.
Limitações honestas
- Aritmética simples não funciona. Não confie em nada matemático.
- Conhecimento factual é raso e enviesado pro Brasil (ele provavelmente vai responder "Franca, SP" se você perguntar sobre "a capital da França").
- Janela de contexto é de 256 tokens apenas. É um modelo pequeno mesmo.
- Tokenizer não conhece newline (
\nvira<unk>). Por isso o formato SFT fica todo em uma linha só. - Algumas respostas vão ter "vazamento de personalidade GPT" do dataset de SFT, porque o ultra-alpaca-ptbr tem completions geradas por modelos OpenAI.
Como usar
import torch
from transformers import AutoTokenizer, AutoModelForCausalLM
tok = AutoTokenizer.from_pretrained("henriqueimoveis/Echoes-0.1", trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained(
"henriqueimoveis/Echoes-0.1",
trust_remote_code=True,
torch_dtype=torch.bfloat16,
).to("cuda")
prompt = "Pergunta: Quem te criou? Resposta:"
inputs = tok(prompt, return_tensors="pt").to("cuda")
out = model.generate(
**inputs,
max_new_tokens=80,
temperature=0.7,
top_p=0.9,
repetition_penalty=1.05,
do_sample=True,
eos_token_id=tok.eos_token_id,
)
print(tok.decode(out[0], skip_special_tokens=True))
Formato do prompt
O SFT foi treinado em uma linha só, com marcadores em português:
Pergunta: {sua pergunta aqui} Resposta:
O modelo gera a resposta e termina em </s>.
Detalhes técnicos do treino
| Etapa | Otimizador | LR | Tokens vistos | Hardware |
|---|---|---|---|---|
| CPT base (Echoes-0) | NorMuon | — | — | (treino original) |
| Continued pretrain | NorMuon | 6e-4 (cosine) | ~360M | 1× RTX 4060 8GB |
| SFT | NorMuon | 5e-4 (cosine) | ~16M | 1× RTX 4060 8GB |
Estado dos optimizadores em fp32, pesos em bf16, NS5 com 5 iterações, bias correction no row variance do NorMuon, embeddings tied roteados pelo mesmo path do Muon.
Quem fez
O Echoes é um projeto pessoal de alguém que decidiu que ia treinar LLM em casa nem que fosse o último GPT-2 do mundo. Continua sendo um aprendizado em público. A próxima versão (Echoes-1) vai ser uma arquitetura mais maluca: híbrido Mamba+attention, talvez com um toque de diffusion. Aí provavelmente vai dar muito errado, mas vai dar errado de um jeito mais interessante.
Licença
Apache 2.0. Faz o que quiser, só não me processa.
- Downloads last month
- 40
Model tree for henriqueimoveis/Echoes-0.1
Base model
henriqueimoveis/Echoes-0