|
from typing import Any |
|
from typing import Dict |
|
from typing import List |
|
|
|
|
|
def report_gpu_usage() -> str: |
|
import os |
|
return os.popen("nvidia-smi").read() |
|
|
|
|
|
class EndpointHandler: |
|
def __init__(self, path=""): |
|
import torch |
|
from transformers import AutoModelForSeq2SeqLM |
|
from transformers import AutoTokenizer |
|
import os |
|
|
|
os.environ["TOKENIZERS_PARALLELISM"] = "false" |
|
model_kwargs: dict[str, any] = dict() |
|
if torch.cuda.is_available(): |
|
model_kwargs["load_in_8bit"] = True |
|
model_kwargs["torch_dtype"] = torch.bfloat16 |
|
model_kwargs["device_map"] = "auto" |
|
model_kwargs["low_cpu_mem_usage"] = True |
|
self.model = AutoModelForSeq2SeqLM.from_pretrained(path, **model_kwargs) |
|
self.tokenizer = AutoTokenizer.from_pretrained(path) |
|
self.device = "cuda" if torch.cuda.is_available() else "cpu" |
|
print(f"Loaded model {path} to {self.device}") |
|
|
|
def __call__(self, data: Dict[str, Any]) -> List[Dict[str, any]]: |
|
import os |
|
os.environ["TOKENIZERS_PARALLELISM"] = "false" |
|
|
|
inputs = data.pop("inputs", data) |
|
input_ids = self.tokenizer(inputs, return_tensors="pt").input_ids.to(self.device) |
|
|
|
parameters = data.pop("parameters", None) |
|
if parameters is None: |
|
parameters = dict() |
|
|
|
with BlockTimer() as timer: |
|
outputs = self.model.generate(input_ids, **parameters) |
|
print(f"Inference elapsed: {round(timer.duration, 2)}") |
|
return_value: List[Dict[str, any]] = list() |
|
|
|
gpu_info = report_gpu_usage() |
|
for output in outputs: |
|
prediction = self.tokenizer.decode(output, skip_special_tokens=True) |
|
entry = {"generated_text": prediction, "elapsed": timer.duration} |
|
if gpu_info: |
|
entry["gpu_info"] = gpu_info |
|
gpu_info = None |
|
return_value.append(entry) |
|
return return_value |
|
|
|
|
|
class BlockTimer(object): |
|
def __enter__(self): |
|
import time |
|
self.start = time.perf_counter() |
|
return self |
|
|
|
def __exit__(self, typ, value, traceback): |
|
import time |
|
self.duration = time.perf_counter() - self.start |
|
|
|
|
|
def _force_not_available() -> bool: |
|
return False |
|
|
|
|
|
def test() -> None: |
|
import textwrap |
|
|
|
handler = EndpointHandler(path="bigscience/mt0-xl") |
|
parameters: dict[str, any] = {"max_length": 256, "min_length": 1, |
|
"no_repeat_ngram_size": 3, |
|
|
|
"repetition_penalty": 3.5, |
|
|
|
|
|
"do_sample": True, |
|
"temperature": 0.1, |
|
"early_stopping": True, } |
|
payload = {"inputs": f"{wall_of_text()}", "parameters": parameters} |
|
results = handler.__call__(payload) |
|
for entry in results[0].items(): |
|
print() |
|
print(f"=== {entry[0]}") |
|
if entry[0] == "gpu_info": |
|
gpu_info_lines = entry[1].split("\n") |
|
for line in gpu_info_lines: |
|
if "Default |" in line: |
|
print(line) |
|
else: |
|
print(textwrap.fill(str( |
|
entry[1]), 140, drop_whitespace=False, replace_whitespace=False)) |
|
|
|
|
|
def wall_of_text() -> str: |
|
return """ |
|
Write a journal article headline for the following. |
|
|
|
The present invention relates to compositions and methods for the treatment of the |
|
Charcot-Marie-Tooth disease and related disorders. Charcot-Marie-Tooth disease (“CMT |
|
Mining |
|
of publicly available data, describing molecular mechanisms and pathological |
|
manifestations |
|
of the CMT1A disease, allowed us to prioritize a few functional cellular |
|
modules-transcriptional regulation of PMP22 gene, PMP22 protein folding/degradation, |
|
Schwann cell proliferation and apoptosis, death of neurons, extra-cellular matrix |
|
deposition |
|
and remodelling, immune response-as potential legitimate targets for CMT-relevant |
|
therapeutic interventions. The combined impact of these deregulated functional modules on |
|
onset and progression of pathological manifestations of Charcot-Marie-Tooth justifies a |
|
potential efficacy of combinatorial CMT treatment. International patent application No. |
|
PCT/EP2008/066457 describes a method of identifying drug candidates for the treatment of |
|
the |
|
Charcot-Marie-Tooth disease by building a dynamic model of the pathology and targeting |
|
functional cellular pathways which are relevant in the regulation of CMT disease. |
|
International patent application No. PCT/EP2008/066468 describes compositions for the |
|
treatment of the Charcot-Marie-Tooth disease which comprise at least two compounds |
|
selected |
|
from the group of multiple drug candidates. The purpose of the present invention is to |
|
provide new therapeutic combinations for treating CMT and related disorders. The invention |
|
thus relates to compositions and methods for treating CMT and related disorders, |
|
in particular toxic or traumatic neuropathy and amyotrophic lateral sclerosis, |
|
using particular drug combinations. An object of this invention more specifically |
|
relates to |
|
a composition comprising baclofen, sorbitol and a compound selected from pilocarpine, |
|
methimazole, mifepristone, naltrexone, rapamycin, flurbiprofen and ketoprofen, salts or |
|
prodrugs thereof, for simultaneous, separate or sequential administration to a mammalian |
|
subject. A particular object of the present invention relates to a composition comprising |
|
baclofen, sorbitol and naltrexone, for simultaneous, separate or sequential administration |
|
to a mammalian subject. Another object of the invention relates to a composition |
|
comprising |
|
(a) rapamycin, (b) mifepristone or naltrexone, and © a PMP22 modulator, for simultaneous, |
|
separate or sequential administration to a mammalian subject. In a particular embodiment, |
|
the PMP22 modulator is selected from acetazolamide, albuterol, amiloride, |
|
aminoglutethimide, |
|
amiodarone, aztreonam, baclofen, balsalazide, betaine, bethanechol, bicalutamide, |
|
bromocriptine, bumetanide, buspirone, carbachol, carbamazepine, carbimazole, cevimeline, |
|
ciprofloxacin, clonidine, curcumin, cyclosporine A, diazepam, diclofenac, dinoprostone, |
|
disulfiram, D-sorbitol, dutasteride, estradiol, exemestane, felbamate, fenofibrate, |
|
finasteride, flumazenil, flunitrazepam, flurbiprofen, furosemide, gabapentingabapentin, |
|
galantamine, haloperidol, ibuprofen, isoproterenol, ketoconazole, ketoprofen, L-carnitine, |
|
liothyronine (T3), lithium, losartan, loxapine, meloxicam, metaproterenol, metaraminol, |
|
metformin, methacholine, methimazole, methylergonovine, metoprolol, metyrapone, |
|
miconazole, |
|
mifepristone, nadolol, naloxone, naltrexone; norfloxacin, pentazocine, phenoxybenzamine, |
|
phenylbutyrate, pilocarpine, pioglitazone, prazosin, propylthiouracil, raloxifene, |
|
rapamycin, rifampin, simvastatin, spironolactone, tacrolimus, tamoxifen, trehalose, |
|
trilostane, valproic acid, salts or prodrugs thereof. 1. A method of improving nerve |
|
regeneration in a human subject suffering from amyotrophic lateral sclerosis, |
|
or a neuropathy selected from an idiopathic neuropathy, diabetic neuropathy, |
|
a toxic neuropathy, a neuropathy induced by a drug treatment, a neuropathy provoked by |
|
HIV, |
|
a neuropathy provoked by radiation, a neuropathy provoked by heavy metals, a neuropathy |
|
provoked by vitamin deficiency states, or a traumatic neuropathy, comprising administering |
|
to the human subject an amount of a composition effective to improve nerve regeneration; |
|
and |
|
wherein the composition comprises baclofen or a pharmaceutically acceptable salt thereof |
|
in |
|
an amount from 1 to 300 mg/kg of the human subject per day; D-sorbitol or a |
|
pharmaceutically |
|
acceptable salt thereof; and naltrexone or a pharmaceutically acceptable salt thereof in |
|
an |
|
amount from 1 to 100 mg/kg of the human subject per day. 2. The method of claim 1, |
|
wherein the composition further comprises a pharmaceutically suitable excipient or |
|
carrier. |
|
3. The method of claim 2, wherein the composition is formulated with a drug eluting |
|
polymer, |
|
a biomolecule, a micelle or liposome-forming lipids or oil in water emulsions, |
|
or pegylated |
|
or solid nanoparticles or microparticles for oral or parenteral or intrathecal |
|
administration. 4. The method of claim 1, wherein the subject suffers from a traumatic |
|
neuropathy arising from brain injury, spinal cord injury, or an injury to peripheral |
|
nerves. |
|
5. The method of claim 1, wherein the D-sorbitol or a pharmaceutically acceptable salt |
|
thereof is D-sorbitol. 6. The method of claim 1, wherein the composition is formulated for |
|
oral administration. 7. The method of claim 6, wherein the composition is a liquid |
|
formulation. 8. The method of claim 1, wherein baclofen or a pharmaceutically acceptable |
|
salt thereof, D-sorbitol or a pharmaceutically acceptable salt thereof, and naltrexone |
|
or a |
|
pharmaceutically acceptable salt thereof are the sole active ingredients. 9. The method of |
|
claim 1, comprising administering to the human subject baclofen or a pharmaceutically |
|
acceptable salt thereof in an amount from 10 to 200 mg/kg of the human subject per day and |
|
naltrexone or a pharmaceutically acceptable salt thereof in an amount from 1 to 50 mg/kg |
|
of |
|
the human subject per day. 10. The method of claim 1, comprising administering to the |
|
human |
|
subject baclofen or a pharmaceutically acceptable salt thereof in an amount from 10 to 200 |
|
mg/kg of the human subject per day and naltrexone or a pharmaceutically acceptable salt |
|
thereof in an amount from 1 to 50 mg/kg of the human subject per day. 11. The method of |
|
claim 1, comprising administering to the human subject baclofen or a pharmaceutically |
|
acceptable salt thereof in an amount from 60 mg to 18 mg per day and naltrexone or a |
|
pharmaceutically acceptable salt thereof in an amount from 60 mg to 6 mg per day. 12. The |
|
method of claim 1, comprising administering to the human subject baclofen or a |
|
pharmaceutically acceptable salt thereof in an amount from 60 mg to 12 mg per day and |
|
naltrexone or a pharmaceutically acceptable salt thereof in an amount from 60 mg to 3 mg |
|
per |
|
day. 13. The method of claim 10, wherein baclofen or a pharmaceutically acceptable salt |
|
thereof, D-sorbitol or a pharmaceutically acceptable salt thereof, and naltrexone or a |
|
pharmaceutically acceptable salt thereof are administered orally to the human subject. 14. |
|
The method of claim 10, wherein baclofen or a pharmaceutically acceptable salt thereof, |
|
D-sorbitol or a pharmaceutically acceptable salt thereof, and naltrexone or a |
|
pharmaceutically acceptable salt thereof are administered separately to the human subject. |
|
15. The method of claim 13, wherein baclofen or a pharmaceutically acceptable salt |
|
thereof, |
|
D-sorbitol or a pharmaceutically acceptable salt thereof, and naltrexone or a |
|
pharmaceutically acceptable salt thereof are formulated in a liquid formulation. 16. The |
|
method of claim 15, wherein baclofen or a pharmaceutically acceptable salt thereof, |
|
D-sorbitol or a pharmaceutically acceptable salt thereof, and naltrexone or a |
|
pharmaceutically acceptable salt thereof are administered to the human subject in divided |
|
doses. 17. The method of claim 15, wherein baclofen or a pharmaceutically acceptable salt |
|
thereof, D-sorbitol or a pharmaceutically acceptable salt thereof, and naltrexone or a |
|
pharmaceutically acceptable salt thereof are administered to the human subject in divided |
|
doses two times daily. |
|
""".replace("\n", " ") |
|
|
|
|
|
if __name__ == '__main__': |
|
test() |
|
|