import streamlit as st import torch def summarize_function(notes): gen_text = pipe(notes, max_length=(len(notes.split(' '))*2*1.225), temperature=0.8, num_return_sequences=1, top_p=0.2)[0]['generated_text'][len(notes):] for i in range(len(gen_text)): if gen_text[-i-8:].startswith('[Notes]:'): gen_text = gen_text[:-i-8] st.write('Summary: ') return gen_text st.markdown("

GPT Clinical Notes Summarizer 0.1v

", unsafe_allow_html=True) st.markdown("
by Bryan Mildort
", unsafe_allow_html=True) from transformers import AutoTokenizer, AutoModelForCausalLM, pipeline # from accelerate import infer_auto_device_map device = "cuda:0" if torch.cuda.is_available() else "cpu" # device_str = f"""Device being used: {device}""" # st.write(device_str) # device_map = infer_auto_device_map(model, dtype="float16") # st.write(device_map) @st.cache(allow_output_mutation=True) def load_model(): model = AutoModelForCausalLM.from_pretrained("bryanmildort/gpt_neo_notes", low_cpu_mem_usage=True, load_in_8bit=True, device_map='auto') # model.to(device) tokenizer = AutoTokenizer.from_pretrained("bryanmildort/gpt_neo_notes") pipe = pipeline("text-generation", model=model, tokenizer=tokenizer) return pipe pipe = load_model() prompt = """Admission Date: 2130-4-14 Discharge Date: 2130-4-17 Date of Birth: 2082-12-11 Sex: M Service: #58 HISTORY OF PRESENT ILLNESS: Mr. Jefferson is a 47 year-old man with extreme obesity with a body weight of 440 pounds who is 5'7" tall and has a BMI of 69. He has had numerous weight loss programs in the past without significant long term effect and also has significant venostasis ulcers in his lower extremities. He has no known drug allergies. His only past medical history other then obesity is osteoarthritis for which he takes Motrin and smoker's cough secondary to smoking one pack per day for many years. He has used other narcotics, cocaine and marijuana, but has been clean for about fourteen years. He was admitted to the General Surgery Service status post gastric bypass surgery on 2130-4-14. The surgery was uncomplicated, however, Mr. Jefferson was admitted to the Surgical Intensive Care Unit after his gastric bypass secondary to unable to extubate secondary to a respiratory acidosis. The patient had decreased urine output, but it picked up with intravenous fluid hydration. He was successfully extubated on 4-15 in the evening and was transferred to the floor on 2130-4-16 without difficulty. He continued to have slightly labored breathing and was requiring a face tent mask to keep his saturations in the high 90s. However, was advanced according to schedule and tolerated a stage two diet and was transferred to the appropriate pain management. He was out of bed without difficulty and on postoperative day three he was advanced to a stage three diet and then slowly was discontinued. He continued to use a face tent overnight, but this was discontinued during the day and he was advanced to all of the usual changes for postoperative day three gastric bypass patient. He will be discharged home today postoperative day three in stable condition status post gastric bypass. DISCHARGE MEDICATIONS: Vitamin B-12 1 mg po q.d., times two months, Zantac 150 mg po b.i.d. times two months, Actigall 300 mg po b.i.d. times six months and Roxicet elixir one to two teaspoons q 4 hours prn and Albuterol Atrovent meter dose inhaler one to two puffs q 4 to 6 hours prn. He will follow up with Dr. Morrow in approximately two weeks as well as with the Lowery Medical Center Clinic. Kevin Gonzalez, M.D. R35052373 Dictated By:Dotson MEDQUIST36 D: 2130-4-17 08:29 T: 2130-4-18 08:31 JOB#: Job Number 20340""" input_text = st.text_area("Notes:", prompt) if st.button('Summarize'): final_input = f"""[Notes]:\n{input_text}\n[Summary]:\n""" st.write(summarize_function(final_input))