alidemo / app.py
alifatmi's picture
Update app.py
4fa4779
import streamlit as st
st.title("HEALTHQUERY")
import os
import io
import requests
import numpy as np
import pandas as pd
import re
import zipfile
import random
import time
import csv
import datetime
from itertools import compress
from collections import Counter, defaultdict
from sklearn.feature_extraction.text import TfidfVectorizer, CountVectorizer
from sklearn.metrics.pairwise import cosine_similarity
from transformers import AutoTokenizer, AutoConfig, AutoModelForPreTraining, \
AdamW, get_linear_schedule_with_warmup, \
TrainingArguments, BeamScorer, Trainer
import torch
from torch.utils.data import Dataset, random_split, DataLoader, \
RandomSampler, SequentialSampler
#from IPython.display import clear_output
from transformers import BioGptTokenizer, BioGptForCausalLM, TrainerCallback
from transformers import pipeline
#summarizer_bart = pipeline("summarization", model="facebook/bart-large-cnn")
#summarizer_knnkar = pipeline("summarization", model="knkarthick/MEETING_SUMMARY")
summarizer_sshle = pipeline("summarization", model="sshleifer/distilbart-cnn-12-6")
import os
DEBUG = False
INPUT_DIR = 'articles'
USE_APEX = True
APEX_OPT_LEVEL = 'O1'
MODEL = 'gpt2' #{gpt2, gpt2-medium, gpt2-large, gpt2-xl}
UNFREEZE_LAST_N = 6 #The last N layers to unfreeze for training
SPECIAL_TOKENS = { "bos_token": "<|BOS|>",
"eos_token": "<|EOS|>",
"unk_token": "<|UNK|>",
"pad_token": "<|PAD|>",
"sep_token": "<|SEP|>"}
MAXLEN = 256 #{768, 1024, 1280, 1600}
TRAIN_SIZE = 0.8
if USE_APEX:
TRAIN_BATCHSIZE = 16
BATCH_UPDATE = 128
else:
TRAIN_BATCHSIZE = 8
BATCH_UPDATE = 256
EPOCHS = 3
LR = 5e-4
EPS = 1e-8
WARMUP_STEPS = 1e2
SEED = 2020
DEVIDE_BY = 20
os.environ['WANDB_DISABLED'] = 'true'
tokenizer = BioGptTokenizer.from_pretrained("microsoft/biogpt")
model = BioGptForCausalLM.from_pretrained('./')
input_text = st.text_input("Please Provide your text:")
title = input_text
prompt = SPECIAL_TOKENS['bos_token'] + title + SPECIAL_TOKENS['sep_token']
generated = torch.tensor(tokenizer.encode(prompt)).unsqueeze(0)
device =torch.device('cuda' if torch.cuda.is_available() else 'cpu')
generated = generated.to(device)
model.to(device)
model.eval();
# Generate text
if len(input_text)>0:
sample_outputs = model.generate(generated,
do_sample=True,
max_length=MAXLEN,
top_k=10,
top_p=0.7,
temperature=0.5,
repetition_penalty=2.0,
num_return_sequences=1
)
# Initialize an empty list to store the perplexity and text pairs
perplexity_text_pairs = []
for i, sample_output in enumerate(sample_outputs):
text = tokenizer.decode(sample_output,skip_special_tokens=True)
a = len(title)+25
st.write(a)
st.write(("{}: {}\n\n".format(i+1, text[a:])))
# all questions print in above cod
bart_Val=text[a:]
#x=summarizer(bart_Val, max_length=200, min_length=30, do_sample=False)
#st.write('-------Bart summarization-----')
#st.write(x[0]['summary_text'])
#summary=summarizer_knnkar(bart_Val, max_length=200, min_length=30, do_sample=False)
#st.write('-------MEETING_SUMMARY-----')
#st.write(summary[0]['summary_text'])
distl=summarizer_sshle(bart_Val, max_length=200, min_length=30, do_sample=False)
st.write('-------distilbart_cnn_12-6 model -----')
st.write(distl[0]['summary_text'])
else:
st.write('Welcome to GPT2')
# Create a "Regenerate" button
# Display output