/ Модель

Характеристики

Контекст
512 токенов
Параметры
205 млн
Архитектура
bert · dense
Базовая модель
mBertKE
Библиотека
transformers
Опубликована
1 июн 2026

AfrimBert-QA

Ответы на вопросыТекст → текст5 профессий

Модель BERT для извлечения ответов на вопросы по тексту на африканских языках и английском.

191скачиваний за 30 дней1лайквеса обновлены4 июн 2026

Бенчмарки

Как модель справилась с задачами пользователей ailist и что о ней публикуют открытые лидерборды

Публичные оценки

Из открытых лидербордов. Сравнивайте результаты одного теста при одинаковых условиях — отсутствие оценки не значит, что модель хуже.

В подключённых источниках результатов для этой модели пока нет.

Что умеет модель

Описание составлено по карточке модели и метаданным Hugging Face

AfrimBert-QA — модель amidblue, дообученная на базе amidblue/mBertKE для извлечения ответов на вопросы по тексту. Она рассчитана на одноязычный и межъязыковой поиск ответов в материалах на африканских языках и английском; обучение включает AfriQuAD, KENSQUAD, AFRIQA и дополнительные данные. Модель построена на BERT, содержит 205,1 млн параметров, принимает текстовые вопросы и контекст и возвращает найденный фрагмент текста. Максимальная длина контекста — 512 токенов.

В карточке заявлена поддержка 15 языков: суахили, луо, киньяруанда, игбо, твийского, фон, зулу, бемба, лингала, английского и других африканских языков. Суахили преобладает в данных; для ряда языков примеров мало, поэтому качество может заметно различаться. Модель доступна через Transformers в формате safetensors; доступ к репозиторию ограничен и требует запроса на Hugging Face. Лицензия в предоставленных данных не указана.

Сценарии применения

  • поиск ответов в текстах на суахили
  • межъязыковой поиск ответа в африканских материалах
  • извлечение фактов из документов на луо или киньяруанда
  • ответы на вопросы по текстам на игбо, твийском или зулу

Ограничения

Контекст ограничен 512 токенами, а объём данных сильно различается между языками, поэтому качество для малоресурсных языков может быть ниже. Доступ к модели на Hugging Face gated и требует запроса.

Для каких профессий подходит5

Разделы каталога профессий, в задачах которых используется эта модель

Все профессии

Также подходит для

Карточка модели

README от автора на Hugging Face, как он его опубликовал

Открыть на Hugging Face

AfrimBert-QA

Model Description

AfrimBert-QA is a fine-tuned version of amidblue/mBertKE trained on the amidblue/AfriQuAD dataset. It is designed for extractive question answering — both monolingual and cross-lingual — across African languages.


Supported Languages

The model covers 15 languages (14 African + English for cross-lingual QA) across East, West, Central and Southern Africa. Counts below are estimated from stratified sampling of the full 14,400-row AfriQuAD dataset.

East Africa

LanguageISORegionEst. Examples
Swahili (Kiswahili)swKenya, Tanzania, Uganda~5,674
Luo (Dholuo)luoKenya, Uganda, Tanzania~1,285
KinyarwandakinRwanda~1,231
Kikuyu (Gĩkũyũ)kikKenya~268
LugandalugUganda~107
Maasai (Maa)masKenya, Tanzania~54

West Africa

LanguageISORegionEst. Examples
IgboiboNigeria~1,338
Twi (Akan)twiGhana~1,178
FonfonBenin~1,124
HausahauNigeria, Niger~589
YorubayorNigeria~268

Southern / Central Africa

LanguageISORegionEst. Examples
Zulu (isiZulu)zulSouth Africa~857
BembabemZambia, DRC~321
LingalalinDRC, Congo, CAR~54

Cross-Lingual

LanguageISONotesEst. Examples
EnglishenCross-lingual QA pairs~54

Summary

Count
Total languages15
Total QA examples~14,400
Dominant language (Swahili)~39%
Largest non-Swahili language (Igbo)~9%

Note: Luhya (luy), Kalenjin (kln), and Gusii (guz) appear in the dataset's HF metadata tags but were not observed in the sampled rows — they may be present in very small quantities or as part of cross-lingual pairs.


Training Data

The model was trained on a combination of the following datasets:

  • KENSQUAD — Kenyan extractive QA dataset
  • AFRIQA — Pan-African QA benchmark
  • Custom data — Additional data collected for languages not covered by AFRIQA and KENSQUAD

AfriQuAD Dataset Stats

SplitRows
Train~11,500
Validation~1,400
Test~1,400
Total~14,300

Cross-lingual QA Dataset Stats

TypeApproximate Size
Generated cross-lingual QA pairs~800 examples
Translated cross-lingual QA pairs~800 examples

Usage

Note: The model is gated on Hugging Face. Request access at amidblue/AfrimBert-QA, then authenticate locally:

pip install transformers torch
huggingface-cli login

Quick start

from transformers import pipeline

qa = pipeline("question-answering", model="amidblue/AfrimBert-QA")

# Luo (monolingual)
context  = "Ji mang'eny ok winjre gi kaka chama mar ODM iriembo. Tinde nitie koko mang'eny e chama no."
question = "Chama mane ema ji oko hero kaka iriembo?"

result = qa(question=question, context=context)
print(f"Question : {question}")
print(f"Answer   : {result['answer']}")
print(f"Score    : {result['score']:.4f}  |  span [{result['start']}:{result['end']}]")

Output1

