Downloads · 30 days
3
3% of all-time downloads
Kruliel/shikkaku
shikkaku is a machine learning model from Kruliel. Use it for the machine learning task on the model card, and read the license before you ship it in a product. It is set up for peft. The card lists the license as apache-2.0.
[](https://opensource.org/licenses/Apache-2.0) [](https://huggingface.co/google/gemma-4-E2B-it) []()
Downloads · 30 days
3
3% of all-time downloads
All-time downloads
104
Public
Repo size
134 MB
Likes
0
Public
Click a slice to open those files.
.safetensors101 MB · 76%
From the Hugging Face model README
Este modelo também está disponível quantizado em formato GGUF para execução local/Ollama em: 👉 Kruliel/shikkaku-gguf
Shikkaku é um assistente de escrita criativa em Português, construído sobre o Gemma 4 E2B da Google e especializado através de múltiplas rodadas de fine-tuning focadas em narrativa, análise textual e desenvolvimento criativo.
O nome é uma referência a Ningen Shikkaku (人間失格 — Desqualificado como Ser Humano), obra seminal de Osamu Dazai. Assim como a obra explora a condição humana com honestidade brutal, o Shikkaku foi treinado para dar feedback direto, específico e real — sem elogios vazios, sem respostas genéricas.
O modelo não foi treinado para responder sobre programação, matemática ou assuntos técnicos.
Fine-tuning com LoRA/QLoRA usando Unsloth no Google Colab (GPU T4), em 4 rodadas progressivas:
| Rodada | Dataset | Exemplos | Épocas | Objetivo |
|---|---|---|---|---|
| 1 | Nitral-AI/Creative_Writing-ShareGPT | 800 | 2 | Base em escrita criativa de alta qualidade |
| 2 | euclaise/writingprompts | 600 | 2 | Histórias humanas do r/WritingPrompts |
| 3 | theprint/TextAnalysis | 77 | 3 | Técnica literária e análise narrativa |
| 4 | Dataset DZP (próprio) | 206 | 2 | Análise crítica de escrita em Português |
A Rodada 4 com dataset próprio é o que define a voz e o estilo do modelo — respostas diretas, específicas, que ensinam algo concreto.
Requisitos:
pip install transformers peft torch accelerate
Código:
from transformers import AutoTokenizer, AutoModelForCausalLM
from peft import PeftModel
import torch
# Carregar modelo base
base_model = AutoModelForCausalLM.from_pretrained(
"google/gemma-4-E2B-it",
torch_dtype=torch.float16,
device_map="auto",
)
tokenizer = AutoTokenizer.from_pretrained("google/gemma-4-E2B-it")
# Carregar adaptadores Shikkaku
model = PeftModel.from_pretrained(base_model, "Kruliel/shikkaku")
# Conversa
messages = [
{
"role": "system",
"content": "Você é um assistente especialista em escrita criativa. Seu foco é narrativa, personagens, emoção e estrutura dramática. Evite respostas genéricas — seja específico e construtivo."
},
{
"role": "user",
"content": "Analise esse trecho: 'João estava com medo. Ele correu. O monstro era assustador.'"
}
]
inputs = tokenizer.apply_chat_template(
messages,
tokenize=True,
add_generation_prompt=True,
return_tensors="pt"
).to(model.device)
outputs = model.generate(
input_ids=inputs,
max_new_tokens=300,
temperature=0.8,
do_sample=True,
)
new_tokens = outputs[0][inputs.shape[1]:]
print(tokenizer.decode(new_tokens, skip_special_tokens=True))
Usuário: Meu personagem principal não tem falhas. Como posso torná-lo mais humano sem deixá-lo fraco?
Shikkaku: Personagens sem falhas geralmente são planos demais. A humanidade nasce da luta, não da perfeição. Para tornar seu personagem humano sem enfraquecê-lo, apresente falhas que tenham consequências reais e justas.
Em vez de simplesmente dizer que ele é impulsivo, mostre como essa impulsividade prejudica relacionamentos importantes. Em vez de apenas dizer que ele é corajoso, mostre o custo emocional de cada ato corajoso.
As falhas devem ser consistentes com a personalidade do personagem. Um personagem preguiçoso não pode ser heroico sem que isso custe algo significativo. O ponto crucial é a motivação — um personagem humano sempre age por motivações complexas, não apenas por virtude.
Apache 2.0 — herdada do Gemma 4. Uso comercial permitido com atribuição.
Shikkaku is a creative writing assistant in Portuguese, built on Google's Gemma 4 E2B and specialized through multiple fine-tuning rounds focused on narrative craft, textual analysis, and creative development.
The name references Ningen Shikkaku (人間失格 — No Longer Human), a seminal work by Osamu Dazai. Just as the novel explores the human condition with brutal honesty, Shikkaku was trained to give direct, specific, and real feedback — no empty praise, no generic responses.
The model was not trained to answer questions about programming, mathematics, or technical subjects.
Fine-tuned with LoRA/QLoRA using Unsloth on Google Colab (T4 GPU), in 4 progressive rounds:
| Round | Dataset | Examples | Epochs | Goal |
|---|---|---|---|---|
| 1 | Nitral-AI/Creative_Writing-ShareGPT | 800 | 2 | High quality creative writing foundation |
| 2 | euclaise/writingprompts | 600 | 2 | Human stories from r/WritingPrompts |
| 3 | theprint/TextAnalysis | 77 | 3 | Literary technique and narrative analysis |
| 4 | DZP Dataset (custom) | 206 | 2 | Critical writing analysis in Portuguese |
Round 4 with the custom dataset defines the model's voice and style — direct, specific responses that teach something concrete.
Requirements:
pip install transformers peft torch accelerate
Code:
from transformers import AutoTokenizer, AutoModelForCausalLM
from peft import PeftModel
import torch
# Load base model
base_model = AutoModelForCausalLM.from_pretrained(
"google/gemma-4-E2B-it",
torch_dtype=torch.float16,
device_map="auto",
)
tokenizer = AutoTokenizer.from_pretrained("google/gemma-4-E2B-it")
# Load Shikkaku adapters
model = PeftModel.from_pretrained(base_model, "Kruliel/shikkaku")
# Chat
messages = [
{
"role": "system",
"content": "Você é um assistente especialista em escrita criativa. Seu foco é narrativa, personagens, emoção e estrutura dramática. Evite respostas genéricas — seja específico e construtivo."
},
{
"role": "user",
"content": [{"type": "text", "text": "How do I write a compelling villain?"}]
}
]
inputs = tokenizer.apply_chat_template(
messages,
tokenize=True,
add_generation_prompt=True,
return_tensors="pt"
).to(model.device)
outputs = model.generate(
input_ids=inputs,
max_new_tokens=300,
temperature=0.8,
do_sample=True,
)
new_tokens = outputs[0][inputs.shape[1]:]
print(tokenizer.decode(new_tokens, skip_special_tokens=True))
Apache 2.0 — inherited from Gemma 4. Commercial use permitted with attribution.
Shikkaku — "Desqualificado como Ser Humano" / "No Longer Human" — Osamu Dazai, 1948
Built by Kruliel