Views
No views yet
1import torch
2from transformers import AutoModelForSequenceClassification, AutoTokenizer
3
4model_id = "FrameByFrame/programming-language-identification-100plus"
5tokenizer = AutoTokenizer.from_pretrained(model_id)
6model = AutoModelForSequenceClassification.from_pretrained(
7 model_id,
8 attn_implementation="eager",
9 torch_dtype=torch.bfloat16,
10).eval()
11
12code = "def greet(name: str) -> None:\n print(f'hello, {name}')"
13inputs = tokenizer(code, return_tensors="pt", truncation=True, max_length=512)
14with torch.no_grad():
15 logits = model(**inputs).logits
16print(model.config.id2label[int(logits.argmax(-1))]) # -> "Python"1snippets = [py_code, rust_code, go_code] # list of strings
2inputs = tokenizer(
3 snippets, return_tensors="pt", padding=True, truncation=True, max_length=512
4)
5with torch.no_grad():
6 logits = model(**inputs).logits
7for i, pred in enumerate(logits.argmax(-1).tolist()):
8 print(snippets[i][:40].splitlines()[0], "→", model.config.id2label[pred])onnx/. Use it for CPU or GPU inference without
pulling PyTorch — handy for non-Python consumers and edge deployments.1from optimum.onnxruntime import ORTModelForSequenceClassification
2from transformers import AutoTokenizer
3
4model_id = "FrameByFrame/programming-language-identification-100plus"
5tokenizer = AutoTokenizer.from_pretrained(model_id)
6ort_model = ORTModelForSequenceClassification.from_pretrained(
7 model_id, subfolder="onnx"
8)
9
10inputs = tokenizer(code, return_tensors="pt", truncation=True, max_length=512)
11logits = ort_model(**inputs).logits
12print(ort_model.config.id2label[int(logits.argmax(-1))])| metric | value |
|---|---|
| macro F1 | 0.9206 |
| accuracy | 0.9306 |
cakiki/rosetta-code) and The Stack v1 (bigcode/the-stack). Labels were
independently verified by an LLM judge, and a small set of high-confidence
mislabels between mainstream languages was removed.