<?xml version="1.0" encoding="utf-8"?><!DOCTYPE article  PUBLIC '-//OASIS//DTD DocBook XML V4.4//EN'  'http://www.docbook.org/xml/4.4/docbookx.dtd'><article><articleinfo><title>DEPOTx</title><revhistory><revision><revnumber>18</revnumber><date>2022-07-15 20:30:32</date><authorinitials>MaciejOgrodniczuk</authorinitials></revision><revision><revnumber>17</revnumber><date>2022-06-23 14:58:18</date><authorinitials>MaciejOgrodniczuk</authorinitials></revision><revision><revnumber>16</revnumber><date>2022-06-23 14:57:57</date><authorinitials>MaciejOgrodniczuk</authorinitials></revision><revision><revnumber>15</revnumber><date>2022-06-08 10:17:41</date><authorinitials>MaciejOgrodniczuk</authorinitials></revision><revision><revnumber>14</revnumber><date>2022-05-23 12:56:05</date><authorinitials>MaciejOgrodniczuk</authorinitials></revision><revision><revnumber>13</revnumber><date>2022-04-11 17:44:30</date><authorinitials>MaciejOgrodniczuk</authorinitials></revision><revision><revnumber>12</revnumber><date>2022-02-17 18:42:00</date><authorinitials>MaciejOgrodniczuk</authorinitials></revision><revision><revnumber>11</revnumber><date>2022-01-21 14:23:46</date><authorinitials>MaciejOgrodniczuk</authorinitials></revision><revision><revnumber>10</revnumber><date>2022-01-21 11:21:23</date><authorinitials>MaciejOgrodniczuk</authorinitials></revision><revision><revnumber>9</revnumber><date>2022-01-21 11:19:08</date><authorinitials>MaciejOgrodniczuk</authorinitials></revision><revision><revnumber>8</revnumber><date>2022-01-21 11:17:06</date><authorinitials>MaciejOgrodniczuk</authorinitials></revision><revision><revnumber>7</revnumber><date>2022-01-21 11:16:22</date><authorinitials>MaciejOgrodniczuk</authorinitials></revision><revision><revnumber>6</revnumber><date>2022-01-21 11:15:38</date><authorinitials>MaciejOgrodniczuk</authorinitials></revision><revision><revnumber>5</revnumber><date>2022-01-21 11:14:39</date><authorinitials>MaciejOgrodniczuk</authorinitials></revision><revision><revnumber>4</revnumber><date>2022-01-21 11:14:19</date><authorinitials>MaciejOgrodniczuk</authorinitials></revision><revision><revnumber>3</revnumber><date>2022-01-19 23:13:06</date><authorinitials>MaciejOgrodniczuk</authorinitials><revremark>Renamed from 'DEPOT'.</revremark></revision><revision><revnumber>2</revnumber><date>2022-01-19 13:29:49</date><authorinitials>MaciejOgrodniczuk</authorinitials></revision><revision><revnumber>1</revnumber><date>2022-01-19 13:27:51</date><authorinitials>MaciejOgrodniczuk</authorinitials></revision></revhistory></articleinfo><section><title>Devulgarization of Polish Texts</title><para>DEPOTx is a text style transfer framework for replacing vulgar expressions in Polish utterances with their non-vulgar equivalents while preserving the main characteristics of the text. The framework contains three pre-trained language models (GPT-2, GPT-3 and T-5) trained on a newly created parallel corpus of sentences containing vulgar expressions and their equivalents. The resulting models are evaluated by checking style transfer accuracy, content preservation and language quality. </para><section><title>Download</title><itemizedlist><listitem><para><ulink url="http://clip.ipipan.waw.pl/DEPOTx/DEPOTx?action=AttachFile&amp;do=get&amp;target=DEPOTx.zip">Data, scripts and examples</ulink> (please see README file for more information) </para></listitem><listitem><para><ulink url="http://mozart.ipipan.waw.pl/~cklamra/DEPOTx/models/">Models</ulink> (GPT-2, T5-base, T5-large) </para></listitem></itemizedlist><section><title>Requirements</title><para>Required packages can be installed by running: </para><screen><![CDATA[pip3 install -r requirements.txt]]></screen><para>Additionally, in order to run evaluation scripts, please install <ulink url="https://github.com/MarcinCiura/przetak">Przetak</ulink> and update the value of the <code>GOPATH</code> variable in <code>evaluation/__init__.py</code> file. </para></section><section><title>Usage</title><para>The <code>notebooks/</code> directory contains examples of inference and evaluation. </para><para>Evaluation might be run from the command line: </para><screen><![CDATA[python3 -m evaluation -o <original texts> -t <transfered texts>]]></screen></section></section><section><title>Training details</title><para>All models have been trained using AdamW optimizer using NVidia P100 GPU. </para><para>Following hyperparameter values have been used to fine-tune the models: </para><section><title>GPT-2</title><itemizedlist><listitem><para>number of epochs: 10 </para></listitem><listitem><para>batch size: 2 </para></listitem><listitem><para>learning rate 0.0001 </para></listitem><listitem><para>epsilon: 1e-8 </para></listitem><listitem><para>warmup steps: 100 </para></listitem></itemizedlist></section><section><title>GPT-3</title><itemizedlist><listitem><para>batch size: 2 </para></listitem><listitem><para>learning rate multiplier: 0.2 </para></listitem><listitem><para>number of epochs: 5 </para></listitem><listitem><para>prompt loss weight: 0.1 </para></listitem><listitem><para>weight decay: 0 </para></listitem></itemizedlist></section><section><title>T-5 base</title><para>1st step: </para><itemizedlist><listitem><para>num. of epochs: 6 </para></listitem><listitem><para>batch size: 2 </para></listitem><listitem><para>learning rate: 0.0005 </para></listitem><listitem><para>epsilon: 1e-8 </para></listitem><listitem><para>warmup steps: 100 </para></listitem></itemizedlist><para>2nd step: </para><itemizedlist><listitem><para>num. of epochs: 6 </para></listitem><listitem><para>batch size: 2 </para></listitem><listitem><para>learning rate: 0.00005 </para></listitem><listitem><para>epsilon: 1e-8 </para></listitem><listitem><para>warmup steps: 100 </para></listitem></itemizedlist></section><section><title>T-5 large</title><para>1st step: </para><itemizedlist><listitem><para>num. of epochs: 10 </para></listitem><listitem><para>batch size: 2 </para></listitem><listitem><para>learning rate: 0.0001 </para></listitem><listitem><para>epsilon: 1e-8 </para></listitem><listitem><para>warmup steps: 100 </para></listitem></itemizedlist><para>2nd step: </para><itemizedlist><listitem><para>num. of epochs: 10 </para></listitem><listitem><para>batch size: 1 </para></listitem><listitem><para>learning rate: 0.00002 </para></listitem><listitem><para>epsilon: 1e-8 </para></listitem><listitem><para>warmup steps: 100 </para></listitem></itemizedlist></section></section><section><title>Evaluation</title><para>The performance of the models was assessed in three categories using automatic metrics. </para><itemizedlist><listitem><para><emphasis role="strong">Style transfer accuracy</emphasis> (STA) was assessed using <ulink url="https://github.com/MarcinCiura/przetak">Przetak</ulink> </para></listitem><listitem><para><emphasis role="strong">Preservation of the content</emphasis>: cosine similarity (CS, sentence embeddings were obtained using <ulink url="https://www.sbert.net">SBERT</ulink>), word overlap (WO) and BLEU </para></listitem><listitem><para><emphasis role="strong">Language quality</emphasis>: perplexity (PPL) using <ulink url="https://huggingface.co/flax-community/papuGaPT2">papuGaPT-2</ulink> </para></listitem></itemizedlist><para>Models were evaluated against two baselines: </para><itemizedlist><listitem><para><emphasis role="strong">Duplicate</emphasis>: a direct copy of the original text </para></listitem><listitem><para><emphasis role="strong">Delete</emphasis>: letters of words recognized by Przetak as vulgar were replaced with asterisks (except for their the first letter) </para></listitem></itemizedlist><para>Overall performance of the models was assessed using geometric mean of CS, STA and PPL scores. </para></section><section><title>Results</title><informaltable><tgroup cols="7"><colspec colname="col_0"/><colspec colname="col_1"/><colspec colname="col_2"/><colspec colname="col_3"/><colspec colname="col_4"/><colspec colname="col_5"/><colspec colname="col_6"/><tbody><row rowsep="1"><entry colsep="1" rowsep="1"><para><emphasis role="strong">Method</emphasis>   </para></entry><entry colsep="1" rowsep="1"><para><emphasis role="strong">STA</emphasis></para></entry><entry colsep="1" rowsep="1"><para><emphasis role="strong">CS</emphasis></para></entry><entry colsep="1" rowsep="1"><para><emphasis role="strong">WO</emphasis></para></entry><entry colsep="1" rowsep="1"><para><emphasis role="strong">BLEU</emphasis></para></entry><entry colsep="1" rowsep="1"><para><emphasis role="strong">PPL</emphasis></para></entry><entry colsep="1" rowsep="1"><para><emphasis role="strong">GM</emphasis></para></entry></row><row rowsep="1"><entry colsep="1" rowsep="1"><para><emphasis role="strong">Duplicate</emphasis></para></entry><entry colsep="1" rowsep="1"><para>   0.38  </para></entry><entry colsep="1" rowsep="1"><para>  1.00  </para></entry><entry colsep="1" rowsep="1"><para>  1.00  </para></entry><entry colsep="1" rowsep="1"><para>   1.00   </para></entry><entry colsep="1" rowsep="1"><para>  146.86 </para></entry><entry colsep="1" rowsep="1"><para>  1.78  </para></entry></row><row rowsep="1"><entry colsep="1" rowsep="1"><para><emphasis role="strong">Delete</emphasis>   </para></entry><entry colsep="1" rowsep="1"><para>   1.00  </para></entry><entry colsep="1" rowsep="1"><para>  0.93  </para></entry><entry colsep="1" rowsep="1"><para>  0.84  </para></entry><entry colsep="1" rowsep="1"><para>   0.92   </para></entry><entry colsep="1" rowsep="1"><para>  246.80 </para></entry><entry colsep="1" rowsep="1"><para>  4.14  </para></entry></row><row rowsep="1"><entry colsep="1" rowsep="1"><para><emphasis role="strong">GPT-2</emphasis>    </para></entry><entry colsep="1" rowsep="1"><para>   0.90  </para></entry><entry colsep="1" rowsep="1"><para>  0.86  </para></entry><entry colsep="1" rowsep="1"><para>  0.71  </para></entry><entry colsep="1" rowsep="1"><para>   0.86   </para></entry><entry colsep="1" rowsep="1"><para>  258.44 </para></entry><entry colsep="1" rowsep="1"><para>  3.71  </para></entry></row><row rowsep="1"><entry colsep="1" rowsep="1"><para><emphasis role="strong">GPT-3</emphasis>    </para></entry><entry colsep="1" rowsep="1"><para>   0.88  </para></entry><entry colsep="1" rowsep="1"><para>  0.92  </para></entry><entry colsep="1" rowsep="1"><para>  0.79  </para></entry><entry colsep="1" rowsep="1"><para>   0.92   </para></entry><entry colsep="1" rowsep="1"><para>  359.12 </para></entry><entry colsep="1" rowsep="1"><para>  3.58  </para></entry></row><row rowsep="1"><entry colsep="1" rowsep="1"><para><emphasis role="strong">T-5 base</emphasis> </para></entry><entry colsep="1" rowsep="1"><para>   0.90  </para></entry><entry colsep="1" rowsep="1"><para>  0.97  </para></entry><entry colsep="1" rowsep="1"><para>  0.85  </para></entry><entry colsep="1" rowsep="1"><para>   0.95   </para></entry><entry colsep="1" rowsep="1"><para>  187.03 </para></entry><entry colsep="1" rowsep="1"><para>  4.10  </para></entry></row><row rowsep="1"><entry colsep="1" rowsep="1"><para><emphasis role="strong">T-5 large</emphasis></para></entry><entry colsep="1" rowsep="1"><para>   0.93  </para></entry><entry colsep="1" rowsep="1"><para>  0.97  </para></entry><entry colsep="1" rowsep="1"><para>  0.86  </para></entry><entry colsep="1" rowsep="1"><para>   0.95   </para></entry><entry colsep="1" rowsep="1"><para>  170.02 </para></entry><entry colsep="1" rowsep="1"><para>  4.31  </para></entry></row></tbody></tgroup></informaltable></section><section><title>Licence</title><para>CC-BY-NC 4.0 </para></section><section><title>Citation</title><para>Klamra C., Wojdyga G., Żurowski S., Rosalska P., Kozłowska M., Ogrodniczuk M. (2022). <ulink url="https://doi.org/10.1007/978-3-031-08754-7_7">Devulgarization of Polish Texts Using Pre-trained Language Models</ulink>. In: Groen, D., de Mulatier, C., Paszynski, M., Krzhizhanovskaya, V.V., Dongarra, J.J., Sloot, P.M.A. (eds) Computational Science – <ulink url="https://www.iccs-meeting.org/iccs2022/">ICCS 2022</ulink>. Lecture Notes in Computer Science, vol. 13351, pp. 49--55. Springer, Cham.  </para></section></section></article>