--- license: apache-2.0 base_model: HuggingFaceTB/SmolLM2-1.7B-Instruct tags: - generated_from_trainer - espiritismo - portuguese - fine-tuned - peft - lora model-index: - name: SmolLM2-1.7B-Espirita results: [] --- # SmolLM2-1.7B-Espirita Este modelo é uma versão fine-tuned do [HuggingFaceTB/SmolLM2-1.7B-Instruct](https://huggingface.co/HuggingFaceTB/SmolLM2-1.7B-Instruct) usando LoRA (Low-Rank Adaptation) em um dataset de obras espíritas em português. ## Descrição do Dataset O modelo foi treinado em um dataset contendo 12.842 pares de instrução-resposta extraídos de 11 obras clássicas do espiritismo: - **Evangelho Redivivo** (Livros 1-5) - **O Livro dos Espíritos** - **O Livro dos Médiuns** - **O Céu e o Inferno** - **O Evangelho Segundo o Espiritismo** - **O que é o Espiritismo** - **Obras Póstumas** ## Configuração do Treinamento - **Modelo Base**: HuggingFaceTB/SmolLM2-1.7B-Instruct - **Método**: LoRA (Low-Rank Adaptation) - **Quantização**: 4-bit - **Épocas**: 3 - **Batch Size**: 4 - **Learning Rate**: 2e-4 - **Max Length**: 512 tokens - **LoRA Rank**: 16 - **LoRA Alpha**: 32 ## Como Usar ```python from transformers import AutoTokenizer, AutoModelForCausalLM from peft import PeftModel import torch # Carrega o modelo base base_model = AutoModelForCausalLM.from_pretrained( "HuggingFaceTB/SmolLM2-1.7B-Instruct", torch_dtype=torch.float16, device_map="auto" ) # Carrega o tokenizer tokenizer = AutoTokenizer.from_pretrained("HuggingFaceTB/SmolLM2-1.7B-Instruct") # Carrega os adaptadores LoRA model = PeftModel.from_pretrained(base_model, "elissoncardoso1/SmolLM2-1.7B-Espirita") # Função para gerar resposta def gerar_resposta(pergunta, max_length=256): prompt = f"Pergunta: {pergunta}\nResposta:" inputs = tokenizer(prompt, return_tensors="pt", truncation=True, max_length=512) with torch.no_grad(): outputs = model.generate( **inputs, max_length=max_length, temperature=0.7, do_sample=True, pad_token_id=tokenizer.eos_token_id ) response = tokenizer.decode(outputs[0], skip_special_tokens=True) return response.split("Resposta:")[-1].strip() # Exemplo de uso pergunta = "O que é a reencarnação segundo o espiritismo?" resposta = gerar_resposta(pergunta) print(resposta) ``` ## Limitações - O modelo foi treinado especificamente em conteúdo espírita em português - Pode não ter conhecimento atualizado sobre eventos recentes - As respostas refletem o conteúdo das obras utilizadas no treinamento ## Licença Este modelo está licenciado sob Apache 2.0. O conteúdo das obras espíritas utilizadas está em domínio público.