File size: 6,931 Bytes
b922fa0 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 |
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Generating summaries with CzeGPT-2 summarizer\n",
"\n",
"The generating codes in `utils.py` are based on <a href=\"https://github.com/SKRohit/Generating_Text_Summary_With_GPT2/blob/master/utils.py\">this</a> repository and heavily improved.\n",
"\n",
"Download all the files from the <a href=\"https://huggingface.co/MU-NLPC/CzeGPT-2_summarizer/tree/main\">Hugging Face repository</a> and place `vocab.json` and `merges.txt` into one folder and `pytorch_model.bin` and `config.json` into another. \n",
"\n",
"Provide the paths to these folders later in the code."
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"from transformers import GPT2LMHeadModel\n",
"from utils import add_special_tokens, generate_one_summary_fast"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"# load model\n",
"model_path = \"path/to/folder/with/model/and/config/files\"\n",
"\n",
"model = GPT2LMHeadModel.from_pretrained(model_path)\n",
"\n",
"# put model into eval mode and on device\n",
"model.eval()\n",
"device = 'cuda' # 'cpu' alternatively\n",
"model.to(device)\n",
"\n",
"# load and set tokenizer\n",
"tokenizer_path = \"path/to/folder/with/vocab/and/merges/files\"\n",
"tokenizer = add_special_tokens(tokenizer_path)\n",
"tokenizer.model_max_length = 1024"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Playing with summaries generation\n",
"\n",
"Here we can explore the generation with different inputs and hyperparameters."
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"input_seq = 'Vohradský v rámci výběrového řízení na nejvyšší post ve státním podniku dostal od výběrové komise nejvíce bodů ze všech uchazečů. Ministryně obrany Jana Černochová (ODS), pod jejíž resort lesy spadají, podle informací Novinek z dobře informovaného zdroje na doporučení komise dala. „Jsem ráda, že komise vybrala velice zkušeného člověka, který má bohaté zkušenosti nejen s lesnictvím, ale zná i Vojenské lesy a statky a je zárukou jejich dalšího rozvoje,“ uvedla ministryně obrany Jana Černochová. „Chci podnik udržet v černých číslech, důležitá je obnova lesních porostů po kůrovci a zabezpečení chodu podniku v souladu s potřebami resortu obrany,“ nastínil své priority Roman Vohradský. Vohradský se v lesnictví pohybuje dlouhá léta. Ve vojenských lesích pracoval už v letech 2002 až 2009. V témže roce pak přešel do jednoho z největších státních podniků, a to do Lesů ČR, které obhospodařují šestinu plochy Česka a zhruba polovinu všech lesů v zemi. Od roku 2015 pak opět pracuje ve VLS jako ředitel divize Mimoň. Do nejužšího výběru s Vohradským podle již dříve publikovaných informací redakce postoupili také bývalý ředitel VLS Jiří Janota, který v současnosti například zastává pozici předsedy Českomoravské myslivecké jednoty, a někdejší správní náměstek vojenských lesů Jiří Špelina. Celkem se do soutěže přihlásilo devět uchazečů. Vojenské lesy a statky ČR, které spravují zhruba 126 tisíc hektarů lesní půdy v zemi, hledají nového generálního ředitele poté, co na konci prosince ministryně obrany Jana Černochová (ODS) odvolala kvůli manažerským pochybením někdejšího ředitele podniku Petra Krále.'"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"new_article\n",
"\n",
"Vohradský v rámci výběrového řízení na nejvyšší post ve státním podniku dostal od výběrové komise nejvíce bodů ze všech uchazečů. Ministryně obrany Jana Černochová (ODS), pod jejíž resort lesy spadají, podle informací Novinek z dobře informovaného zdroje na doporučení komise dala. „Jsem ráda, že komise vybrala velice zkušeného člověka, který má bohaté zkušenosti nejen s lesnictvím, ale zná i Vojenské lesy a statky a je zárukou jejich dalšího rozvoje,“ uvedla ministryně obrany Jana Černochová. „Chci podnik udržet v černých číslech, důležitá je obnova lesních porostů po kůrovci a zabezpečení chodu podniku v souladu s potřebami resortu obrany,“ nastínil své priority Roman Vohradský. Vohradský se v lesnictví pohybuje dlouhá léta. Ve vojenských lesích pracoval už v letech 2002 až 2009. V témže roce pak přešel do jednoho z největších státních podniků, a to do Lesů ČR, které obhospodařují šestinu plochy Česka a zhruba polovinu všech lesů v zemi. Od roku 2015 pak opět pracuje ve VLS jako ředitel divize Mimoň. Do nejužšího výběru s Vohradským podle již dříve publikovaných informací redakce postoupili také bývalý ředitel VLS Jiří Janota, který v současnosti například zastává pozici předsedy Českomoravské myslivecké jednoty, a někdejší správní náměstek vojenských lesů Jiří Špelina. Celkem se do soutěže přihlásilo devět uchazečů. Vojenské lesy a statky ČR, které spravují zhruba 126 tisíc hektarů lesní půdy v zemi, hledají nového generálního ředitele poté, co na konci prosince ministryně obrany Jana Černochová (ODS) odvolala kvůli manažerským pochybením někdejšího ředitele podniku Petra Krále.<|sep|>\n",
"\n",
"generated_summary\n",
"\n",
"Ministryně obrany doporučila výběrovou komisi, aby jmenovala nového generálního ředitele Vojenských lesů a statků ČR (VLS). Podle informací Novinek je jím současný ředitel divize Mimoň Roman Vohradský. Ten byl doposud v čele Lesů ČR, které spravují zhruba 126 tisíc hektarů lesní půdy v zemi.\n",
"\n",
"golden_summary\n",
"\n",
"Not Given\n",
"\n",
"CPU times: user 1.5 s, sys: 493 ms, total: 1.99 s\n",
"Wall time: 1.99 s\n"
]
}
],
"source": [
"%%time\n",
"generate_one_summary_fast(input_seq, tokenizer, model, num_sentences=3,\n",
" top_k=50, top_p=0.5, device=device, eos_stopping=False)\n",
"\n",
"None"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.8.5"
}
},
"nbformat": 4,
"nbformat_minor": 4
}
|