File size: 3,376 Bytes
8794306
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
a05c892
 
1ef7554
8794306
 
 
 
9074430
2a3975e
 
 
 
362c2e3
9074430
5644a1d
9074430
 
 
 
 
 
 
 
362c2e3
 
 
 
9074430
 
 
362c2e3
9074430
362c2e3
 
 
 
9074430
 
362c2e3
 
 
 
 
 
9074430
362c2e3
 
9074430
 
362c2e3
 
9074430
362c2e3
9074430
362c2e3
9074430
362c2e3
9074430
362c2e3
 
 
 
 
 
 
 
9074430
362c2e3
 
9074430
362c2e3
9074430
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
---
library_name: transformers
widget:
- text: >
    <|input|>

    ### Template:

    {
        "estaciones": [],
        "noches": [
            {
                "descripcion": ""
            }
        ],
        "dias": [
            {
                "descripcion": ""
            }
        ],
        "mejor_epoca": "",
        "frontera": "",
        "terreno": {
            "descripcion": ""
        }
    }

    ### Text:

    El oeste de Texas divide la frontera entre Mexico y Nuevo México. Es muy
    bella pero aspera, llena de cactus, en esta region se encuentran las Davis
    Mountains. Todo el terreno esta lleno de piedra caliza, torcidos arboles de
    mezquite y espinosos nopales. Para admirar la verdadera belleza desertica,
    visite el Parque Nacional de Big Bend, cerca de Brownsville. Es el lugar
    favorito para los excurcionistas, acampadores y entusiastas de las rocas.
    Pequeños pueblos y ranchos se encuentran a lo largo de las planicies y
    cañones de esta region. El area solo tiene dos estaciones, tibia y realmente
    caliente. La mejor epoca para visitarla es de Diciembre a Marzo cuando los
    dias son tibios, las noches son frescas y florecen las plantas del desierto
    con la humedad en el aire.

    <|output|>
pipeline_tag: text2text-generation
inference:
  parameters:
    max_length: 512
license: apache-2.0
language:
- es
---

<p align="center">
<img src="Brain.png" width="600">
</p>

# Structure Extraction Model

nebuia_extract_small is an extraction model inspired by NuExtract. nebuia_extract_small is a version of qween 1.5b, fine-tuned on a private high-quality synthetic dataset for entity extraction in Spanish legal texts with an 8k context length. Supports JSON template like nu extract describing the information you need to extract. NebuIA Extract specializes in identifying and extracting legal entities and relevant information from Spanish legal documents.


## Model Details

### Model Description

<!-- Provide a longer summary of what this model is. -->

- **Developed by:** [NebuIA](https://nebuia.com)
- **Language(s) (NLP):** es
- **License:** mit
- **Finetuned from model [optional]:** [Qween2 1.5b](https://huggingface.co/Qwen/Qwen2-1.5B-Instruct)

## Uses

Same template as NuExtract

```python
import json
from transformers import AutoModelForCausalLM, AutoTokenizer
import torch


def predict_extract(model, tokenizer, text, schema):
    schema = json.dumps(json.loads(schema), indent=4)
    input_llm =  "<|input|>\n### Template:\n" +  schema + "\n"
    
    input_llm +=  "### Text:\n"+text +"\n<|output|>\n"
    input_ids = tokenizer(input_llm, return_tensors="pt", truncation=True, max_length=4000).to("cuda")

    output = tokenizer.decode(model.generate(**input_ids)[0], skip_special_tokens=True)
    return output.split("<|output|>")[1].split("<|end-output|>")[0]


model = AutoModelForCausalLM.from_pretrained("NebuIA/nebuia_extract_small", trust_remote_code=True, torch_dtype=torch.bfloat16)
tokenizer = AutoTokenizer.from_pretrained("NebuIA/nebuia_extract_small", trust_remote_code=True)

model.to("cuda")

model.eval()

text = """large legal text"""

schema = """{
    "calusulas": [],
    "notario": "",
    "jurisdiccion": {
      "clausula_jurisdiccion": "",
      "lugar": ""
    }
}"""

prediction = predict_extract(model, tokenizer, text, schema)
print(prediction)

```