Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/kamalkraj/bert-squad
SQuAD Question Answering Using BERT, PyTorch
https://github.com/kamalkraj/bert-squad
bert bert-qna-pretrained-models bert-questionandanswering bert-squad huggingface pretrained-models pytorch question-answering
Last synced: 6 days ago
JSON representation
SQuAD Question Answering Using BERT, PyTorch
- Host: GitHub
- URL: https://github.com/kamalkraj/bert-squad
- Owner: kamalkraj
- License: agpl-3.0
- Created: 2019-08-03T07:12:54.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2023-01-02T10:42:48.000Z (almost 2 years ago)
- Last Synced: 2023-10-20T20:53:54.283Z (about 1 year ago)
- Topics: bert, bert-qna-pretrained-models, bert-questionandanswering, bert-squad, huggingface, pretrained-models, pytorch, question-answering
- Language: Python
- Homepage:
- Size: 195 KB
- Stars: 383
- Watchers: 7
- Forks: 120
- Open Issues: 9
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# BERT-SQuAD
Use google BERT to do SQuAD !
# What is SQuAD?
Stanford Question Answering Dataset (SQuAD) is a reading comprehension dataset, consisting of questions posed by crowdworkers on a set of Wikipedia articles, where the answer to every question is a segment of text, or span, from the corresponding reading passage, or the question might be unanswerable.# Requirements
- python3
- pip3 install -r requirements.txt# Result
`model` : bert-large-uncased-whole-word-masking
```json
{"exact_match": 86.91579943235573, "f1": 93.1532499015869}
```
## Pretrained model download from [here](https://www.dropbox.com/s/8jnulb2l4v7ikir/model.zip)
unzip and move files to model directory# Inference
```python
from bert import QAmodel = QA('model')
doc = "Victoria has a written constitution enacted in 1975, but based on the 1855 colonial constitution, passed by the United Kingdom Parliament as the Victoria Constitution Act 1855, which establishes the Parliament as the state's law-making body for matters coming under state responsibility. The Victorian Constitution can be amended by the Parliament of Victoria, except for certain 'entrenched' provisions that require either an absolute majority in both houses, a three-fifths majority in both houses, or the approval of the Victorian people in a referendum, depending on the provision."
q = 'When did Victoria enact its constitution?'
answer = model.predict(doc,q)
print(answer['answer'])
# 1975
print(answer.keys())
# dict_keys(['answer', 'start', 'end', 'confidence', 'document']))
```
`model.predict(doc,q)` return `dict`
```json
{
"answer" : "answer text",
"start" : "start index",
"end" : "end index",
"confiednce" : "confidence of answer",
"document" : "tokenzied document , list"
}
```# Deploy REST-API
BERT QA model deployed as rest api```bash
python api.py
```
API will be live at `0.0.0.0:8000` endpoint `predict`### cURL request
```bash
curl -X POST http://0.0.0.0:8000/predict -H 'Content-Type: application/json' -d '{ "document": "Victoria has a written constitution enacted in 1975, but based on the 1855 colonial constitution, passed by the United Kingdom Parliament as the Victoria Constitution Act 1855, which establishes the Parliament as the states law-making body for matters coming under state responsibility. The Victorian Constitution can be amended by the Parliament of Victoria, except for certain 'entrenched' provisions that require either an absolute majority in both houses, a three-fifths majority in both houses, or the approval of the Victorian people in a referendum, depending on the provision.","question":"When did Victoria enact its constitution?" }'
```
#### Output
```json
{
"result": {
"answer": "1975",
"confidence": 0.940746070672879,
"document": [
"Victoria",
"has",
"a",
"written",
"constitution",
"enacted",
"in",
"1975,",
"but",
"based",
"on",
"the",
"1855",
"colonial",
"constitution,",
"passed",
"by",
"the",
"United",
"Kingdom",
"Parliament",
"as",
"the",
"Victoria",
"Constitution",
"Act",
"1855,",
"which",
"establishes",
"the",
"Parliament",
"as",
"the",
"states",
"law-making",
"body",
"for",
"matters",
"coming",
"under",
"state",
"responsibility.",
"The",
"Victorian",
"Constitution",
"can",
"be",
"amended",
"by",
"the",
"Parliament",
"of",
"Victoria,",
"except",
"for",
"certain",
"entrenched",
"provisions",
"that",
"require",
"either",
"an",
"absolute",
"majority",
"in",
"both",
"houses,",
"a",
"three-fifths",
"majority",
"in",
"both",
"houses,",
"or",
"the",
"approval",
"of",
"the",
"Victorian",
"people",
"in",
"a",
"referendum,",
"depending",
"on",
"the",
"provision."
],
"end": 7,
"start": 7
}
}
```
#### Postman
![postman output image](/img/postman.png)