File size: 1,419 Bytes
25f0ea1
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
from flask import Flask, jsonify, request
from transformers import AutoAdapterModel, AutoTokenizer, TextClassificationPipeline
from huggingface_hub import Repository

app = Flask(__name__)

#define model
tokenizer = AutoTokenizer.from_pretrained("UBC-NLP/MARBERT")

sarcasm_adapter = Repository(local_dir="sarcasm_adapter", clone_from="nehalelkaref/sarcasm_adapter")
aoc3_adapter = Repository(local_dir="aoc3_adapter", clone_from="nehalelkaref/aoc3_adapter")
aoc4_adapter = Repository(local_dir="aoc4_adapter", clone_from="nehalelkaref/aoc4_adapter")
fusion_adapter = Repository(local_dir="fusion_adapter", clone_from="nehalelkaref/region_fusion")

model = AutoAdapterModel.from_pretrained("UBC-NLP/MARBERT")

model.load_adapter("/code/aoc3_adapter", set_active=True, with_head=False)
model.load_adapter("/code/aoc4_adapter", set_active=True, with_head=False)
model.load_adapter("/code/sarcasm_adapter", set_active=True, with_head=False)

model.load_adapter_fusion("/code/fusion_adapter/aoc(3),aoc(4),sarcasm",with_head=True, set_active=True)

pipe = TextClassificationPipeline(tokenizer=tokenizer, model=model)

@app.route('/predict', methods=['POST'])
def predict():
  text = request.json['inputs']

  prediction = pipe(text)
  labels = {"LABEL_0":"GULF", "LABEL_1":"LEVANT","LABEL_2":"EGYPT"}
  regions = []
  for res in prediction:
    regions.append(labels[res['label']])

  return jsonify({'response': regions})