Views
No views yet
1from transformers import AutoModelForCausalLM, AutoTokenizer
2import torch
3
4model_id = "viswamaicoe/nanochat-telugu-560M-mid-v1-akshara"
5device = "cpu" # or torch.device("cuda" if torch.cuda.is_available() else "cpu")
6
7tokenizer = AutoTokenizer.from_pretrained(model_id)
8model = AutoModelForCausalLM.from_pretrained(
9 model_id,
10 dtype=torch.float32,
11).to(device)
12
13# Example: Generate text
14text = "హలో, మీరు ఎలా ఉన్నారు?"
15inputs = tokenizer(text, return_tensors="pt").to(device)
16
17with torch.no_grad():
18 outputs = model.generate(**inputs, max_new_tokens=50)
19
20generated_text = tokenizer.decode(outputs[0], skip_special_tokens=True)
21print(generated_text)1from transformers import AutoModelForCausalLM, AutoTokenizer, StoppingCriteria, StoppingCriteriaList
2import torch
3
4model_id = "viswamaicoe/nanochat-telugu-560M-mid-v1-akshara"
5device = "cpu" # or torch.device("cuda" if torch.cuda.is_available() else "cpu")
6
7tokenizer = AutoTokenizer.from_pretrained(model_id)
8model = AutoModelForCausalLM.from_pretrained(
9 model_id,
10 dtype=torch.float32,
11).to(device)
12
13
14class AssistantEndStoppingCriteria(StoppingCriteria):
15 def __init__(self, stop_token_ids):
16 self.stop_token_ids = stop_token_ids
17
18 def __call__(self, input_ids, scores, **kwargs):
19 # Check if the last token is a stopping token
20 return input_ids[0, -1].item() in self.stop_token_ids
21
22# Get stopping token IDs
23assistant_end_token_id = tokenizer.encode("<|assistant_end|>", add_special_tokens=False)[0]
24bos_token_id = tokenizer.bos_token_id if tokenizer.bos_token_id is not None else tokenizer.encode("<|bos|>", add_special_tokens=False)[0]
25
26stopping_criteria = StoppingCriteriaList([
27 AssistantEndStoppingCriteria([assistant_end_token_id, bos_token_id])
28])
29
30# Chat completion example
31conversation = [
32 {"role": "user", "content": "నమస్కారం"},
33]
34
35inputs = tokenizer.apply_chat_template(
36 conversation, add_generation_prompt=True, tokenize=True, return_dict=True, return_tensors="pt"
37).to(device)
38
39# Filter out token_type_ids and other unsupported keys
40model_inputs = {
41 "input_ids": inputs["input_ids"],
42}
43if "attention_mask" in inputs:
44 model_inputs["attention_mask"] = inputs["attention_mask"]
45
46print(f"Formatted prompt: {tokenizer.decode(model_inputs['input_ids'][0])}")
47
48with torch.no_grad():
49 outputs = model.generate(
50 **model_inputs,
51 max_new_tokens=64,
52 do_sample=False,
53 stopping_criteria=stopping_criteria,
54 )
55
56generated_tokens = outputs[0, model_inputs["input_ids"].shape[1]:]
57print(f"Generated: {tokenizer.decode(generated_tokens)}")1import torch
2from transformers import AutoModelForCausalLM, AutoTokenizer
3
4model_id = "viswamaicoe/nanochat-telugu-560M-mid-v1-akshara"
5device = "cpu" # torch.device("cuda" if torch.cuda.is_available() else "cpu")
6
7tokenizer = AutoTokenizer.from_pretrained(model_id)
8model = AutoModelForCausalLM.from_pretrained(
9 model_id,
10 dtype=torch.float32,
11).to(device)
12
13
14def get_sentence_embeddings(text, pooling_strategy="mean"):
15 """Extract sentence-level embeddings using pooling"""
16 inputs = tokenizer(text, return_tensors="pt")
17 input_ids = inputs["input_ids"].to(device)
18 attention_mask = inputs["attention_mask"].to(device)
19
20 with torch.no_grad():
21 outputs = model(
22 input_ids=input_ids,
23 attention_mask=attention_mask,
24 output_hidden_states=True
25 )
26
27 # Get last hidden state
28 last_hidden_state = outputs.hidden_states[-1]
29
30 if pooling_strategy == "mean":
31 # Mean pooling (excluding padding tokens)
32 masked_embeddings = last_hidden_state * attention_mask.unsqueeze(-1)
33 sentence_embedding = masked_embeddings.sum(dim=1) / attention_mask.sum(dim=1, keepdim=True)
34 elif pooling_strategy == "max":
35 # Max pooling
36 masked_embeddings = last_hidden_state.masked_fill(~attention_mask.unsqueeze(-1).bool(), float('-inf'))
37 sentence_embedding = masked_embeddings.max(dim=1)[0]
38
39 return sentence_embedding
40
41# Example usage
42text = "హలో, మీరు ఎలా ఉన్నారు?"
43sentence_embedding = get_sentence_embeddings(text, pooling_strategy="mean")
44print(f"Sentence embedding shape: {sentence_embedding.shape}")
45# Sentence embedding shape: torch.Size([1, 1280])1@misc{nanochat-telugu-560m-mid-v1-akshara,
2 title={NanoChat Telugu 560M Mid-Training v1 (Akhsara): A Telugu Language Model Checkpoint},
3 author={Viswam AI COE},
4 year={2025},
5 howpublished={\url{https://huggingface.co/viswamaicoe/nanochat-telugu-560M-mid-v1-akshara}}
6}