NeMo
PyTorch
English
Hindi
nemotron
File size: 6,922 Bytes
9be4968
 
 
 
 
 
 
 
 
 
 
 
 
 
 
bb0b97b
8fcd1d9
9be4968
 
 
 
 
 
 
 
 
45d23e0
9be4968
 
 
bd2a8e5
9be4968
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
b2efad2
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
9be4968
6bdbc3f
9be4968
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
45d23e0
9be4968
 
 
 
 
90acf82
9be4968
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8fcd1d9
9be4968
8fcd1d9
 
45d23e0
f65f743
 
 
 
8fcd1d9
 
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
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
---
license: other
license_name: nvidia-open-model-license
license_link: >-
  https://developer.download.nvidia.com/licenses/nvidia-open-model-license-agreement-june-2024.pdf
language:
- en
- hi
base_model: nvidia/Nemotron-4-Mini-Hindi-4B-Base
library_name: nemo
---
# Nemotron-4-Mini-Hindi-4B-Instruct

## Model Overview

Nemotron-4-Mini-Hindi-4B-Instruct is a model for generating responses to questions grounded in the Indian context. It supports queries in Hindi, English, and Hinglish. It is a small language model (SLM) which is fine-tuned/aligned version of [nvidia/Nemotron-4-Mini-Hindi-4B-Base](https://huggingface.co/nvidia/Nemotron-4-Mini-Hindi-4B-Base), which was continuously pre-trained on top of Nemotron-Mini-4B-Base (Minitron-4B-Base). The alignment stage uses a mix of real and synthetically generated alignment corpus. It supports a context length of 4,096 tokens. This model is ready for commercial use.
Please refer to our [arXiv paper](https://arxiv.org/abs/2410.14815) for more details.

Try this model on [build.nvidia.com](https://build.nvidia.com/nvidia/nemotron-4-mini-hindi-4b-instruct).

**Model Developer:** NVIDIA 

**Model Dates:** Nemotron-4-Mini-Hindi-4B-Instruct was trained between June 2024 and Oct 2024.

## License

Nemotron-4-Mini-Hindi-4B-Instruct is released under the [NVIDIA Open Model License Agreement](https://developer.download.nvidia.com/licenses/nvidia-open-model-license-agreement-june-2024.pdf).

## Model Architecture

Nemotron-4-Mini-Hindi-4B-Instruct uses a model embedding size of 3072, 32 attention heads, and an MLP intermediate dimension of 9216. It also uses Grouped-Query Attention (GQA) and Rotary Position Embeddings (RoPE). 

**Architecture Type:** Transformer Decoder (auto-regressive language model) 

**Network Architecture:** Nemotron-4 


## Prompt Format:

We recommend using the following prompt template, which was used to fine-tune the model. The model may not perform optimally without it.

**Single Turn**

```
<extra_id_0>System
{system prompt}

<extra_id_1>User
{prompt}
<extra_id_1>Assistant\n
```

**Multi Turn**

```
<extra_id_0>System
{system prompt}

<extra_id_1>User
{prompt 1}
<extra_id_1>Assistant
{response 1}
<extra_id_1>User
{prompt 2}
<extra_id_1>Assistant
{response 2}
...
<extra_id_1>User
{prompt N}
<extra_id_1>Assistant\n
```

Note that a newline character \n should be added at the end of the prompt.
We recommend using \<extra_id_1\> as a stop token.

## Usage

```
from transformers import AutoTokenizer, AutoModelForCausalLM

# Load the tokenizer and model
tokenizer  = AutoTokenizer.from_pretrained("nvidia/Nemotron-4-Mini-Hindi-4B-Instruct")
model = AutoModelForCausalLM.from_pretrained("nvidia/Nemotron-4-Mini-Hindi-4B-Instruct")

# Use the prompt template
messages = [

    {"role": "user", "content": "भारत की संस्कृति के बारे में बताएं।"},
 ]
tokenized_chat = tokenizer.apply_chat_template(messages, tokenize=True, add_generation_prompt=True, return_tensors="pt")

outputs = model.generate(tokenized_chat, max_new_tokens=128) 
print(tokenizer.decode(outputs[0]))
```

You can also use `pipeline` but you need to create a tokenizer object and assign it to the pipeline manually.

```
from transformers import AutoTokenizer
from transformers import pipeline

tokenizer  = AutoTokenizer.from_pretrained("nvidia/Nemotron-4-Mini-Hindi-4B-Instruct")

messages = [
    {"role": "user", "content": "भारत की संस्कृति के बारे में बताएं।"},
]
pipe = pipeline("text-generation", model="nvidia/Nemotron-4-Mini-Hindi-4B-Instruct", max_new_tokens=128)
pipe.tokenizer = tokenizer  # You need to assign tokenizer manually
pipe(messages)
```
## Evaluation Results

*Zero-shot performance.* Evaluated using select Hindi datasets from the [Airavata Evaluation Framework](https://github.com/AI4Bharat/IndicInstruct) with additions:

| MMLU | ARC-C | ARC-E | HellaSwag | BoolQ | IndicQuest (GPT4-Turbo)
| :------------- | :------------- | :------------- | :------------- | :------------- | :------------- |
| 50.5 | 65.53 | 79.97  | 39.9 | 67.86 | 4.15 |


Please refer to our [paper](https://arxiv.org/abs/2410.14815) for the full set of results.

## Inference
**Engine:** TensorRT-LLM

**Test Hardware:** NVIDIA A100

**DType:** Float16/BFloat16


## AI Safety Efforts

The Nemotron-4-Mini-Hindi-4B-Instruct model underwent AI safety evaluation including adversarial testing via three distinct methods: 
- [Garak](https://github.com/leondz/garak), is an automated LLM vulnerability scanner that probes for common weaknesses, including prompt injection and data leakage. 
- [AEGIS](https://huggingface.co/datasets/nvidia/Aegis-AI-Content-Safety-Dataset-1.0), is a content safety evaluation dataset and LLM based content safety classifier model, that adheres to a broad taxonomy of 13 categories of critical risks in human-LLM interactions.
- Human Content Red Teaming leveraging human interaction and evaluation of the models' responses.


## Limitations

The model was trained on data that contains toxic language and societal biases originally crawled from the internet. Therefore, the model may amplify those biases and return toxic responses especially when prompted with toxic prompts. The model may generate answers that may be inaccurate, omit key information, or include irrelevant or redundant text producing socially unacceptable or undesirable text, even if the prompt itself does not include anything explicitly offensive. The model may answer with I statements, exhibiting some anthropomorphizing. This issue could be exacerbated without the use of the recommended prompt template.


## Ethical Considerations

NVIDIA believes Trustworthy AI is a shared responsibility and we have established policies and practices to enable development for a wide array of AI applications.  When downloaded or used in accordance with our terms of service, developers should work with their internal model team to ensure this model meets requirements for the relevant industry and use case and addresses unforeseen product misuse.  For more detailed information on ethical considerations for this model, please see the [Model Card++](https://build.nvidia.com/nvidia/nemotron-4-mini-hindi-4b-instruct/modelcard). Please report security vulnerabilities or NVIDIA AI Concerns [here](https://www.nvidia.com/en-us/support/submit-security-vulnerability/).


## Citation

If you find our work helpful, please consider citing our paper:
```
@article{hindinemotron2024,
  title={Adapting Multilingual LLMs to Low-Resource Languages using Continued Pre-training and Synthetic Corpus},
  author={Joshi, Raviraj and Singla, Kanishk and Kamath, Anusha and Kalani, Raunak and Paul, Rakesh and Vaidya, Utkarsh and Chauhan, Sanjay Singh and Wartikar, Niranjan and Long, Eileen},
  journal={arXiv preprint arXiv:2410.14815},
  year={2024}
}
```