Create README.md
Browse files
README.md
ADDED
@@ -0,0 +1,144 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
---
|
2 |
+
language:
|
3 |
+
- af
|
4 |
+
---
|
5 |
+
|
6 |
+
# Model Card for Model ID
|
7 |
+
|
8 |
+
This modelcard aims to be a base template for new models. It has been generated using [this raw template](https://github.com/huggingface/huggingface_hub/blob/main/src/huggingface_hub/templates/modelcard_template.md?plain=1).
|
9 |
+
|
10 |
+
|
11 |
+
### Model Description
|
12 |
+
AfriBert is an Afrikaans language model built on a BERT architecture.
|
13 |
+
Trained using Huisgenoot magazine articles, the model is designed to handle a variety of natural language processing tasks in Afrikaans.
|
14 |
+
This model aims to improve text understanding, generation, and analysis for Afrikaans speakers by providing robust linguistic capabilities.
|
15 |
+
|
16 |
+
|
17 |
+
- **Developed by: Mthombeni F**
|
18 |
+
- **Model type: LLM**
|
19 |
+
- **Language(s) (NLP): Python**
|
20 |
+
- **Finetuned from model: Bert Model**
|
21 |
+
|
22 |
+
## Uses
|
23 |
+
The model is intended for a range of Afrikaans natural language processing (NLP) tasks. Foreseeable users include:
|
24 |
+
- Researchers working with low-resource languages, particularly Afrikaans.
|
25 |
+
- Businesses and developers creating Afrikaans-based applications, such as chatbots or content generation tools.
|
26 |
+
- Educational institutions looking to use the model in Afrikaans language learning programs.
|
27 |
+
- Content creators needing to generate or analyze text in Afrikaans.
|
28 |
+
|
29 |
+
Those affected by the model include:
|
30 |
+
- Afrikaans speakers and communities, particularly those whose content may be analyzed or generated.
|
31 |
+
- Users of applications that use this model for text processing.
|
32 |
+
|
33 |
+
### Direct Use
|
34 |
+
|
35 |
+
AfriBert can be used out-of-the-box for tasks like:
|
36 |
+
- Text generation, completing or generating Afrikaans text based on a prompt.
|
37 |
+
- Question-answering (QA) in Afrikaans, where users provide a context and the model can answer questions based on the provided text.
|
38 |
+
- Text classification or sentiment analysis without needing fine-tuning.
|
39 |
+
Direct users of AfriBert can leverage it for conversational agents, chatbots, or even creative writing prompts.
|
40 |
+
|
41 |
+
### Downstream Use [optional]
|
42 |
+
When fine-tuned for specific tasks, AfriBert can be integrated into larger ecosystems or applications. Some potential downstream uses include:
|
43 |
+
- Fine-tuning for sentiment analysis in Afrikaans for social media or news data.
|
44 |
+
- Integration into translation systems for handling Afrikaans-specific linguistic nuances.
|
45 |
+
- Customization for particular domains (legal, medical) where fine-tuned vocabulary is necessary.
|
46 |
+
In larger ecosystems, AfriBert can function as the backbone for Afrikaans NLP applications, such as intelligent assistants or educational platforms.
|
47 |
+
|
48 |
+
### Out-of-Scope Use
|
49 |
+
AfriBert is not designed for, nor will it work well in, the following contexts:
|
50 |
+
- Highly technical fields (e.g., medical, legal) without additional fine-tuning.
|
51 |
+
- Use for misinformation, propaganda, or the generation of harmful or biased content.
|
52 |
+
- In multi-lingual tasks beyond Afrikaans, as the model is specifically tuned for this language and may not generalize well to other South African languages.
|
53 |
+
- Applications involving critical safety tasks or decision-making processes, such as autonomous systems.
|
54 |
+
Misuse of the model could lead to the propagation of biases found in the training data from *Huisgenoot* or generate inappropriate or out-of-context content.
|
55 |
+
|
56 |
+
|
57 |
+
## Bias, Risks, and Limitations
|
58 |
+
While AfriBert, performs well on tasks related to Afrikaans language processing, it has certain limitations:
|
59 |
+
- It may struggle with highly technical or domain-specific vocabulary not present in the training data.
|
60 |
+
- The model may reflect biases present in the training data from *Huisgenoot*.
|
61 |
+
- Performance on Afrikaans dialects or less common language forms may not be optimal.
|
62 |
+
|
63 |
+
|
64 |
+
### Recommendations
|
65 |
+
- **Bias Awareness:** AfriBert may inherit biases present in the training corpus, which could affect how it generates or interprets Afrikaans text. Users should be aware of this, particularly when deploying the model in sensitive or public-facing environments.
|
66 |
+
- **Evaluation:** The model should be evaluated carefully before deployment to ensure it aligns with the specific goals of the intended use case, especially in high-stakes scenarios.
|
67 |
+
- **Performance Monitoring:** AfriBert may perform inconsistently across different Afrikaans dialects or informal language. Continuous evaluation and monitoring are recommended for such scenarios.
|
68 |
+
|
69 |
+
## How to Get Started with the Model
|
70 |
+
|
71 |
+
```python
|
72 |
+
from transformers import GPT2Tokenizer, GPT2LMHeadModel
|
73 |
+
from transformers import pipeline
|
74 |
+
# Load the tokenizer and model
|
75 |
+
model_path = "{path-to-your-afribert-model}"
|
76 |
+
tokenizer = GPT2Tokenizer.from_pretrained(model_path)
|
77 |
+
model = GPT2LMHeadModel.from_pretrained(model_path)
|
78 |
+
# Initialize the text generation pipeline
|
79 |
+
text_generator = pipeline("text-generation", model=model, tokenizer=tokenizer)
|
80 |
+
# Generate Afrikaans text
|
81 |
+
prompt = "Ek het 'n droom gehad"
|
82 |
+
generated_text = text_generator(prompt, max_length=100, num_return_sequences=1)
|
83 |
+
print(generated_text[0]['generated_text'])
|
84 |
+
```
|
85 |
+
|
86 |
+
## Training Details
|
87 |
+
AfriBert was trained on a corpus of Afrikaans text derived from *Huisgenoot* magazine articles, a popular publication that covers a variety of topics. The dataset was preprocessed to clean and tokenize the text, removing unnecessary characters, stopwords, and normalizing for consistency.
|
88 |
+
The model was fine-tuned on top of the GPT-2 architecture for tasks such as text generation and was evaluated on several text classification and question-answering tasks.
|
89 |
+
|
90 |
+
### Training Data
|
91 |
+
The model was trained on a large corpus of articles from *Huisgenoot*, a popular Afrikaans magazine, covering a wide range of topics from culture, entertainment, and human interest stories.
|
92 |
+
This data was selected to provide a comprehensive understanding of colloquial and formal Afrikaans.
|
93 |
+
|
94 |
+
|
95 |
+
### Training Procedure
|
96 |
+
The training procedure included:
|
97 |
+
- Loading and preprocessing the *Huisgenoot* dataset.
|
98 |
+
- Tokenizing the corpus using GPT-2 tokenization.
|
99 |
+
- Fine-tuning the GPT-2 model using a training regime that involved text generation and sequence prediction.
|
100 |
+
- The model was trained over several epochs (typically 3) with a batch size of 4 per device, using standard optimization techniques.-->
|
101 |
+
|
102 |
+
#### Preprocessing [optional]
|
103 |
+
The text from *Huisgenoot* was preprocessed to remove special characters, numbers, and unnecessary whitespace. Additionally:
|
104 |
+
- Text was normalized to lowercase.
|
105 |
+
- Afrikaans stop words were removed to improve the quality of the text corpus.
|
106 |
+
- Tokenization was performed using the GPT-2 tokenizer.
|
107 |
+
|
108 |
+
#### Training Hyperparameters
|
109 |
+
- **Training regime:** fp32 precision.
|
110 |
+
- **Epochs:** 3
|
111 |
+
- **Batch size:** 4 per device
|
112 |
+
- **Learning rate:** Default optimizer learning rate was used.
|
113 |
+
- **Optimizer:** AdamW.
|
114 |
+
|
115 |
+
## Evaluation
|
116 |
+
Evaluation was done using standard text generation, question-answering, and classification benchmarks in Afrikaans.
|
117 |
+
The model's performance was compared to baseline models for accuracy, fluency, and coherence in generated text.
|
118 |
+
|
119 |
+
### Testing Data, Factors & Metrics
|
120 |
+
|
121 |
+
#### Testing Data
|
122 |
+
|
123 |
+
<!-- This should link to a Dataset Card if possible. -->
|
124 |
+
|
125 |
+
|
126 |
+
#### Factors
|
127 |
+
Factors considered during evaluation include:
|
128 |
+
- Performance on formal vs. informal Afrikaans text.
|
129 |
+
- Handling of dialects or regional language differences.
|
130 |
+
- Domain-specific performance for common Afrikaans topics.
|
131 |
+
|
132 |
+
|
133 |
+
#### Metrics
|
134 |
+
Evaluation metrics for AfriBert include:
|
135 |
+
- **Perplexity**: Measures the fluency of text generation.
|
136 |
+
- **Accuracy**: For question-answering tasks.
|
137 |
+
- **F1 Score**: For named entity recognition (NER) and classification tasks.
|
138 |
+
These metrics provide insight into how well the model performs across different language tasks
|
139 |
+
|
140 |
+
|
141 |
+
## Model Card Authors [optional]
|
142 |
+
FuluM21
|
143 |
+
|
144 |
+
## Model Card Contact
|