Daemontatox commited on
Commit
cd8a4d0
·
verified ·
1 Parent(s): bd7b111

Update README.md

Browse files
Files changed (1) hide show
  1. README.md +161 -157
README.md CHANGED
@@ -1,196 +1,200 @@
1
  ---
2
- library_name: transformers
3
- license: apache-2.0
4
- language:
5
- - en
6
- - bn
7
- - hi
8
- - kn
9
- - gu
10
- - mr
11
- - ml
12
- - or
13
- - pa
14
- - ta
15
- - te
16
- base_model:
17
- - mistralai/Mistral-Small-3.1-24B-Base-2503
18
- base_model_relation: finetune
19
  ---
20
 
21
- # Sarvam-M
22
- <p align="center">
23
- <a href="https://dashboard.sarvam.ai/playground"
24
- target="_blank" rel="noopener noreferrer">
25
- <img
26
- src="https://img.shields.io/badge/🚀 Chat on Sarvam&nbsp;Playground-1488CC?style=for-the-badge&logo=rocket"
27
- alt="Chat on Sarvam Playground"
28
- />
29
- </a>
30
- </p>
31
 
 
32
 
33
- # Model Information
34
 
35
- `sarvam-m` is a multilingual, hybrid-reasoning, text-only language model built on Mistral-Small. This post-trained version delivers exceptional improvements over the base model:
36
 
37
- - +20% average improvement on Indian language benchmarks
38
- - +21.6% enhancement on math benchmarks
39
- - +17.6% boost on programming benchmarks
40
 
41
- Performance gains are even more impressive at the intersection of Indian languages and mathematics, with an outstanding +86% improvement in romanized Indian language GSM-8K benchmarks.
42
 
