Views
No views yet

1import json
2from transformers import AutoModelForCausalLM, AutoTokenizer
3import torch
4
5
6def predict_extract(model, tokenizer, text, schema):
7 schema = json.dumps(json.loads(schema), indent=4)
8 input_llm = "<|input|>\n### Template:\n" + schema + "\n"
9
10 input_llm += "### Text:\n"+text +"\n<|output|>\n"
11 input_ids = tokenizer(input_llm, return_tensors="pt", truncation=True, max_length=4000).to("cuda")
12
13 output = tokenizer.decode(model.generate(**input_ids)[0], skip_special_tokens=True)
14 return output.split("<|output|>")[1].split("<|end-output|>")[0]
15
16
17model = AutoModelForCausalLM.from_pretrained("NebuIA/nebuia_extract_small", trust_remote_code=True, torch_dtype=torch.bfloat16)
18tokenizer = AutoTokenizer.from_pretrained("NebuIA/nebuia_extract_small", trust_remote_code=True)
19
20model.to("cuda")
21
22model.eval()
23
24text = """large legal text"""
25
26schema = """{
27 "calusulas": [],
28 "notario": "",
29 "jurisdiccion": {
30 "clausula_jurisdiccion": "",
31 "lugar": ""
32 }
33}"""
34
35prediction = predict_extract(model, tokenizer, text, schema)
36print(prediction)
37