Harsh Singhal (@HiHarshSinghal) header
Harsh Singhal (@HiHarshSinghal) profile picture

AI Governance @ Glean | Ex-ML @ Netflix, LinkedIn, Adobe | Led the ML team @ Koo

Online
Joined October 2009
Photo by Harsh Singhal (@HiHarshSinghal)Photo by Harsh Singhal (@HiHarshSinghal)Photo by Harsh Singhal (@HiHarshSinghal)Photo by Harsh Singhal (@HiHarshSinghal)Photo by Harsh Singhal (@HiHarshSinghal)Photo by Harsh Singhal (@HiHarshSinghal)Photo by Harsh Singhal (@HiHarshSinghal)Photo by Harsh Singhal (@HiHarshSinghal)Photo by Harsh Singhal (@HiHarshSinghal)Photo by Harsh Singhal (@HiHarshSinghal)
An agent skill can keep the same description while the code behind it changes. For Trust & Safety teams and agent administrators, that raises a practical question: what exactly did your approval cover? In one Safeguard Eval experiment, I compared reviewing SKILL.md alone with reviewing the complete textual package, keeping each model’s policy fixed. Among 128 malicious-labeled packages with companion files, Jev missed 42 when reviewing only SKILL.md, versus 6 with the full package. The cohort is mostly generated, and nothing was executed. But the observation raises questions about how we design approval workflows: • Does approval cover the description, the bundled code, or a specific version of the whole package? • Which changes trigger another review? • Do reviewers receive the files needed to assess the policy? • Which permissions and actions still need checks at runtime? My working recommendation: tie approval to the artifacts actually reviewed, record what the review could not inspect, and define when changes require reassessment. A useful next step for teams may be to audit what their approval process actually sees. github.com/harshsinghal/safe…
11
A policy edit that helps one moderation model can hurt another. I've been exploring this in Safeguard Eval: how policy wording, model choice and decision thresholds affect what gets blocked or allowed. Experiments, results and failures: github.com/harshsinghal/safe…
1
15
6/7 I'm testing policy models (PolicyLM, Shieldstral, Safeguard), general LLMs (Qwen), decision models (Jev, Kev, Clef) and small encoders. Approaches: policy edits, retrieval, threshold tuning, ensembles, classifiers on frozen features and fine-tuning.
1
5
7/7 My working recommendations for policy and moderation teams: • Version policies, models and thresholds together. • Test edits on held-out cases. • Track false blocks and missed violations separately. • Re-evaluate model changes. • Have policy owners and engineers review errors together.
3
I've been experimenting with building an AI buddy. Commutes are boring, and I just want to chat about nothing. Imagine being able to summon a few friends to talk to about mundane things. Like the crew in Seinfeld. Here is what I've learned from this experience 🧵
1
2
281
3) I decided to rebuild Rory from the ground up. - The Cartesia API provided the STT and TTS. I cloned a voice, which made the experience even better. - The Cerebras Qwen 3.8 27B model provided fast inference. This is important for controlling overall latency. Critical in a voice experience. - Run the backend stack on Cloudflare and use the Line SDK from Cartesia as a starting point. - Use Twilio to get a number you can call. Evals are tricky, but for an AI buddy, you need to have conversations and then come back and ask your Agent to make changes to improve. But the targets to reach are vibe checks. Rory didn't remember what I said last week. Rory kept asking follow-up questions. Rory sounded parental. Rory's humor is always very sarcastic or dry. Rory does not have a personal life to draw from. Basically, the feedback sets expectations you start to build with a personal AI friend. Codex/Claude Code receives these expectations and figures out how to meet them. I'm currently satisfied, but building Rory has taught me a lot about how hard it is to create a personal AI friend. Calling it a friend is too much. I'm trying to build an AI I can have chats with during commutes, primarily. This is the main goal I used to track 2 to 3 minutes of conversation before losing interest. Over the last few months, I've reached a median of 7 minutes.
1
118
4) I've finally found a few areas that seem brittle to fix with harness engineering. Many of Rory's personal life events and relationship memories generated daily from our conversations aren't being processed according to the system instructions. It seems these are the brittle areas that change very often. I'm going to fine-tune the Qwen model to fix its conversation quality based on the personal and relationship memory. These seem like obvious misses that make me hang up.
1
18
Been fine-tuning a Qwen 0.6B model for entity extraction of arbitrary entity types that can be expressed in natural language. Heavily inspired by the great work done by folks who created GLINER. The purpose for me was to highlight entities in the original text without modifying the text. Span classification typically used encoder models due to their bidirectional nature which improves accuracy. But I wanted to fine-tune a small language model. To ensure the input text remained unchanged, constrained decoding was used during the decoder step. After a few iterations I realised the real alpha was in selecting the training data for the fine-tuning. And to select examples that represented a few key entities. I realised that the data mixture is where one can develop taste and expertise imo. A narrow set of entities, say PII often appear in a wide variety of document types. Selecting for a varied mixture vs selecting for a mixture which represents where the model will be typically used is the real tension. I’ve been building SPANIEL and documenting the experiments as I go along. github.com/harshsinghal/SPAN… Where I wish to focus my learnings next is to improve inference and play with vLLM and different GPU classes.
1
1
5
149
I’ve always been fascinated by the idea of being a solo founder. And when I heard about builtwith, a product created by a single individual, I became motivated to do the same. Over the years I tried scraping websites to identify the javascript technologies used. Then realised I could use common crawl. I want to process the entire common crawl dataset and attempted to do so with Spark on AWS and Lambda. This was a lot of experimentation and I remember a lot of friction with just getting to the good stuff. Writing code, debugging, deployment, worrying about cost on cloud providers and on it went. AI seems to have changed all of this. I seem to go from idea to implementation within a manner of hours or days. I recently ran a common crawl processing job on aws and it tripped a few of their alerts. I was locked out. And I haven’t been able to get back in. I decided to build something else. A news feed of the kind of topics only I care about. Security, AI, Space, Agent Alignment, technology history and so on. The idea of going back to AWS or GCP just felt “heavy”. I wanted something more nimble. Something that felt like a glove more than a toolbox. I discovered Cloudflare a long time ago but this time someone I know told me to try it out for my projects. I started to build my personal news feed and it took me a few weekends to iterate on the RSS sources, curate and read and go back to shaping it every few days. Codex Remote allowed me keep chiseling at it whenever I felt inspired. And Cloudflare supplied whatever I needed to implement. Containers on Cloudflare are a game changer. And the availability of a wide variety of LLMs and other models that don’t require an API to another provider is hugely underrated. I felt like I was operating in founder mode. I spend a lot of time getting the news I want on denselayer.ai You can also read the architecture on the engineering blog. Great product @eastdakota The pricing still confused me but I just let Codex tell me if I need to upgrade. I’m already using the paid tier but I was told I don’t have enough neurons a day for a certain task. Would be great to convert this to Mtok so I can size my workloads. I’d love more support for LoRA. Only a handful of models support it which is great but some of the much smaller models like 0.6B Qwen would help. There are a lot of my friends who would like to use Cloudflare not to mention a large number of students in Bangalore colleges who I had the pleasure of mentoring a few years ago as a visiting faculty. Definitely think @eastdakota a “founder mode” plan which talks about containers and AI Mtok allowances would be very attractive. Because of Cloudflare I find myself not canceling my Max subscription on Codex.
1
1
114
Codex mobile controlling codex on my Mac mini is an amazing experience. My side gigs don’t have to wait for weekends on evenings. I find myself checking in anytime inspiration shows up.
55
Codex is just incredible. Dam!!
1
1
64
I got a Beelink SER9 a few months ago and it was lying idle. Until I installed Claude Code and fixed my keyboard layout to use the Mac layout. This was stopping me from doing anything on the mini pc. Intelligence of this kind is going to crystallize demand for all kinds of stuff!!
80
When will we see videos of these robots doing laundry, loading the dishwasher, vacuuming around the house. All I see them do is martial arts.
Unitree’s $30,000, 180cm (nearly 6 ft tall) H2 humanoid robot. This version is likely powered by an Nvidia Jetson AGX Thor platform, built on Blackwell architecture.
54
Given how good Opus 4.5 is, its going to cause all other models to be used more. In a sense, Opus 4.5 is the gravity well that all the other AI companies were waiting for. Opus 4.5 is truly the AI that causes energy to fall short of all the demand its going to create!!
26