From 8d5d6d31c0b12e37feb5cb5bd9f133da57d8c5f5 Mon Sep 17 00:00:00 2001 From: calpt <36051308+calpt@users.noreply.github.com> Date: Tue, 15 Aug 2023 10:53:17 +0200 Subject: [PATCH] Init demo page for "adapters" lib --- app/routes.py | 5 + app/static/images/adapters_feature_table.png | Bin 0 -> 36124 bytes app/templates/adapters_lib.html | 102 +++++++++++++++++++ requirements.txt | 2 +- 4 files changed, 108 insertions(+), 1 deletion(-) create mode 100644 app/static/images/adapters_feature_table.png create mode 100644 app/templates/adapters_lib.html diff --git a/app/routes.py b/app/routes.py index 0e2d85ca3e..208f7c84f1 100644 --- a/app/routes.py +++ b/app/routes.py @@ -141,6 +141,11 @@ def emnlp(): return render_template('alps2022.html') +@bp.route('/adapters/') +def adapters_lib(): + return render_template('adapters_lib.html') + + @bp.app_errorhandler(404) def error_404(error): return render_template('errors/404.html'), 404 diff --git a/app/static/images/adapters_feature_table.png b/app/static/images/adapters_feature_table.png new file mode 100644 index 0000000000000000000000000000000000000000..4933e44f22c8c75ae37b23c69eb9d9796cf5b499 GIT binary patch literal 36124 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 literal 0 HcmV?d00001 diff --git a/app/templates/adapters_lib.html b/app/templates/adapters_lib.html new file mode 100644 index 0000000000..d69862a0e6 --- /dev/null +++ b/app/templates/adapters_lib.html @@ -0,0 +1,102 @@ +{% extends 'base.html' %} +{% set active_page = "adapters" %} + +{% block header %} +

+ {% block title %} Adapters {% endblock %} +

+

+ A Unified Library for Parameter-Efficient and Modular Transfer Learning +

+{% endblock %} + +{% block content %} + +
+

Abstract

+ + We introduce Adapters, an open-source library + that unifies parameter-efficient and modular + transfer learning in large language models. By + integrating 10 diverse adapter methods into + a unified interface, Adapters offers ease of + use and flexible configuration. Our library + allows researchers and practitioners to lever- + age adapter modularity through composition + blocks, enabling the design of complex adapter + setups. We demonstrate the library's efficacy + by evaluating its performance against full fine- + tuning on various NLP tasks. Adapters pro- + vides a powerful tool for addressing the chal- + lenges of conventional fine-tuning paradigms + and promoting more efficient and modular + transfer learning. + +
+ +
+

Package

+ +
+
+   + PyPI Package +
+
+
+

+The Adapters package can be installed via pip: +

+pip install adapters
+
+

+
+ +
+
+ +
+

Demo

+ +
+
+   + Screencast Video +
+
+
+

+ Example Usage: +

+import adapters
+from transformers import BertModel
+
+model = BertModel.from_pretrained("bert-base-uncased")
+adapters.init(model)
+
+model.add_adapter("my-adapter", config="seq_bn")
+
+

+
+ +
+

Code

+ +
+
+   + Code Repository +
+
+
+
+ +
+

Features

+ Feature comparison between the initial AdapterHub release and the proposed Adapters library: +
+ +
+
+ +{% endblock %} diff --git a/requirements.txt b/requirements.txt index ec11f39f82..261c1d530c 100644 --- a/requirements.txt +++ b/requirements.txt @@ -4,7 +4,7 @@ Flask-Assets == 2.0 Flask-Markdown == 0.3 Flask-SQLAlchemy == 2.4.1 Frozen-Flask == 0.15 -jsmin == 2.2.2 +jsmin == 3.0.1 pygments == 2.7.4 python-markdown-math == 0.8 requests == 2.23