──────────────────────────────────────────────────────────────────────
Language : Luo (Dholuo) [luo]
Question : Chama mane ema ji oko hero kaka iriembo?
Answer   : ODM
Score    : 0.7412  |  span [40:43]
──────────────────────────────────────────────────────────────────────

Multi-language inference script

"""
AfrimBert-QA Inference Script
-------------------------------
Runs extractive QA across multiple African languages using amidblue/AfrimBert-QA.
Covers monolingual and cross-lingual examples.

Usage:
    python run_afrimbert_qa.py

Requirements:
    pip install transformers torch

Notes:
    The model is gated on Hugging Face. Request access at:
    https://huggingface.co/amidblue/AfrimBert-QA
    Then authenticate: huggingface-cli login
"""

from transformers import pipeline

# Load model
MODEL_ID = "amidblue/AfrimBert-QA"
print(f"Loading model: {MODEL_ID} ...")
qa = pipeline("question-answering", model=MODEL_ID)
print("Model loaded.\n")
print("=" * 70)

# Test examples per language
EXAMPLES = [
    {
        "lang": "Luo (Dholuo)", "iso": "luo",
        "context":  "Ji mang'eny ok winjre gi kaka chama mar ODM iriembo. Tinde nitie koko mang'eny e chama no.",
        "question": "Chama mane ema ji oko hero kaka iriembo?",
    },
    {
        "lang": "Swahili (Kiswahili)", "iso": "sw",
        "context":  "Wangari Maathai alikuwa mwanamke wa kwanza wa Kiafrika kutuzwa Tuzo la Amani la Nobel mwaka 2004. Alianzisha Harakati ya Ukanda wa Kijani nchini Kenya.",
        "question": "Wangari Maathai alipewa tuzo gani?",
    },
    {
        "lang": "Kikuyu (Gĩkũyũ)", "iso": "kik",
        "context":  "Terebiceni ni mūtambo ūhũthĩkaga harī gūtūma ndūmīrīri cia mbica irathiī. Mītambo īno yambirie kũhũthĩka mīaka-inī ya 1920s.",
        "question": "Terebiceni yambirie kũhũthĩka rĩarĩ?",
    },
]

# inference
results = []
for ex in EXAMPLES:
    out = qa(question=ex["question"], context=ex["context"])
    results.append({**ex, **out})
    print(f"Language : {ex['lang']} [{ex['iso']}]")
    print(f"Context  : {ex['context']}")
    print(f"Question : {ex['question']}")
    print(f"Answer   : {out['answer']}")
    print(f"Score    : {out['score']:.4f}  |  span [{out['start']}:{out['end']}]")
    print("-" * 70)

# Summary
print("\nSummary")
print("=" * 70)
print(f"{'Language':<46} {'Answer':<22} {'Score':>7}")
print("-" * 70)
for r in results:
    ans = r["answer"][:20] + "…" if len(r["answer"]) > 21 else r["answer"]
    print(f"{r['lang']:<46} {ans:<22} {r['score']:>7.4f}")
print("=" * 70)

Output2

You seem to be using the pipelines sequentially on GPU. In order to maximize efficiency please use a dataset
Language : Luo (Dholuo) [luo]
Context  : Ji mang'eny ok winjre gi kaka chama mar ODM iriembo. Tinde nitie koko mang'eny e chama no.
Question : Chama mane ema ji oko hero kaka iriembo?
Answer   : ODM
Score    : 0.7412  |  span [40:43]
----------------------------------------------------------------------
Language : Swahili (Kiswahili) [sw]
Context  : Wangari Maathai alikuwa mwanamke wa kwanza wa Kiafrika kutuzwa Tuzo la Amani la Nobel mwaka 2004. Alianzisha Harakati ya Ukanda wa Kijani nchini Kenya.
Question : Wangari Maathai alipewa tuzo gani?
Answer   : Amani la Nobel
Score    : 0.5133  |  span [71:85]
----------------------------------------------------------------------
Language : Kikuyu (Gĩkũyũ) [kik]
Context  : Terebiceni ni mūtambo ūhũthĩkaga harī gūtūma ndūmīrīri cia mbica irathiī. Mītambo īno yambirie kũhũthĩka mīaka-inī ya 1920s.
Question : Terebiceni yambirie kũhũthĩka rĩarĩ?
Answer   : ya 1920s
Score    : 0.2473  |  span [115:123]
----------------------------------------------------------------------

Summary
======================================================================
Language                                       Answer                   Score
----------------------------------------------------------------------
Luo (Dholuo)                                   ODM                     0.7412
Swahili (Kiswahili)                            Tuzo la Amani la Noble  0.5133
Kikuyu (Gĩkũyũ)                                mīaka-inī ya 1920s      0.2473
======================================================================

Citation

If you use this model or its associated dataset, please cite:

@misc{afrimbert-qa,
  author    = {Theophilus Lincoln Owiti and Alukwe Jones Terah},
  title     = {AfrimBert-QA: Extractive Question Answering for African Languages},
  year      = {2026},
  publisher = {Hugging Face},
  note      = {Carnegie Mellon University, Amidblue},
  url       = {https://huggingface.co/amidblue/AfrimBert-QA}
}

Authors:

  • Theophilus Linicon Owiti — Carnegie Mellon University / Amidblue
  • Alukwe Jones Terah — Amidblue

Model Card Authors

Theophilus Linicon Owiti & Alukwe Jones Terah

Как запустить

На своей GPU в ailist. Цена — по текущим предложениям провайдеров

GPU в ailist

Универсальный рантайм · transformers · question-answering

Можно запустить

Подбираем GPU…

Класс архитектуры
BertForQuestionAnswering
Ревизия весов
1ac3e82

0 моделей