CoolFace
Modelpublic

BrCamp/bee-350m-pt-base

sourceHugging Faceapache-2.0updated 1mo agoView on Hugging Face
0likes1.6kdownloads
Model Card

Bee-350M PT (base)

Modelo de linguagem de 345,4M parametros pre-treinado do zero em portugues, com tokenizador proprio de 32k. Nao e' fine-tune de nada: pesos aleatorios -> 21,75B tokens.

Este e' o modelo BASE. Ele nao segue instrucoes — para isso e' preciso SFT.

Resultado medido

bits-por-byte (bpb) num holdout limpo do fineweb-2 PT (400 documentos, sha256 2273c5e4…9663e028c). Menor e' melhor. bpb e' agnostico ao tokenizador, entao compara modelos com vocabularios diferentes de forma justa.

modeloparametrostokenstok/parambpb
Bee-350M (este)345,4M21,75B630,8207
Bee-150M151,2M21,75B1430,8438

O Bee-350M supera o Bee-150M em 2,76% usando 3,3x menos tokens por parametro.

Como foi treinado

arquiteturaLlama-like, 32 camadas, d_model 960, 15q/5kv GQA, intermediate 2560
contexto2048 tokens
corpus21,75B tokens de portugues (fineweb-2 PT + dominio publico)
scheduleWSD — warmup 2%, plato em 55% do pico, decaimento 1-sqrt(t) nos ultimos 20%
LR de pico2,181e-03 (Step Law)
hardware1x RTX 5090, 115,5 h
custo~US$ 118

O que aprendemos treinando ele

Dois resultados medidos que valem mais que o modelo:

  1. 1.O decaimento de LR vale ~10% de bpb. O mesmo modelo, nos mesmos 15,00B tokens, mede 0,9167 no plato e 0,8223 decaido. Comparar marcos intermediarios de modelos com schedules diferentes mede o schedule, nao o modelo.
  2. 2.O volume de tokens saturou antes da escala. 15,00B -> 21,75B (+45% de dado) rendeu 0,19% de bpb. Ja 151M -> 345M parametros rendeu 2,76%.

Limitacoes

  • Modelo base: nao segue instrucoes, nao conversa, nao usa ferramentas.
  • 345M parametros e 2048 de contexto — alucina fatos com facilidade.
  • Treinado predominantemente em web PT; herda os vieses dessa fonte.
  • bpb mede modelagem de linguagem. Fluencia de resposta e uso de ferramenta so' se medem pos-SFT, por execucao.

Uso

python
from transformers import AutoModelForCausalLM, AutoTokenizer

tok = AutoTokenizer.from_pretrained("BrCamp/bee-350m-pt-base")
modelo = AutoModelForCausalLM.from_pretrained("BrCamp/bee-350m-pt-base")
ids = tok("O Brasil e' um pais", return_tensors="pt")
print(tok.decode(modelo.generate(**ids, max_new_tokens=40)[0]))