| # -*- coding: utf-8 -*- | |
| """Flan-t5-xl_with_GPU.ipynb | |
| Automatically generated by Colaboratory. | |
| Original file is located at | |
| https://colab.research.google.com/drive/15P4GWaUNFBqJf5_I58DxSiusjPiHUeU6 | |
| """ | |
| #import gradio as gr | |
| #def greet(name) | |
| # return "Hello" + name + "!" | |
| #iface = gr.Interface(fn=greet, inputs="text", outputs="text") | |
| #iface.launch() | |
| #theme = gr.themes.Soft().set( | |
| # body_background_fill='*background_fill_secondary', | |
| # body_text_color_subdued='*body_text_color', | |
| # body_text_color_subdued_dark='*chatbot_code_background_color' | |
| #) | |
| #app = gr.Interface( | |
| # fn=qa_result, | |
| # btn=gr.UploadButton("📁", file_types=[".pdf", ".csv", ".doc"], ), | |
| # inputs=['textbox', 'text', 'file'], | |
| # outputs='textbox', | |
| # title='Բարև՛, ինչպե՞ս ես։', | |
| # theme=theme, | |
| # description='Ի՞նչ հարցեր ունես։' | |
| #) | |
| import os | |
| os.environ["PYTORCH_CUDA_ALLOC_CONF"] = "max_split_size_mb:512" | |
| from IPython.display import HTML, display | |
| def set_css(): | |
| display(HTML(''' | |
| <style> | |
| pre { | |
| white-space: pre-wrap; | |
| } | |
| </style> | |
| ''')) | |
| #get_ipython().events.register('pre_run_cell', set_css) | |
| import multiprocessing | |
| import torch | |
| torch.cuda.empty_cache() | |
| from deep_translator import GoogleTranslator | |
| # Use any translator you like, in this example GoogleTranslator | |
| #translated = GoogleTranslator(source='hy', target='en').translate("Բարև, ո՞նց ես։") # output -> Hello, how are you? | |
| #device = "cuda:0" if torch.cuda.is_available() else "cpu" | |
| #device | |
| import streamlit as st | |
| # Set the query parameter to request GPU support | |
| #st.experimental_set_query_parameter('gpu', 'true') | |
| #x = st.slider('Select a value') | |
| #st.write(x, 'squared is', x * x) | |
| import torch | |
| from transformers import T5Tokenizer, T5ForConditionalGeneration | |
| tokenizer = T5Tokenizer.from_pretrained("google/flan-t5-xl") | |
| model = T5ForConditionalGeneration.from_pretrained("google/flan-t5-xl", device_map = "auto") | |
| # Move the model to the GPU | |
| model = model.to('cuda') | |
| # We are running FP32! | |
| #my_text = "Summarize: \ | |
| #Science can ignite new discoveries for society, \ | |
| #Society has the tendency to refer to old, familiar ways of doing. \ | |
| #Chaos is also a part of our society, although increasingly often so.\ | |
| #Innovative ways lead to new growthin businesses and under certain conditions all of society participates." | |
| #my_text = "Write an essay with 100 words about Quantum Physics and it's problems regarding our understanding of laws of Physics." | |
| #my_text = "Q: Can Geoffrey Hinton have a conversation with George Washington? Give the rationale before answering." | |
| # my_text = "A short explanation of machine learning for medical applications." | |
| def process(): | |
| ##translated = st.text_input("Գրեք ձեր հարցը: ") | |
| ##my_text = GoogleTranslator(source='hy', target='en').translate(translated) | |
| ##input_ids = tokenizer(my_text, return_tensors = "pt").input_ids.to("cuda") | |
| #From Here | |
| # User input | |
| user_input = st.text_input("Գրեք ձեր հարցը...", "") | |
| my_text = GoogleTranslator(source='hy', target='en').translate(user_input) | |
| if my_text: | |
| # Tokenize input and move to the GPU | |
| input_ids = tokenizer.encode(my_text, return_tensors="pt").to('cuda') | |
| # Generate text | |
| with torch.no_grad(): | |
| outputs = model.generate(input_ids) | |
| generated_text = tokenizer.decode(outputs[0], skip_special_tokens=True) | |
| #To Here | |
| #outputs = model.generate(input_ids, | |
| #min_length = 20, | |
| #max_new_tokens = 600, | |
| #length_penalty = 1.0, # Set to values < 1.0 in order to encourage the model to generate shorter answers. | |
| #num_beams = 10, | |
| #no_repeat_ngram_size = 3, | |
| #temperature = 0, | |
| #top_k = 150, # default 50 | |
| #top_p = 0.92, | |
| #repetition_penalty = 2.1) | |
| #generated_text = tokenizer.decode(outputs[0], skip_special_tokens=True) | |
| st.write(GoogleTranslator(source='en', target='hy').translate(generated_text)) | |
| process() | |