Downloads · 30 days
8
9% of all-time downloads
henriqueimoveis/Echoes-0.1
Echoes-0.1 is a text generation model from henriqueimoveis. Use it when you need the model to write or continue text. It is set up for transformers. The card lists the license as apache-2.0.
Downloads · 30 days
8
9% of all-time downloads
All-time downloads
85
Public
Parameters
134M
271 MB on disk
Likes
0
Public
Click a slice to open those files.
.safetensors269 MB · 98%
From the Hugging Face model README

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 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:
gabrielcampos505/ultra-alpaca-ptbr) somados a paráfrases de identidade
reforçadas, para o modelo responder em formato Pergunta: ... 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.
\n vira <unk>). Por isso o formato SFT
fica todo em uma linha só.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))
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>.
| 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.
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.
Apache 2.0. Faz o que quiser, só não me processa.