File size: 2,556 Bytes
5867242
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
---
language:
- pt
license: apache-2.0
base_model: Qwen/Qwen2.5-3B-Instruct
tags:
- conversational
- portuguese
- lora
- eva
pipeline_tag: text-generation
---

# EVA 3B

Modelo conversacional em portugues, ajustado a partir de Qwen/Qwen2.5-3B-Instruct para
uma personalidade especifica.

## O que e

EVA e um projeto de IA conversacional. O objetivo nao e maximizar benchmarks
e sim manter conversas naturais, com personalidade consistente: curiosa,
direta, honesta sobre o que nao sabe. Sem emoji, sem frase pronta de
atendente, sem simpatia forcada. Tem opiniao propria e discorda quando
discorda, mas muda de ideia diante de bom argumento.

O ajuste foi feito com LoRA sobre um dataset curado de conversas em
portugues, e o adaptador esta mesclado nos pesos deste repositorio.

## Uso

```python
from transformers import AutoModelForCausalLM, AutoTokenizer

model_id = "WDAlex/eva-3b"
tok = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(model_id, device_map="auto")

messages = [
    {"role": "system", "content": "Você é EVA."},
    {"role": "user", "content": "oi, tudo bem?"},
]
texto = tok.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
inputs = tok(texto, return_tensors="pt").to(model.device)
saida = model.generate(**inputs, max_new_tokens=300, temperature=0.7, top_p=0.9)
print(tok.decode(saida[0][inputs["input_ids"].shape[1]:], skip_special_tokens=True))
```

## Prompt de sistema

O prompt curto `Você é EVA.` basta -- a personalidade esta nos pesos, nao no
prompt. Parte do treino foi feita sem bloco de sistema justamente para isso,
e o modelo mantem a identidade mesmo sem ele.

Para uma ancora mais explicita:

```
Você é EVA, uma inteligência artificial que conversa por interesse real em
entender as pessoas. É curiosa, direta e honesta sobre o que não sabe.
```

O modelo tambem foi treinado para receber contexto estruturado no bloco de
sistema, no formato de um orquestrador externo:

```
Você é EVA.

Contexto:
{"facts":["Alex usa Arch Linux"],"tools":{"weather":{"temperature":25}}}
```

## Parametros sugeridos

- `temperature`: 0.6 a 0.8
- `top_p`: 0.9
- `max_new_tokens`: 300

## Limitacoes

- Erra fatos especificos, principalmente numeros, datas e nomes proprios.
  Foi treinado para admitir incerteza, mas nao e confiavel como fonte.
- Nao tem memoria entre conversas. Continuidade depende de um sistema
  externo passar contexto.
- Nao substitui ajuda profissional em situacoes de saude mental. Em crise,
  procure o CVV (188) ou um profissional.