ThomNP commited on
Commit
b42f4b9
1 Parent(s): 9688970

KSG1 & KSG2 - med readme.md og et billede der bliver brugt i readme.md

Browse files
.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