Instructions to use Kruliel/shikkaku with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- PEFT
How to use Kruliel/shikkaku with PEFT:
from peft import PeftModel from transformers import AutoModelForCausalLM base_model = AutoModelForCausalLM.from_pretrained("unsloth/gemma-4-e2b-it-unsloth-bnb-4bit") model = PeftModel.from_pretrained(base_model, "Kruliel/shikkaku") - Notebooks
- Google Colab
- Kaggle
license: apache-2.0
base_model: google/gemma-4-E2B-it
language:
- pt
- en
tags:
- creative-writing
- fine-tuned
- lora
- peft
- gemma
- storytelling
- escrita-criativa
Shikkaku — Creative Writing Assistant / Assistente de Escrita Criativa
🚀 Formatos Alternativos
Este modelo também está disponível quantizado em formato GGUF para execução local/Ollama em: 👉 Kruliel/shikkaku-gguf
🇧🇷 Português
O que é o Shikkaku?
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.
Para que serve?
- Análise de trechos: identifica problemas de ritmo, diálogo, caracterização, show vs tell
- Feedback construtivo: explica o que não funciona e por quê, com sugestões práticas
- Desenvolvimento criativo: ajuda a desenvolver personagens, arcos narrativos, atmosfera
- Coaching de escrita: orienta sobre técnicas literárias com fundamento narrativo
- Brainstorming: sugere múltiplas direções criativas em vez de uma única resposta
O modelo não foi treinado para responder sobre programação, matemática ou assuntos técnicos.
Como foi treinado?
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.
Como usar?
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))
Exemplo de conversa
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.
Limitações
- Modelo base de 2B parâmetros — respostas mais curtas e menos elaboradas que modelos maiores
- Treinado principalmente para Português; respostas em inglês são funcionais mas menos refinadas
- Dataset próprio de 206 exemplos — o estilo é consistente mas o vocabulário temático é limitado
- Não tem conhecimento de eventos após agosto de 2025 (corte do Gemma 4)
Licença
Apache 2.0 — herdada do Gemma 4. Uso comercial permitido com atribuição.
🇺🇸 English
What is Shikkaku?
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.
What can it do?
- Text analysis: identifies issues with pacing, dialogue, characterization, show vs tell
- Constructive feedback: explains what doesn't work and why, with practical suggestions
- Creative development: helps develop characters, narrative arcs, atmosphere
- Writing coaching: guides on literary techniques with narrative foundation
- Brainstorming: suggests multiple creative directions instead of a single answer
The model was not trained to answer questions about programming, mathematics, or technical subjects.
Training Details
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.
How to use?
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))
Limitations
- 2B parameter base model — shorter and less elaborate responses than larger models
- Primarily trained in Portuguese; English responses are functional but less refined
- Custom dataset of 206 examples — style is consistent but thematic vocabulary is limited
- No knowledge of events after August 2025 (Gemma 4 cutoff)
License
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