square-core
SQuARE: Software for question answering research.
Science Score: 67.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
✓DOI references
Found 3 DOI reference(s) in README -
✓Academic publication links
Links to: arxiv.org -
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (17.4%) to scientific vocabulary
Keywords
Repository
SQuARE: Software for question answering research.
Basic Info
- Host: GitHub
- Owner: UKP-SQuARE
- License: apache-2.0
- Language: Python
- Default Branch: master
- Homepage: https://square.ukp-lab.de
- Size: 172 MB
Statistics
- Stars: 75
- Watchers: 4
- Forks: 15
- Open Issues: 16
- Releases: 10
Topics
Metadata Files
README.md
Flexible and Extensible Question Answering Platform
SQuARE is a flexible and extensible Question Answering (QA) platform to enable users to easily implement, manage and share their custom QA pipelines (aka Skills in SQuARE).
Two ways are supported to use SQuARE: 1. 🌐 Get access to the existing QA Skills (and even deploy your Skill!) via our demo page; 2. 💾 Or clone and install SQuARE to host services on a local machine.
Why SQuARE?
Recent advances in NLP and information retrieval have given rise to a diverse set of question answering tasks that are of different formats (e.g., extractive, abstractive), require different model architectures (e.g., generative, discriminative) and setups (e.g., with or without retrieval). Despite having a large number of powerful, specialized QA pipelines (a.k.a., Skills) that consider a single domain, model or setup, there exists no framework where users can easily explore and compare such pipelines and can extend them according to their needs.
To address this issue, we present SQuARE, an extensible online QA platform for researchers which allows users to query and analyze a large collection of modern Skills via a user-friendly web interface and integrated behavioural tests. In addition, QA researchers can develop, manage and share their custom Skills using our microservices that support a wide range of models (Transformers, Adapters, ONNX), datastores and retrieval techniques (e.g., sparse and dense).
Find out more about the project on UKPs Website.
Get Started
👉 If you want to use the SQuARE public service online, you can refer to Online Service for using the existing skills and refer to Add New Skills for adding new skills.
👉 If you want to deploy SQuARE locally yourself, please refer to Local Installation.
👉 For illustration of the architecture, please refer to Architecture.
👉 And welcome to contact us.
Online Service
Try out the on-the-go skills on the demo page! The existing skills include span-extraction, abstractive, multi-choice QA with contexts or without contexts (open QA based on retrieval).
Screenshot
Add New Skills
To add new skills, please see the skills section.
Local Installation
One can also refer to this minimal version for a simpler local setup.
Requirements
To run UKP-SQuARE locally, you need the following software: * docker * docker-compose * ytt * jq
Install
Next change the environment to local and os to your operating system in the config.yaml.
Now, modify your /etc/hosts to contain:
127.0.0.1 square.ukp-lab.localhost
For installation we provide a script that takes care of the entire setup for you. After installing the previous requirements, simply run:
bash
bash install.sh
Run
Finally, you can run the full system with docker-compose. Before doing so, you might want to reduce the number of models running depending on your resources. To do so, remove the respective services from the docker-compose.
bash
docker-compose up -d
Check with docker-compose logs -f if all systems have started successfully. Once they are up and running go to square.ukp-lab.localhost.
👉 Accept that the browser cannot verify the certificate.
Add Skills
Add Skills according to the Add New Skills section. Note that, for open-domain skills the datastore need to created first.
Architecture
For a whole (open QA) skill pipeline, it requires 6 steps: 1. First a user selects a Skill and issues a query via the user interface; 2. The selected QA Skill forwards the query to the respective Datastore for document retrieval; 3. The Datastore gets the query embedding from the Models, uses it for semantic document retrieval and returns the top documents to the Skill; 4. The Skill sends the query and retrieved documents to the reader model for answer extraction; 5. Finally, the answers are shown to the user; 6. Optionally, the user can view the results of the predefined behavioural tests for the Skill.
Contact
The current main contributors of this repository are: - Tim Baumgärtner, Kexin Wang, Rachneet Singh Sachdeva, Haritz Puerto, Hao Zhang, Sewin Tariverdian
Contact person: Haritz Puerto (UI and general questions), Tim Baumgärtner (Skills), Kexin Wang (Datastores), Rachneet Singh Sachdeva (Models),
Previous contributors: - Max Eichler, Gregor Geigle, Clifton Poth, Hannah Sterz
https://www.ukp.tu-darmstadt.de/
Don't hesitate to send us an e-mail or report an issue, if something is broken (and it shouldn't be) or if you have further questions.
Citation
If you find our work useful, please consider citing our ACL and AACL papers.
SQuARE v1@ACL 2022 Demo Track.
```bibtex
@inproceedings{baumgartner-etal-2022-ukp,
title = "{UKP}-{SQ}u{ARE}: An Online Platform for Question Answering Research",
author = {Baumg{\"a}rtner, Tim and
Wang, Kexin and
Sachdeva, Rachneet and
Geigle, Gregor and
Eichler, Max and
Poth, Clifton and
Sterz, Hannah and
Puerto, Haritz and
Ribeiro, Leonardo F. R. and
Pfeiffer, Jonas and
Reimers, Nils and
{\c{S}}ahin, G{\"o}zde and
Gurevych, Iryna},
booktitle = "Proceedings of the 60th Annual Meeting of the Association for Computational Linguistics: System Demonstrations",
month = may,
year = "2022",
address = "Dublin, Ireland",
publisher = "Association for Computational Linguistics",
url = "https://aclanthology.org/2022.acl-demo.2",
doi = "10.18653/v1/2022.acl-demo.2",
pages = "9--22",
}
``` SQuARE v2@AACL 2022 Demo Track.
```bibtex @inproceedings{sachdeva-etal-2022-ukp, title = "{UKP}-{SQ}u{ARE} v2: Explainability and Adversarial Attacks for Trustworthy {QA}", author = {Sachdeva, Rachneet and Puerto, Haritz and Baumg{\"a}rtner, Tim and Tariverdian, Sewin and Zhang, Hao and Wang, Kexin and Saadi, Hossain Shaikh and Ribeiro, Leonardo F. R. and Gurevych, Iryna}, booktitle = "Proceedings of the 2nd Conference of the Asia-Pacific Chapter of the Association for Computational Linguistics and the 12th International Joint Conference on Natural Language Processing: System Demonstrations", month = nov, year = "2022", address = "Taipei, Taiwan", publisher = "Association for Computational Linguistics", url = "https://aclanthology.org/2022.aacl-demo.4", pages = "28--38", }
```
SQuARE v3@ACL 2023 Demo Track.
```bibtex
@inproceedings{puerto-etal-2023-ukp,
title = "{UKP}-{SQ}u{ARE} v3: A Platform for Multi-Agent {QA} Research",
author = {Puerto, Haritz and
Baumg{\"a}rtner, Tim and
Sachdeva, Rachneet and
Fang, Haishuo and
Zhang, Hao and
Tariverdian, Sewin and
Wang, Kexin and
Gurevych, Iryna},
editor = "Bollegala, Danushka and
Huang, Ruihong and
Ritter, Alan",
booktitle = "Proceedings of the 61st Annual Meeting of the Association for Computational Linguistics (Volume 3: System Demonstrations)",
month = jul,
year = "2023",
address = "Toronto, Canada",
publisher = "Association for Computational Linguistics",
url = "https://aclanthology.org/2023.acl-demo.55",
doi = "10.18653/v1/2023.acl-demo.55",
pages = "569--580",
}
```
If you want to use SQuARE for teaching an NLP course, check our paper: UKP-SQuARE: An Interactive Tool for Teaching Question Answering ```bibtex @inproceedings{fang-etal-2023-ukp, title = "{UKP}-{SQ}u{ARE}: An Interactive Tool for Teaching Question Answering", author = "Fang, Haishuo and Puerto, Haritz and Gurevych, Iryna", editor = {Kochmar, Ekaterina and Burstein, Jill and Horbach, Andrea and Laarmann-Quante, Ronja and Madnani, Nitin and Tack, Ana{\"\i}s and Yaneva, Victoria and Yuan, Zheng and Zesch, Torsten}, booktitle = "Proceedings of the 18th Workshop on Innovative Use of NLP for Building Educational Applications (BEA 2023)", month = jul, year = "2023", address = "Toronto, Canada", publisher = "Association for Computational Linguistics", url = "https://aclanthology.org/2023.bea-1.17", doi = "10.18653/v1/2023.bea-1.17", pages = "195--204", }
```
This repository contains experimental software and is published for the sole purpose of giving additional background details on the respective publication. We are not held responsible for errors, false, or offensive content generated by the deployed models.
Owner
- Name: UKP-SQuARE
- Login: UKP-SQuARE
- Kind: organization
- Repositories: 10
- Profile: https://github.com/UKP-SQuARE
Citation (CITATION.cff)
cff-version: "1.2.0"
date-released: 2022-03
message: "If you use this software, please cite it as below."
title: "UKP-SQuARE: An Online Platform for Question Answering Research"
url: "https://https://square.ukp-lab.de/"
authors:
- family-names: Baumgärtner
given-names: Tim
affiliation: TU Darmstadt
email: baumgaertner@ukp.informatik.tu-darmstadt.de
- family-names: Wang
given-names: Kexin
affiliation: TU Darmstadt
email: kwang@ukp.informatik.tu-darmstadt.de
- family-names: Sachdeva
given-names: Rachneet
affiliation: TU Darmstadt
email: sachdeva@ukp.informatik.tu-darmstadt.de
- family-names: Geigle
given-names: Gregor
affiliation: TU Darmstadt
email: geigle@ukp.informatik.tu-darmstadt.de
- family-names: Eichler
given-names: Max
affiliation: TU Darmstadt
email: meichler@ukp.informatik.tu-darmstadt.de
- family-names: Poth
given-names: Clifton
affiliation: TU Darmstadt
email: poth@ukp.informatik.tu-darmstadt.de
- family-names: Sterz
given-names: Hannah
affiliation: TU Darmstadt
email: sterz@ukp.informatik.tu-darmstadt.de
- family-names: Puerto
given-names: Haritz
affiliation: TU Darmstadt
email: puerto@ukp.informatik.tu-darmstadt.de
- family-names: Ribeiro
given-names: Leonardo F. R.
affiliation: TU Darmstadt
email: ribeiro@aiphes.tu-darmstadt.de
- family-names: Pfeiffer
given-names: Jonas
affiliation: TU Darmstadt
email: pfeiffer@ukp.informatik.tu-darmstadt.de
- family-names: Reimers
given-names: Nils
affiliation: Hugging Face
email: reimers@ukp.informatik.tu-darmstadt.de
- family-names: Şahin
given-names: Gözde
affiliation: Koç University
email: gosahin@ku.edu.tr
- family-names: Gurevych
given-names: Iryna
affiliation: TU Darmstadt
email: gurevych@ukp.informatik.tu-darmstadt.de
preferred-citation:
type: inproceedings
authors:
- family-names: Baumgärtner
given-names: Tim
affiliation: TU Darmstadt
email: baumgaertner@ukp.informatik.tu-darmstadt.de
- family-names: Wang
given-names: Kexin
affiliation: TU Darmstadt
email: kwang@ukp.informatik.tu-darmstadt.de
- family-names: Sachdeva
given-names: Rachneet
affiliation: TU Darmstadt
email: sachdeva@ukp.informatik.tu-darmstadt.de
- family-names: Geigle
given-names: Gregor
affiliation: TU Darmstadt
email: geigle@ukp.informatik.tu-darmstadt.de
- family-names: Eichler
given-names: Max
affiliation: TU Darmstadt
email: meichler@ukp.informatik.tu-darmstadt.de
- family-names: Poth
given-names: Clifton
affiliation: TU Darmstadt
email: poth@ukp.informatik.tu-darmstadt.de
- family-names: Sterz
given-names: Hannah
affiliation: TU Darmstadt
email: sterz@ukp.informatik.tu-darmstadt.de
- family-names: Puerto
given-names: Haritz
affiliation: TU Darmstadt
email: puerto@ukp.informatik.tu-darmstadt.de
- family-names: Ribeiro
given-names: Leonardo F. R.
affiliation: TU Darmstadt
email: ribeiro@aiphes.tu-darmstadt.de
- family-names: Pfeiffer
given-names: Jonas
affiliation: TU Darmstadt
email: pfeiffer@ukp.informatik.tu-darmstadt.de
- family-names: Reimers
given-names: Nils
affiliation: Hugging Face
email: reimers@ukp.informatik.tu-darmstadt.de
- family-names: Şahin
given-names: Gözde
affiliation: Koç University
email: gosahin@ku.edu.tr
- family-names: Gurevych
given-names: Iryna
affiliation: TU Darmstadt
email: gurevych@ukp.informatik.tu-darmstadt.de
booktitle: "Proceedings of the 60th Annual Meeting of the Association for Computational Linguistics: System Demonstrations"
month: 5
start: 9
end: 22
title: "UKP-SQuARE: An Online Platform for Question Answering Research"
year: 2022
publisher: "Association for Computational Linguistics"
url: "https://aclanthology.org/2022.acl-demo.2/"
address: "Dublin, Ireland"
GitHub Events
Total
- Watch event: 3
- Fork event: 1
Last Year
- Watch event: 3
- Fork event: 1
Issues and Pull Requests
Last synced: about 2 years ago
All Time
- Total issues: 2
- Total pull requests: 98
- Average time to close issues: 3 months
- Average time to close pull requests: 6 days
- Total issue authors: 2
- Total pull request authors: 8
- Average comments per issue: 0.5
- Average comments per pull request: 0.05
- Merged pull requests: 29
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 1
- Pull requests: 81
- Average time to close issues: 6 months
- Average time to close pull requests: 5 days
- Issue authors: 1
- Pull request authors: 7
- Average comments per issue: 1.0
- Average comments per pull request: 0.01
- Merged pull requests: 18
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
- HaritzPuerto (1)
- Danghor (1)
Pull Request Authors
- Rachneet (126)
- muhammed-shihebi (25)
- HaritzPuerto (7)
- snyk-bot (6)
- timbmg (4)
- EgorZadorin (4)
- L0rs (3)
- McBattery (2)
Top Labels
Issue Labels
Pull Request Labels
Dependencies
- 1198 dependencies
- husky ^7.0.0 development
- @docusaurus/core ^2.0.0-beta.18
- @docusaurus/plugin-content-docs ^2.0.0-beta.18
- @docusaurus/preset-classic ^2.0.0-beta.18
- @mdx-js/react ^1.6.21
- clsx ^1.1.1
- prism-react-renderer ^1.2.1
- react ^17.0.1
- react-dom ^17.0.1
- redocusaurus ^0.7.0
- pytest >=7.0.1
- pytest-cov >=3.0.0
- pytest-env >=0.6.2
- pytest-mock >=3.7.0
- requests-mock >=1.9.3
- testcontainers ==3.4.2
- Jinja2 >=3.0.1
- elasticsearch >=7.16.1
- fastapi >=0.73.0
- filelock >=3.0.12
- numpy >=1.21.5
- pydantic >=1.8.2
- pyjwt ==2.3.0
- pymongo ==4.0.2
- python-dotenv >=0.18.0
- python-multipart >=0.0.5
- requests >=2.25.1
- square-auth >=0.0.7
- uvicorn >=0.14.0
- locust ==2.7.0
- black >=21.11b1
- pyjwt >=2.3.0
- pytest >=6.2.5
- pytest-asyncio >=0.18.2
- pytest-cov >=3.0.0
- pytest-env >=0.6.2
- python-dotenv >=0.19.2
- python-keycloak >=0.26.1
- responses >=0.16.0
- testcontainers >=3.5.0
- fastapi >=0.70.0
- pydantic >=1.8.2
- pymongo >=3.12.1
- requests >=2.26.0
- square-auth >=0.0.7
- uvicorn >=0.15.0
- Flask *
- Flask-CORS *
- eventlet *
- pytorch *
- pyyaml *
- requests *
- transformer *
- actions/cache v3 composite
- actions/checkout v3 composite
- distributhor/workflow-webhook v2 composite
- docker/build-push-action v3 composite
- docker/login-action v2 composite
- docker/setup-buildx-action v2 composite
- haya14busa/action-cond v1 composite
- actions/cache v2 composite
- actions/checkout v2 composite
- actions/upload-artifact v2 composite
- addnab/docker-run-action v3 composite
- docker/build-push-action v2 composite
- docker/setup-buildx-action v1 composite
- mikepenz/action-junit-report v2 composite
- actions/cache v2 composite
- actions/checkout v2 composite
- actions/upload-artifact v2 composite
- addnab/docker-run-action v3 composite
- docker/build-push-action v2 composite
- docker/setup-buildx-action v1 composite
- actions/cache v2 composite
- actions/checkout v3 composite
- actions/upload-artifact v3 composite
- docker/build-push-action v3 composite
- docker/login-action v2 composite
- docker/setup-buildx-action v2 composite
- mikepenz/action-junit-report v3 composite
- shrink/actions-docker-extract v1 composite
- actions/checkout v3 composite
- actions/upload-artifact v3 composite
- docker/build-push-action v3 composite
- docker/setup-buildx-action v2 composite
- mikepenz/action-junit-report v3 composite
- shrink/actions-docker-extract v1 composite
- actions/cache v2 composite
- actions/checkout v2 composite
- actions/upload-artifact v2 composite
- addnab/docker-run-action v3 composite
- docker/build-push-action v2 composite
- docker/setup-buildx-action v1 composite
- fadenb/matrix-chat-message v0.0.6 composite
- base latest build
- python 3.11-slim-buster build
- docker.elastic.co/elasticsearch/elasticsearch 7.16.1
- mongo 5.0.4
- traefik v2.5
- mongo 5.0.4
- rabbitmq 3.9.14-management
- redis latest
- traefik v2.8.7
- nginx 1.23.3-alpine build
- node lts-alpine build
- base latest build
- python 3.10.8-slim-buster build
- nginx 1.23.1-alpine build
- node lts-alpine build
- docker.elastic.co/beats/filebeat 7.16.1
- docker.elastic.co/elasticsearch/elasticsearch 7.16.1
- docker.elastic.co/kibana/kibana 7.16.1
- docker.elastic.co/logstash/logstash 7.16.1
- base latest build
- build latest build
- python 3.10.8-slim-buster build
- mongo-express latest
- traefik v2.8.7
- base latest build
- python 3.9.14-slim-buster build
- base latest build
- python 3.10.8-slim-buster build
- mongo 5.0.4
- rabbitmq 3.9.14-management
- redis latest
- base latest build
- python 3.10.8-slim-buster build
- python 3.10.8-slim-buster build
- 1312 dependencies
- @babel/eslint-parser ^7.16.3 development
- @vue/cli-plugin-babel ^4.5.15 development
- @vue/cli-plugin-eslint ^5.0.0-rc.1 development
- @vue/cli-plugin-router ^4.5.15 development
- @vue/cli-plugin-vuex ^4.5.15 development
- @vue/cli-service ^4.5.15 development
- css-loader ^5.2.7 development
- eslint ^8.3.0 development
- eslint-plugin-vue ^8.1.1 development
- sass ^1.43.5 development
- sass-loader ^10.2.0 development
- vue-style-loader ^4.1.3 development
- vue-template-compiler ^2.6.14 development
- webpack ^4.46.0 development
- @johmun/vue-tags-input ^2.1.0
- @popperjs/core ^2.11.5
- axios ^0.24.0
- bootstrap ^5.2.3
- bootstrap-icons-vue ^1.8.1
- bootstrap-vue ^2.23.1
- core-js ^3.19.1
- cytoscape ^3.22.1
- cytoscape-dagre ^2.4.0
- cytoscape-popper ^2.0.0
- dompurify ^2.3.3
- keycloak-js ^17.0.0
- masonry-layout ^4.2.2
- package.json ^2.0.1
- string-punctuation-tokenizer ^2.2.0
- tippy.js ^6.3.7
- v-page ^2.1.0
- vue ^2.6.14
- vue-multiselect ^2.1.6
- vue-router ^3.5.3
- vue-tippy ^4.16.0
- vuex ^3.6.2
- black * development
- httpx * development
- isort * development
- pre-commit * development
- pyjwt >=2.3.0 development
- pytest >=6.2.5 development
- pytest-asyncio >=0.18.2 development
- pytest-cov >=3.0.0 development
- pytest-env >=0.6.2 development
- python-dotenv >=0.19.2 development
- python-keycloak >=0.26.1 development
- responses >=0.16.0 development
- testcontainers >=3.5.0 development
- celery ==5.1.2
- datasets *
- evaluate *
- fastapi >=0.70.0
- pydantic >=1.8.2
- pymongo >=3.12.1
- redis ==4.1.4
- requests >=2.26.0
- requests-cache *
- scikit-learn *
- square-auth ==0.0.14
- square-elk-json-formatter ==0.0.3
- square-skill-api ==0.0.43
- uvicorn >=0.15.0
- docker *
- faiss-instant *
- square-auth ==0.0.14
- square-model-client *
- tqdm *
- locust ==2.7.0
- setuptools >=65.5.1
- httpx * development
- pytest * development
- pytest-asyncio * development
- pytest-cov * development
- pytest-env * development
- pytest * development
- pytest-asyncio * development
- pytest-cov * development
- pytest-env * development
- adapter-transformers ==3.1.0
- networkx ==2.8.8
- torch ==1.12.0
- torch-geometric ==2.2.0
- torch-scatter ==2.1.0
- torch-sparse ==0.6.16
- filelock ==3.4.2
- onnxruntime ==1.12.0
- transformers ==4.17.0
- sentence-transformers ==1.2.0
- adapter-transformers ==3.1.0
- protobuf ==3.20.3
- bertviz *
- celery ==5.1.2
- en_core_web_sm *
- fastapi >=0.73.0
- filelock ==3.4.2
- httpx *
- ipython *
- nltk *
- pydantic ==1.8.2
- python-dotenv ==0.17.1
- redis ==4.1.4
- sentencepiece ==0.1.96
- setuptools >=65.5.1
- spacy ==3.0.9
- square-auth ==0.0.14
- square-elk-json-formatter ==0.0.3
- torch ==1.12.0
- uvicorn ==0.13.4
- black ==22.3.0 development
- celery ==5.2.3 development
- docker * development
- fastapi >=0.75.0 development
- flake8 * development
- isort ==5.10.1 development
- pydantic ==1.9.0 development
- pylint ==2.13.4 development
- pymongo >=3.12.1 development
- pytest * development
- pytest-asyncio * development
- pytest-cov * development
- redis ==4.2.0 development
- requests >=2.26.0 development
- square-auth ==0.0.14 development
- square-elk-json-formatter ==0.0.3 development
- uvicorn ==0.17.6 development
- adapter-transformers ==3.1.0
- celery ==5.1.2
- docker *
- fastapi >=0.73.0
- huggingface_hub ==0.10.1
- onnx ==1.12.0
- onnxruntime ==1.12.0
- pydantic ==1.8.2
- pymongo >=3.12.1
- redis ==4.1.4
- requests >=2.26.0
- square-auth ==0.0.14
- square-elk-json-formatter ==0.0.3
- torch ==1.12.0
- uvicorn ==0.13.4
- aiohttp ==3.8.4
- SPARQLWrapper ==1.8.4
- rdflib ==6.1.1
- aiohttp ==3.8.4
- aiohttp ==3.8.4
- black * development
- isort * development
- pre-commit * development
- requests ==2.28.2
- square-datastore-client ==0.0.3
- square-elk-json-formatter ==0.0.3
- square-model-client ==0.0.10
- square-skill-api ==0.0.47