ChillTranslator / README.md
lukestanley's picture
Improve metadata
cbb7874 verified
---
title: ❄️ ChillTranslator 🤬 ➡️ 😎💬
emoji: ❄️
colorFrom: red
colorTo: blue
base_model: microsoft/phi-2
tags:
- finetune
- synthetic
- translation
language:
- en
pipeline_tag: text-generation
---
# ❄️ ChillTranslator 🤬 ➡️ 😎💬
## Overview
ChillTranslator uses Microsoft's Phi 2 as the base model. It's been fine-tuned on a dataset made up of calm versions of internet comments. These comments are meant to be output as JSON with a grammar specified.
## Intent
The project is an experiment in how we can use AI to tone down heated online comments that are worth discussing, steering clear of pure hate speech (not much can be done for that, I suppose). It's an exploration into creating tools that could help make online discussions more constructive.
## Model Details
- **Base Model**: Microsoft Phi 2, chosen for its efficiency and capability in language understanding and generation.
- **Fine-tuning**: Performed on a curated dataset designed to encourage more respectful and thoughtful online interactions.
- **File Info**: The model file `ChillTranslator_Q4_K_M.gguf` is under 2 GB and works with `llama.cpp`. It’s meant to run with a grammar file, producing JSON objects to ensure it generates only the requested output.
## Example Usage
This is an example of how to run `ChillTranslator` with the necessary options:
```bash
llama.cpp/main -m ChillTranslator_Q4_K_M.gguf --interactive-first --grammar-file ChillTranslator.grammar
```
And here's a snippet of a llama.cpp grammar` file that makes it produce more predictable output:
```plaintext
root ::= TextRevision
BetterTerm ::= "{" ws "\"old\":" ws string "," ws "\"new\":" ws stringlist "}"
BetterTermlist ::= "[]" | "[" ws BetterTerm ("," ws BetterTerm)* "]"
TextRevision ::= "{" ws "\"better_terms\":" ws BetterTermlist "," ws "\"minimal_fix\":" ws string "," ws "\"nvc_perspective\":" ws string "," ws "\"constructive\":" ws string "," ws "\"hybrid\":" ws string "," ws "\"final\":" ws string ws "}"
TextRevisionlist ::= "[]" | "[" ws TextRevision ("," ws TextRevision)* "]"
string ::= "\"" ([^"]*) "\""
boolean ::= "true" | "false"
ws ::= [ \t\n]*
number ::= [0-9]+ "."? [0-9]*
stringlist ::= "[" ws "]" | "[" ws string ("," ws string)* ws "]"
numberlist ::= "[" ws "]" | "[" ws number ("," ws number)* ws "]"
```