RSSAmplifier

Blog

chanind.github.io

Machine Learning, Javascript, Python, and DevOps

chanind.github.ioRSS feed ↗10 posts

Latest posts

Auto-matching hidden layers in Pytorch LLMs

Note: This is cross-posted on LessWrong.

Solving Python SSL certificate verify failed on Linux / SGE

On a system I’ve been working on I’ve been plagued by SSL errors whenever Python would try to download something from the internet. I know it’s possible to edit the requests to not verify SSL certs, but this is code in a third-party library (e.g. nltk.download) which I cannot edit easily. And even if I could, it’s unsettling to disable SSL verification since that opens you up to potentiall…

Academics: You’re Doing Open Source Wrong

Cake with melted plastic lego pieces, delicious. Generated by Midjourney

Remote debugging Readthedocs builds with tmate

I recently ported a library I built, tensor-theorem-prover, from being a pure Python library to being a hybrid Python/Rust library using PyO3. Despite my being a beginner with Rust, it resulted in a nearly 20x speedup over the old pure Python implementation! However, it also broke the Readthedocs build for hosting the docs for the project. In the process of debugging this, I found a (very hacky)…

Deploying to Netlify on Release Tags with Github Actions

I recently had to set up a workflow where tagging a release on Github would trigger a deploy to production on Netlify. This turned out to be less straightforward than I expected originally, but I think the solution to make this work is functional and elegant. The idea is as follows:

Running Jupyter Notebooks in Grid Engine with Ngrok

A lot of universities use Oracle Grid Engine (aka Sun Grid Engine, or SGE) for high-performance computing. This system lets you submit jobs requesting varying amounts of CPUs, GPUs, and memory to run machine learning (ML) and other compute-intensive tasks. This is great for when you’ve built a pipeline to train a ML model and just need a lot of power to run the training, but is awkward for…

Initial Thoughts on Abstract Meaning Representation (AMR)

I’m interested in extracting meaning from text in a form that can be reasoned over by computers, and was thus really excited when I stumbled on Abstract Meaning Representation (AMR). AMR is a really cool idea. It parses sententes into a tree structure based around semantic frames while extracting out numbers and dates into a structured format within the tree. It feels like it combines the meaning…

FrameNet Parsing with Transformers

A transformer reading a book, generated by pixray-vqgan

Contextual Bandits in Python with Vowpal Wabbit

Over the past few weeks I’ve been using Vowpal Wabbit (VW) to develop contextual bandit algorithms in Python. Vowpal Wabbit’s core functionality is excellent and it appears to be the industry standard for working with bandits. However, the library is not well documented and has numerous gotchas and partially-working features, especially in the Python bindings. The library overall feels like it was…

Understanding Inverse Propensity Score for Contextual Bandits

One of the hardest concepts to grasp about contextual bandits is understanding how to evaluate a bandit policy without actually deploying it and seeing how it performs with users. Intuitively it seems impossible to know how a new policy will perform looking only at past data because in a bandit problem you can only observe the rewards for an action that was taken. You don’t have any data about the…