KSG1 & KSG2 - med readme.md og et billede der bliver brugt i readme.md
Browse files- .gitattributes +3 -0
- Billed1_Inferens-p/303/245-semantisk-s/303/270gemodel.png +0 -0
- README.md +40 -0
- ksg1/config.json +32 -0
- ksg1/head_weights.json +3 -0
- ksg1/model_weights.json +3 -0
- ksg1/pytorch_model.bin +3 -0
- ksg1/special_tokens_map.json +1 -0
- ksg1/tokenizer.json +0 -0
- ksg1/tokenizer_config.json +1 -0
- ksg1/training_args.bin +3 -0
- ksg1/vocab.txt +0 -0
- ksg2/config.json +53 -0
- ksg2/model_weights.json +3 -0
- ksg2/pytorch_model.bin +3 -0
- ksg2/special_tokens_map.json +1 -0
- ksg2/tokenizer.json +0 -0
- ksg2/tokenizer_config.json +1 -0
- ksg2/training_args.bin +3 -0
- ksg2/vocab.txt +0 -0
.gitattributes
CHANGED
@@ -33,3 +33,6 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
|
|
33 |
*.zip filter=lfs diff=lfs merge=lfs -text
|
34 |
*.zst filter=lfs diff=lfs merge=lfs -text
|
35 |
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
|
|
|
|
|
|
|
33 |
*.zip filter=lfs diff=lfs merge=lfs -text
|
34 |
*.zst filter=lfs diff=lfs merge=lfs -text
|
35 |
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
36 |
+
ksg1/head_weights.json filter=lfs diff=lfs merge=lfs -text
|
37 |
+
ksg1/model_weights.json filter=lfs diff=lfs merge=lfs -text
|
38 |
+
ksg2/model_weights.json filter=lfs diff=lfs merge=lfs -text
|
Billed1_Inferens-p/303/245-semantisk-s/303/270gemodel.png
ADDED
README.md
ADDED
@@ -0,0 +1,40 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# Kommunal semantisk grundmodel 1 & 2 (KSG 1 & 2)
|
2 |
+
|
3 |
+
## <em>Beskrivelse – KSG #1</em>
|
4 |
+
KSG #1 er tilvejebragt som en videretræning af det Norske nationalbiblioteks AI laboratories
|
5 |
+
[(NbAiLab)<sup>1</sup>](https://huggingface.co/NbAiLab/nb-bert-base) BERT-Base sprogmodel, og er trænet på 2,672,566 unikke sætninger som er skrabet og filtreret fra 94 kommunale hjemmesider.
|
6 |
+
|
7 |
+
|
8 |
+
## <em>Beskrivelse – KSG #2</em>
|
9 |
+
KSG #2 er semantiske søgemodel der en finetunet version af den Kommunale grundmodel #1 til at klassificere et givet KL-område baseret på en inputsætning. Sprogmodellen trænet på 2,672,566 unikke sætninger som er skrabet og filtreret fra 94 kommunale hjemmesider.
|
10 |
+
|
11 |
+
## <em>Brug – KSG #1</em>
|
12 |
+
Sprogmodellen er af typen Masked Language Model (MLM), på dansk en maskeret sprogmodel. Sprogmodellen er trænet til at prædiktere ord-kandidater til ét eller flere maskerede ord i en given sekvens af ord. Ved en succesfuld træning med denne metode opnår sprogmodellen såvel sprog som semantisk forståelse, og kan derfor anvendes til f.eks. semantisk søgning ved at producere embeddings (matematiske repræsentationer af ordsekvenser; f.eks. en sætning). Embeddings kan anvendes til at fremsøge synonymer til bestemte ord i en sekvens eller til at vurdere den sproglige sammenhæng af en given sætning.
|
13 |
+
|
14 |
+
Finjustere på ny data kan den videretrænes til at løse bestemte opgavetyper som f.eks. identifikation af navngivne entiteter, tekstanalyse i mange former, sentiment klassifikation, chatbot funktionalitet, sentiment-scoring m.v.
|
15 |
+
|
16 |
+
|
17 |
+
## <em>Brug – KSG #2</em>
|
18 |
+
Sprogmodellen kan benyttes til at søge efter similære sætninger og klassificere hvilken KL-kategori en givet sætning stammer fra. Se indførte eksempel til orientering.
|
19 |
+
|
20 |
+
![](./Billed1_Inferens-på-semantisk-søgemodel.png)
|
21 |
+
|
22 |
+
## <em>Datasæt anvendt til træning</em>
|
23 |
+
Sprogmodellerne er trænet på 2,672,566 unikke sætninger og valideret på 54,543 sætninger. Dataen er delvist inddelt i KL’s fagområder og er opdelt i unikke sætninger, og derefter inddelt i trænings- og validerings- og testsæt. Se [GitHub<sup>2</sup>](https://github.com/AI-Aktindsigt-Sonderborg/modelling) for beskrivelse af koden benyttet til præprocessering af det skrabede data.
|
24 |
+
Det primære formål med at træne modellerne var en antagelse om at det sprogbrug kommunerne anvender på deres hjemmesider; 1) repræsenterede fagsprog (domæne) som anvendes i kommunal kontekst; og 2) at dette domæne sprogbrug gennem træning af en kommunal grundmodel, ville være et solidt udgangspunkt for træningen af aktindigtsorienteret sprogmodeller.
|
25 |
+
Det viste sig i forløbet med træning af modellerne at antagelser om værdien af at træne en grundmodel var begrænset, og ikke gav yderligere værdi i forhold til træningen af en special aktindsigts orienterede sprogmodel til semantisk søgning. Men det vurderes at både model og data kan have en værdi for OS-miljøet i DK og udstilles derfor 'as-is' med en opfordring til yderligere processering af modeller og det rå datasæt.
|
26 |
+
|
27 |
+
|
28 |
+
## <em>Mereinformation</em>
|
29 |
+
I denne [artikel<sup>3</sup>](https://arxiv.org/pdf/2004.10964.pdf) fra 2020 beskrives, hvordan en Masked Language Model [(MLM)<sup>4</sup>](https://www.sbert.net/examples/unsupervised_learning/MLM/README.html) kan benyttes til at videretræne prætræ- nede modeller på ikke-annoteret domænespecifikt data kan forhøje kvaliteten af domænerelevante vector embeddings signifikant. Disse sprogmodeller optimeres ved at maskere enkelte ord i sætninger for derefter at forudsige hvilket ord, der er maskeret.
|
30 |
+
|
31 |
+
___
|
32 |
+
|
33 |
+
### Links
|
34 |
+
[1. ](#sdfootnote1anc)[https://huggingface.co/NbAiLab/nb-bert-base](https://huggingface.co/NbAiLab/nb-bert-base)
|
35 |
+
|
36 |
+
[2. ](#sdfootnote2anc)[https://github.com/AI-Aktindsigt-Sonderborg/modelling](https://github.com/AI-Aktindsigt-Sonderborg/modelling)
|
37 |
+
|
38 |
+
[3. ](#sdfootnote3anc)[https://arxiv.org/pdf/2004.10964.pdf](https://arxiv.org/pdf/2004.10964.pdf)
|
39 |
+
|
40 |
+
[4. ](#sdfootnote4anc)[https://www.sbert.net/examples/unsupervised_learning/MLM/README.html](https://www.sbert.net/examples/unsupervised_learning/MLM/README.html)
|
ksg1/config.json
ADDED
@@ -0,0 +1,32 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"_name_or_path": "NbAiLab/nb-bert-base",
|
3 |
+
"architectures": [
|
4 |
+
"BertForMaskedLM"
|
5 |
+
],
|
6 |
+
"attention_probs_dropout_prob": 0.1,
|
7 |
+
"classifier_dropout": null,
|
8 |
+
"directionality": "bidi",
|
9 |
+
"gradient_checkpointing": false,
|
10 |
+
"hidden_act": "gelu",
|
11 |
+
"hidden_dropout_prob": 0.1,
|
12 |
+
"hidden_size": 768,
|
13 |
+
"initializer_range": 0.02,
|
14 |
+
"intermediate_size": 3072,
|
15 |
+
"layer_norm_eps": 1e-12,
|
16 |
+
"max_position_embeddings": 512,
|
17 |
+
"model_type": "bert",
|
18 |
+
"num_attention_heads": 12,
|
19 |
+
"num_hidden_layers": 12,
|
20 |
+
"pad_token_id": 0,
|
21 |
+
"pooler_fc_size": 768,
|
22 |
+
"pooler_num_attention_heads": 12,
|
23 |
+
"pooler_num_fc_layers": 3,
|
24 |
+
"pooler_size_per_head": 128,
|
25 |
+
"pooler_type": "first_token_transform",
|
26 |
+
"position_embedding_type": "absolute",
|
27 |
+
"torch_dtype": "float32",
|
28 |
+
"transformers_version": "4.19.2",
|
29 |
+
"type_vocab_size": 2,
|
30 |
+
"use_cache": true,
|
31 |
+
"vocab_size": 119547
|
32 |
+
}
|
ksg1/head_weights.json
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:1b32dfc348cc3402ac28be79c18c55f8bd54ec7eb76e46b736aa120db2b5aeef
|
3 |
+
size 370097239
|
ksg1/model_weights.json
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:67dadedfc36f07a585e72d51cb485b5159d23e8dfc6471954c201f041c5b0841
|
3 |
+
size 1079232361
|
ksg1/pytorch_model.bin
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:6e44f111ff5e63fba76d153bef8ad7aa1f66c51ec7b98a694e68abc3b353159a
|
3 |
+
size 1079218153
|
ksg1/special_tokens_map.json
ADDED
@@ -0,0 +1 @@
|
|
|
|
|
1 |
+
{"unk_token": "[UNK]", "sep_token": "[SEP]", "pad_token": "[PAD]", "cls_token": "[CLS]", "mask_token": "[MASK]"}
|
ksg1/tokenizer.json
ADDED
The diff for this file is too large to render.
See raw diff
|
|
ksg1/tokenizer_config.json
ADDED
@@ -0,0 +1 @@
|
|
|
|
|
1 |
+
{"do_lower_case": false, "unk_token": "[UNK]", "sep_token": "[SEP]", "pad_token": "[PAD]", "cls_token": "[CLS]", "mask_token": "[MASK]", "tokenize_chinese_chars": true, "strip_accents": null, "special_tokens_map_file": null, "name_or_path": "NbAiLab/nb-bert-base", "do_basic_tokenize": true, "never_split": null, "tokenizer_class": "BertTokenizer"}
|
ksg1/training_args.bin
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:eaa13d69a9bbd5e00609ad34c3bc576c9701a86a00d360e9685bebbab89b01b9
|
3 |
+
size 3375
|
ksg1/vocab.txt
ADDED
The diff for this file is too large to render.
See raw diff
|
|
ksg2/config.json
ADDED
@@ -0,0 +1,53 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"_name_or_path": "/srv/alvenir/semantic-modelling/models/last_model",
|
3 |
+
"architectures": [
|
4 |
+
"BertForSequenceClassification"
|
5 |
+
],
|
6 |
+
"attention_probs_dropout_prob": 0.1,
|
7 |
+
"classifier_dropout": null,
|
8 |
+
"directionality": "bidi",
|
9 |
+
"gradient_checkpointing": false,
|
10 |
+
"hidden_act": "gelu",
|
11 |
+
"hidden_dropout_prob": 0.1,
|
12 |
+
"hidden_size": 768,
|
13 |
+
"id2label": {
|
14 |
+
"0": "Besk\u00e6ftigelse og integration",
|
15 |
+
"1": "B\u00f8rn og unge",
|
16 |
+
"2": "Erhverv og turisme",
|
17 |
+
"3": "Klima, teknik og milj\u00f8",
|
18 |
+
"4": "Kultur og fritid",
|
19 |
+
"5": "Socialomr\u00e5det",
|
20 |
+
"6": "Sundhed og \u00e6ldre",
|
21 |
+
"7": "\u00d8konomi og administration"
|
22 |
+
},
|
23 |
+
"initializer_range": 0.02,
|
24 |
+
"intermediate_size": 3072,
|
25 |
+
"label2id": {
|
26 |
+
"Besk\u00e6ftigelse og integration": "0",
|
27 |
+
"B\u00f8rn og unge": "1",
|
28 |
+
"Erhverv og turisme": "2",
|
29 |
+
"Klima, teknik og milj\u00f8": "3",
|
30 |
+
"Kultur og fritid": "4",
|
31 |
+
"Socialomr\u00e5det": "5",
|
32 |
+
"Sundhed og \u00e6ldre": "6",
|
33 |
+
"\u00d8konomi og administration": "7"
|
34 |
+
},
|
35 |
+
"layer_norm_eps": 1e-12,
|
36 |
+
"max_position_embeddings": 512,
|
37 |
+
"model_type": "bert",
|
38 |
+
"num_attention_heads": 12,
|
39 |
+
"num_hidden_layers": 12,
|
40 |
+
"pad_token_id": 0,
|
41 |
+
"pooler_fc_size": 768,
|
42 |
+
"pooler_num_attention_heads": 12,
|
43 |
+
"pooler_num_fc_layers": 3,
|
44 |
+
"pooler_size_per_head": 128,
|
45 |
+
"pooler_type": "first_token_transform",
|
46 |
+
"position_embedding_type": "absolute",
|
47 |
+
"problem_type": "single_label_classification",
|
48 |
+
"torch_dtype": "float32",
|
49 |
+
"transformers_version": "4.19.2",
|
50 |
+
"type_vocab_size": 2,
|
51 |
+
"use_cache": true,
|
52 |
+
"vocab_size": 119547
|
53 |
+
}
|
ksg2/model_weights.json
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:e4964d97cd284e0ef4d76a6cd377512f88b08ec3dc70f0c1fd44d18e131a31f6
|
3 |
+
size 711525173
|
ksg2/pytorch_model.bin
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:4d7ee2b0d1822f237a8b43f7f9fc2a7e6d3bff69a9364e94dc0f14d2196a9789
|
3 |
+
size 711511157
|
ksg2/special_tokens_map.json
ADDED
@@ -0,0 +1 @@
|
|
|
|
|
1 |
+
{"unk_token": "[UNK]", "sep_token": "[SEP]", "pad_token": "[PAD]", "cls_token": "[CLS]", "mask_token": "[MASK]"}
|
ksg2/tokenizer.json
ADDED
The diff for this file is too large to render.
See raw diff
|
|
ksg2/tokenizer_config.json
ADDED
@@ -0,0 +1 @@
|
|
|
|
|
1 |
+
{"do_lower_case": false, "unk_token": "[UNK]", "sep_token": "[SEP]", "pad_token": "[PAD]", "cls_token": "[CLS]", "mask_token": "[MASK]", "tokenize_chinese_chars": true, "strip_accents": null, "special_tokens_map_file": null, "name_or_path": "/srv/alvenir/semantic-modelling/models/last_model", "do_basic_tokenize": true, "never_split": null, "tokenizer_class": "BertTokenizer"}
|
ksg2/training_args.bin
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:0dba8a5d5901869cdfe988047118898ec232234a64edaf925382b1381f0fa69b
|
3 |
+
size 3323
|
ksg2/vocab.txt
ADDED
The diff for this file is too large to render.
See raw diff
|
|