43
- Learn more about sarvam-m in our detailed [blog post](https://www.sarvam.ai/blogs/sarvam-m).
44
 
45
- # Key Features
46
 
47
- - **Hybrid Thinking Mode**: A single versatile model supporting both "think" and "non-think" modes. Use the think mode for complex logical reasoning, mathematical problems, and coding tasks, or switch to non-think mode for efficient, general-purpose conversation.
 
 
 
 
 
 
48
 
49
- - **Advanced Indic Skills**: Specifically post-trained on Indian languages alongside English, embodying a character that authentically reflects and emphasizes Indian cultural values.
50
 
51
- - **Superior Reasoning Capabilities**: Outperforms most similarly-sized models on coding and math benchmarks, demonstrating exceptional reasoning abilities.
52
 
53
- - **Seamless Chatting Experience**: Full support for both Indic scripts and romanized versions of Indian languages, providing a smooth and accessible multilingual conversation experience.
 
 
54
 
55
- # Quickstart
56
 
57
- The following code snippet demonstrates how to use `sarvam-m` using Transformers.
58
 
59
- ```python
60
- from transformers import AutoModelForCausalLM, AutoTokenizer
61
 
62
- model_name = "sarvamai/sarvam-m"
63
 
64
- # load the tokenizer and the model
65
- tokenizer = AutoTokenizer.from_pretrained(model_name)
66
- model = AutoModelForCausalLM.from_pretrained(
67
- model_name, torch_dtype="auto", device_map="auto"
68
- )
69
 
70
- # prepare the model input
71
- prompt = "Who are you and what is your purpose on this planet?"
72
 
73
- messages = [{"role": "user", "content": prompt}]
74
- text = tokenizer.apply_chat_template(
75
- messages,
76
- tokenize=False,
77
- enable_thinking=True, # Switches between thinking and non-thinking modes. Default is True.
78
- )
79
 
80
- model_inputs = tokenizer([text], return_tensors="pt").to(model.device)
81
 
82
- # conduct text completion
83
- generated_ids = model.generate(**model_inputs, max_new_tokens=8192)
84
- output_ids = generated_ids[0][len(model_inputs.input_ids[0]) :].tolist()
85
- output_text = tokenizer.decode(output_ids)
86
 
87
- if "</think>" in output_text:
88
- reasoning_content = output_text.split("</think>")[0].rstrip("\n")
89
- content = output_text.split("</think>")[-1].lstrip("\n").rstrip("</s>")
90
- else:
91
- reasoning_content = ""
92
- content = output_text.rstrip("</s>")
93
 
94
- print("reasoning content:", reasoning_content)
95
- print("content:", content)
96
- ```
97
 
98
- > [!NOTE]
99
- > For thinking mode, we recommend `temperature=0.5`; for no-think mode, `temperature=0.2`.
100
 
 
101
 
102
- # With Sarvam APIs
103
 
104
- ```python
105
- from openai import OpenAI
106
 
107
- base_url = "https://api.sarvam.ai/v1"
108
- model_name = "sarvam-m"
109
- api_key = "Your-API-Key" # get it from https://dashboard.sarvam.ai/
110
 
111
- client = OpenAI(
112
- base_url=base_url,
113
- api_key=api_key,
114
- ).with_options(max_retries=1)
115
 
116
- messages = [
117
- {"role": "system", "content": "You're a helpful AI assistant"},
118
- {"role": "user", "content": "Explain quantum computing in simple terms"},
119
- ]
120
 
121
- response1 = client.chat.completions.create(
122
- model=model_name,
123
- messages=messages,
124
- reasoning_effort="medium", # Enable thinking mode. `None` for disable.
125
- max_completion_tokens=4096,
126
- )
127
- print("First response:", response1.choices[0].message.content)
128
 
129
- # Building messages for the second turn (using previous response as context)
130
- messages.extend(
131
- [
132
- {
133
- "role": "assistant",
134
- "content": response1.choices[0].message.content,
135
- },
136
- {"role": "user", "content": "Can you give an analogy for superposition?"},
137
- ]
138
- )
139
 
140
- response2 = client.chat.completions.create(
141
- model=model_name,
142
- messages=messages,
143
- reasoning_effort="medium",
144
- max_completion_tokens=8192,
145
- )
146
- print("Follow-up response:", response2.choices[0].message.content)
147
- ```
148
 
149
- Refer to API docs here: [sarvam Chat Completions API docs](https://docs.sarvam.ai/api-reference-docs/chat/completions)
150
 
151
- `reasoning_effort` can take three possible values: `low`, `medium`, and `high` to be consistent with the OpenAI API spec. Setting any of the three values just enables the thinking mode of sarvam-m.
152
 
153
- # VLLM Deployment
154
 
155
- For easy deployment, we can use `vllm>=0.8.5` and create an OpenAI-compatible API endpoint with `vllm serve sarvamai/sarvam-m`.
156
-
157
- If you want to use vLLM with python, you can do the following.
158
-
159
- ```python
160
- from openai import OpenAI
161
-
162
- # Modify OpenAI's API key and API base to use vLLM's API server.
163
- openai_api_key = "EMPTY"
164
- openai_api_base = "http://localhost:8000/v1"
165
-
166
- client = OpenAI(
167
- api_key=openai_api_key,
168
- base_url=openai_api_base,
169
- )
170
-
171
- models = client.models.list()
172
- model = models.data[0].id
173
-
174
- messages = [{"role": "user", "content": "Why is 42 the best number?"}]
175
-
176
- # By default, thinking mode is enabled.
177
- # If you want to disable thinking, add:
178
- # extra_body={"chat_template_kwargs": {"enable_thinking": False}}
179
- response = client.chat.completions.create(model=model, messages=messages)
180
- output_text = response.choices[0].message.content
181
-
182
- if "</think>" in output_text:
183
- reasoning_content = output_text.split("</think>")[0].rstrip("\n")
184
- content = output_text.split("</think>")[-1].lstrip("\n")
185
- else:
186
- reasoning_content = ""
187
- content = output_text
188
-
189
- print("reasoning content:", reasoning_content)
190
- print("content:", content)
191
-
192
- # For the next round, add the model's response directly as assistant turn.
193
- messages.append(
194
- {"role": "assistant", "content": output_text}
195
- )
196
- ```
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  ---
2
+ # For reference on model card metadata, see the spec: https://github.com/huggingface/hub-docs/blob/main/modelcard.md?plain=1
3
+ # Doc / guide: https://huggingface.co/docs/hub/model-cards
4
+ {}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5
  ---
6
 
7
+ # Model Card for Model ID
 
 
 
 
 
 
 
 
 
8
 
9
+ <!-- Provide a quick summary of what the model is/does. -->
10
 
11
+ This modelcard aims to be a base template for new models. It has been generated using [this raw template](https://github.com/huggingface/huggingface_hub/blob/main/src/huggingface_hub/templates/modelcard_template.md?plain=1).
12
 
13
+ ## Model Details
14
 
15
+ ### Model Description
 
 
16
 
17
+ <!-- Provide a longer summary of what this model is. -->
18
 
 
19
 
 
20
 
21
+ - **Developed by:** [More Information Needed]
22
+ - **Funded by [optional]:** [More Information Needed]
23
+ - **Shared by [optional]:** [More Information Needed]
24
+ - **Model type:** [More Information Needed]
25
+ - **Language(s) (NLP):** [More Information Needed]
26
+ - **License:** [More Information Needed]
27
+ - **Finetuned from model [optional]:** [More Information Needed]
28
 
29
+ ### Model Sources [optional]
30
 
31
+ <!-- Provide the basic links for the model. -->
32
 
33
+ - **Repository:** [More Information Needed]
34
+ - **Paper [optional]:** [More Information Needed]
35
+ - **Demo [optional]:** [More Information Needed]
36
 
37
+ ## Uses
38
 
39
+ <!-- Address questions around how the model is intended to be used, including the foreseeable users of the model and those affected by the model. -->
40
 
41
+ ### Direct Use
 
42
 
43
+ <!-- This section is for the model use without fine-tuning or plugging into a larger ecosystem/app. -->
44
 
45
+ [More Information Needed]
 
 
 
 
46
 
47
+ ### Downstream Use [optional]
 
48
 
49
+ <!-- This section is for the model use when fine-tuned for a task, or when plugged into a larger ecosystem/app -->
 
 
 
 
 
50
 
51
+ [More Information Needed]
52
 
53
+ ### Out-of-Scope Use
 
 
 
54
 
55
+ <!-- This section addresses misuse, malicious use, and uses that the model will not work well for. -->
 
 
 
 
 
56
 
57
+ [More Information Needed]
 
 
58
 
59
+ ## Bias, Risks, and Limitations
 
60
 
61
+ <!-- This section is meant to convey both technical and sociotechnical limitations. -->
62
 
63
+ [More Information Needed]
64
 
65
+ ### Recommendations
 
66
 
67
+ <!-- This section is meant to convey recommendations with respect to the bias, risk, and technical limitations. -->
 
 
68
 
69
+ Users (both direct and downstream) should be made aware of the risks, biases and limitations of the model. More information needed for further recommendations.
 
 
 
70
 
71
+ ## How to Get Started with the Model
 
 
 
72
 
73
+ Use the code below to get started with the model.
 
 
 
 
 
 
74
 
75
+ [More Information Needed]
 
 
 
 
 
 
 
 
 
76
 
77
+ ## Training Details
 
 
 
 
 
 
 
78
 
79
+ ### Training Data
80
 
81
+ <!-- This should link to a Dataset Card, perhaps with a short stub of information on what the training data is all about as well as documentation related to data pre-processing or additional filtering. -->
82
 
83
+ [More Information Needed]
84
 
85
+ ### Training Procedure
86
+
87
+ <!-- This relates heavily to the Technical Specifications. Content here should link to that section when it is relevant to the training procedure. -->
88
+
89
+ #### Preprocessing [optional]
90
+
91
+ [More Information Needed]
92
+
93
+
94
+ #### Training Hyperparameters
95
+
96
+ - **Training regime:** [More Information Needed] <!--fp32, fp16 mixed precision, bf16 mixed precision, bf16 non-mixed precision, fp16 non-mixed precision, fp8 mixed precision -->
97
+
98
+ #### Speeds, Sizes, Times [optional]
99
+
100
+ <!-- This section provides information about throughput, start/end time, checkpoint size if relevant, etc. -->
101
+
102
+ [More Information Needed]
103
+
104
+ ## Evaluation
105
+
106
+ <!-- This section describes the evaluation protocols and provides the results. -->
107
+
108
+ ### Testing Data, Factors & Metrics
109
+
110
+ #### Testing Data
111
+
112
+ <!-- This should link to a Dataset Card if possible. -->
113
+
114
+ [More Information Needed]
115
+
116
+ #### Factors
117
+
118
+ <!-- These are the things the evaluation is disaggregating by, e.g., subpopulations or domains. -->
119
+
120
+ [More Information Needed]
121
+
122
+ #### Metrics
123
+
124
+ <!-- These are the evaluation metrics being used, ideally with a description of why. -->
125
+
126
+ [More Information Needed]
127
+
128
+ ### Results
129
+
130
+ [More Information Needed]
131
+
132
+ #### Summary
133
+
134
+
135
+
136
+ ## Model Examination [optional]
137
+
138
+ <!-- Relevant interpretability work for the model goes here -->
139
+
140
+ [More Information Needed]
141
+
142
+ ## Environmental Impact
143
+
144
+ <!-- Total emissions (in grams of CO2eq) and additional considerations, such as electricity usage, go here. Edit the suggested text below accordingly -->
145
+
146
+ Carbon emissions can be estimated using the [Machine Learning Impact calculator](https://mlco2.github.io/impact#compute) presented in [Lacoste et al. (2019)](https://arxiv.org/abs/1910.09700).
147
+
148
+ - **Hardware Type:** [More Information Needed]
149
+ - **Hours used:** [More Information Needed]
150
+ - **Cloud Provider:** [More Information Needed]
151
+ - **Compute Region:** [More Information Needed]
152
+ - **Carbon Emitted:** [More Information Needed]
153
+
154
+ ## Technical Specifications [optional]
155
+
156
+ ### Model Architecture and Objective
157
+
158
+ [More Information Needed]
159
+
160
+ ### Compute Infrastructure
161
+
162
+ [More Information Needed]
163
+
164
+ #### Hardware
165
+
166
+ [More Information Needed]
167
+
168
+ #### Software
169
+
170
+ [More Information Needed]
171
+
172
+ ## Citation [optional]
173
+
174
+ <!-- If there is a paper or blog post introducing the model, the APA and Bibtex information for that should go in this section. -->
175
+
176
+ **BibTeX:**
177
+
178
+ [More Information Needed]
179
+
180
+ **APA:**
181
+
182
+ [More Information Needed]
183
+
184
+ ## Glossary [optional]
185
+
186
+ <!-- If relevant, include terms and calculations in this section that can help readers understand the model or model card. -->
187
+
188
+ [More Information Needed]
189
+
190
+ ## More Information [optional]
191
+
192
+ [More Information Needed]
193
+
194
+ ## Model Card Authors [optional]
195
+
196
+ [More Information Needed]
197
+
198
+ ## Model Card Contact
199
+
200
+ [More Information Needed]