Skip to content
View abhiprd2000's full-sized avatar

Organizations

@shodhx

Block or report abhiprd2000

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
abhiprd2000/README.md

Abhimanyu Prasad

I work on Bhojpuri NLP, on whether AI tests can be trusted, and on Rust systems.
Class 12 student in Hazaribagh, Jharkhand, India.

3 papers accepted 2 papers under review or in revision 13 merged PRs Credited CVE finder 451K Bhojpuri labels 1.8K+ Hugging Face downloads

Papers accepted at NeurIPS 2026 (UserSim and ATTRIB) and IEEE AIoT 2026. My Bhojpuri work is in Stanford's Stanza v1.15.0, and I have a patent application in India.

OpenReview ORCID Hugging Face tokcost on crates.io ShodhX Research

Hi there waving hand

  • 🔭 I study how AI systems are tested, and I build data and tools for Bhojpuri, my language.
  • 🎯 Next: getting more Bhojpuri speakers to check the sentences my models disagree on.
  • 🧑‍🏫 I've run coding sessions for 250 students at my school, though my own subject is Painting.
  • 💻 Fun fact: my laptop is a hand-me-down. I fitted its SSD myself and moved the hard disk into the CD-drive slot.
  • 🎮 Off the keyboard: Rusher in Call of Duty: Mobile, and a run up Canary Hill most mornings.

Bhojpuri NLP

To my knowledge, these are among the first open-source sentiment resources for Bhojpuri. Version 2 (October 2026) is native text, built with PURVA.

PURVA Bhojpuri Sentiment Corpus v2 90,207 native sentences from 11 websites, with 451,002 labels from 5 open LLMs (Aya, Gemma, Llama, Mistral, Qwen) in 4 classes. I hand-labelled 270 sentences to check the labels. Split into train, dev and test.
Bhojpuri Sentiment Model v2 IndicBERTv2 fine-tuned on PURVA labels. It gets 65.7% accuracy against human labels on native text, 81% on news and 83% on encyclopedic text.
Maithili and Hindi Maithili_Sentiment_8K dataset, plus Maithili and Hindi sentiment models.

Stanza (Stanford NLP): Bhojpuri ships in v1.15.0, which credits me by name. Most of my work was preparing the data and training the Bhojpuri models, using PURVA's text and resources. 4 PRs merged, plus 48 tag fixes to the UD Bhojpuri treebank.

What I did for Stanza
  • converted the IIT (BHU) Bhojpuri POS corpus, about 14,780 sentences
  • cleaned and de-duplicated the training data, and reported a train/test near-duplicate leak I found in my own results
  • ran tagging and parsing experiments with Hindi as donor data (MuRIL did best on POS tags)
  • opened issue #1654, where the work started -PURVA needed Bhojpuri POS tags and Stanza had none, so I built the training data and code for its first Bhojpuri models. Most of my work was preparing that data and training the models, and John Bauer, Stanza’s maintainer, asked for my PURVA corpus to train on. v1.15.0 includes my converter and credits me by name.

Research

Ordered Disagreement in Open-Weight LLM Annotator Committees: Lessons from Building a Bhojpuri Sentiment Resource
under review With Dr. Deepak Rakesh (NIT Bhopal). [code] [data]
Five LLMs don't disagree at random: they sit on one shared scale (Loevinger's H = 0.76), so a native speaker only needs to check the sentences where they split.

Details
  • Collected 90,207 sentences from 11 Bhojpuri websites (76,966 after cleaning), recording each one's source, style and licence; removed almost 12,000 whose origin I couldn't verify and 1,301 near-duplicates.
  • Five open models from five companies labelled every sentence across 45 runs on free Kaggle GPUs: 451,002 labels. I hand-labelled 270 sentences to check them.
  • Dawid-Skene, the standard way to combine labellers, did worse than a simple majority vote (57% vs 66%), and language-ID tools often mistook literary Bhojpuri for Hindi.

Same Failure, Different Cause: Ungrounded Tool-Call Provenance in Simulated Agent Evaluation
NeurIPS 2026 UserSim Workshop Sole author. [OpenReview] [NeurIPS] [code]
Qwen and Llama fail the same tau2-bench tasks for different reasons, but the benchmark counts them as one failure.

Ablate-and-Measure Breaks When the Measurement Depends on the Ablation
NeurIPS 2026 ATTRIB Workshop, idea track Sole author. [OpenReview] [NeurIPS] [code]
In a pre-registered 144-run study, whether a score even existed depended on the condition: it was defined for only 50 to 92% of runs.

Details
  • Removed parts of an AI agent's context in six ways: 12 tasks × 2 seeds × 6 conditions, about 16 GPU-hours on free Kaggle T4s.
  • No condition made a significant difference after correction (smallest adjusted p = 0.235).
  • tau2-bench only scores runs that end cleanly, which is why the metric itself moved. I reported two deviations from my pre-registration, and reviewed two other submissions for this workshop.

Verify on Read, Update in Log Time: Per-Block Integrity for Mutable Edge-AI Model Files
IEEE AIoT 2026 workshop paper accepted Indian patent application 202631065480 Code: [model-integrity-bench] [axiom-os-kernel]
Catches a tampered AI model file on every read, and updates a block in 4.9 µs instead of 44 ms to re-hash the whole file.

Details
  • Linux's fs-verity checks files block by block, but only files that never change. My checker keeps a Merkle tree over 4 KiB blocks and verifies only the blocks each read touches.
  • In a tamper test, one flipped weight failed exactly one block, and no corrupt bytes were served.
  • Measured on an Intel i5-5200U laptop and a Snapdragon 7 Gen 4 phone. Design advice from Prof. Subodh Kumar (IIT Delhi).

Article on "zombie" IoT devices
IEEE Potentials, in revision Sole author.
Why cloud-dependent smart devices stop working when their company shuts down.

Security and open source

Projects

Axiom OS

axiom-os-kernel: a bare-metal Rust kernel for x86-64 and ARM that checks file integrity on every read. The model-file checker grew out of it.

tokcost: exact BPE token counts and cost estimates for LLM APIs, as one Rust binary. On crates.io.

tokcost demo

Vehicle classification [model]
🏅 Selected top 4 worldwide for Prof. Feng Chen's AI Safety Lab, UT Dallas. A CNN trained from scratch on 26,378 images of 8 vehicle types, reaching 78.5% test accuracy against a 50% target.

How I work

I learned offline from 2023 to 2025, from printed papers and the blog_os tutorial on that old laptop, so most of my public work starts in 2026. I run experiments on free Kaggle GPUs.

Python, Rust, PyTorch, Linux, Bash, Git, GitHub Actions, LaTeX, VS Code

Contribution graph eaten by a snake

Pinned Loading

  1. axiom-os-kernel axiom-os-kernel Public

    Bare-metal x86_64+ ARM kernel in Rust with BLAKE3 per-read cryptographic provenance. Enforces block level file integrity on every read. Includes FAT32, ATA driver, process isolation, priority sched…

    Rust 2

  2. shodhx/purva shodhx/purva Public

    Python 2

  3. tokcost tokcost Public

    Exact BPE token counts and cost estimates for LLM text. Zero dependencies, single Rust binary

    Rust 1

  4. model-integrity-bench model-integrity-bench Public

    Rust

  5. simswap simswap Public

    Python

  6. stanfordnlp/stanza stanfordnlp/stanza Public

    Stanford NLP Python library for tokenization, sentence segmentation, NER, and parsing of many human languages

    Python 7.9k 966