hajekad commited on
Commit
f82f8ec
1 Parent(s): 091dc4d

Upload generate_headlines.ipynb

Browse files
Files changed (1) hide show
  1. generate_headlines.ipynb +128 -0
generate_headlines.ipynb ADDED
@@ -0,0 +1,128 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "cells": [
3
+ {
4
+ "cell_type": "markdown",
5
+ "metadata": {},
6
+ "source": [
7
+ "# Generating headlines with CzeGPT-2 headline generator\n",
8
+ "\n",
9
+ "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",
10
+ "\n",
11
+ "Download all the files from the <a href=\"https://huggingface.co/MU-NLPC/CzeGPT-2_headline_generator/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",
12
+ "\n",
13
+ "Provide the paths to these folders later in the code."
14
+ ]
15
+ },
16
+ {
17
+ "cell_type": "code",
18
+ "execution_count": 1,
19
+ "metadata": {},
20
+ "outputs": [],
21
+ "source": [
22
+ "from transformers import GPT2LMHeadModel\n",
23
+ "from utils import add_special_tokens, generate_one_summary_fast"
24
+ ]
25
+ },
26
+ {
27
+ "cell_type": "code",
28
+ "execution_count": 2,
29
+ "metadata": {},
30
+ "outputs": [],
31
+ "source": [
32
+ "# load model\n",
33
+ "model_path = \"path/to/folder/with/model/and/config/files\"\n",
34
+ "\n",
35
+ "model = GPT2LMHeadModel.from_pretrained(model_path)\n",
36
+ "\n",
37
+ "# put model into eval mode and on device\n",
38
+ "model.eval()\n",
39
+ "device = 'cuda' # 'cpu' alternatively\n",
40
+ "model.to(device)\n",
41
+ "\n",
42
+ "# load and set tokenizer\n",
43
+ "tokenizer_path = \"path/to/folder/with/vocab/and/merges/files\"\n",
44
+ "tokenizer = add_special_tokens(tokenizer_path)\n",
45
+ "tokenizer.model_max_length = 1024"
46
+ ]
47
+ },
48
+ {
49
+ "cell_type": "markdown",
50
+ "metadata": {},
51
+ "source": [
52
+ "### Playing with summaries generation\n",
53
+ "\n",
54
+ "Here we can explore the generation with different inputs and hyperparameters. The crucial parameter for **headline generation** is `eos_stopping=True` (derived from end-of-text token). This tells the generator to stop when it hits eos token and not care about punctuation."
55
+ ]
56
+ },
57
+ {
58
+ "cell_type": "code",
59
+ "execution_count": 6,
60
+ "metadata": {},
61
+ "outputs": [],
62
+ "source": [
63
+ "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.'"
64
+ ]
65
+ },
66
+ {
67
+ "cell_type": "code",
68
+ "execution_count": 10,
69
+ "metadata": {},
70
+ "outputs": [
71
+ {
72
+ "name": "stdout",
73
+ "output_type": "stream",
74
+ "text": [
75
+ "input_text\n",
76
+ "\n",
77
+ "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",
78
+ "\n",
79
+ "generated_summary\n",
80
+ "\n",
81
+ "Vojenské lesy a statky ČR povede Roman Vohradský\n",
82
+ "\n",
83
+ "golden_summary\n",
84
+ "\n",
85
+ "Not Given\n",
86
+ "\n",
87
+ "CPU times: user 199 ms, sys: 33.7 ms, total: 233 ms\n",
88
+ "Wall time: 230 ms\n"
89
+ ]
90
+ }
91
+ ],
92
+ "source": [
93
+ "%%time\n",
94
+ "generate_one_summary_fast(input_seq, tokenizer, model, top_k=50, top_p=0.5, device=device, eos_stopping=True)\n",
95
+ "\n",
96
+ "None"
97
+ ]
98
+ },
99
+ {
100
+ "cell_type": "code",
101
+ "execution_count": null,
102
+ "metadata": {},
103
+ "outputs": [],
104
+ "source": []
105
+ }
106
+ ],
107
+ "metadata": {
108
+ "kernelspec": {
109
+ "display_name": "Python 3",
110
+ "language": "python",
111
+ "name": "python3"
112
+ },
113
+ "language_info": {
114
+ "codemirror_mode": {
115
+ "name": "ipython",
116
+ "version": 3
117
+ },
118
+ "file_extension": ".py",
119
+ "mimetype": "text/x-python",
120
+ "name": "python",
121
+ "nbconvert_exporter": "python",
122
+ "pygments_lexer": "ipython3",
123
+ "version": "3.8.5"
124
+ }
125
+ },
126
+ "nbformat": 4,
127
+ "nbformat_minor": 4
128
+ }