We’re building AI-driven tools at Insilica.co to transform toxicology—and we need great engineers to make it happen. Better toxicology means safer drugs, better substances, a cleaner environment, and healthier lives.
Help us at
linkedin.com/jobs/view/41436…
The book "Atomic Habits" delves into how habits and feedback loops can entrap us in repetitive behavior.
It's easy to see this with internet browsing. During challenging tasks, our brains often seek instant gratification. Platforms like YouTube, X and Linkedin provide this swift, near-guaranteed reward.
To combat this, I developed the HabitBreaker Chrome extension. It introduces a 30-second delay for sites you find distracting, giving you a moment to reconsider. It's been helpful for me, breaking that immediate reward loop.
You can get it here chrome.google.com/webstore/d…
On a more dystopian note, as AI's ability to manipulate our behavior becomes overpowering, we will need tools that can protect us. Adblockers and this simple tool are examples of that.
It is my hope that people will develop AI tools that help protect humans from destructive AI. HabitBreaker isn't AI, but it is a simple example demonstrateing that algorithms can influence human behavior into healthier states.
Thomas Luechtefeld retweeted
biobricks.ai eases access to biomedical data with:
1. A single method to access many data sources
2. A data package manager to handle data dependencies
3. A single location to discover data
Learn more at insilica.co/posts/3-ways-bio…
github.com/bakks/butterfish is an awesome command line LLM tool. Basically chatgpt web app but faster, and in your terminal.
The alias `vipe | butterfish prompt` let's you pipe a text editor into your LLM.
Easy to imagine building lots of other pipes/plugins on top of this.
Thomas Luechtefeld retweeted
this is wild — kNN using a gzip-based distance metric outperforms BERT and other neural methods for OOD sentence classification
intuition: 2 texts similar if cat-ing one to the other barely increases gzip size
no training, no tuning, no params — this is the entire algorithm:
![for (x1, _) in test_set: Cx1 = len(gzip.compress(x1.encode())) distance_from_x1 = [] for (x2, _) in training_set: Cx2 = len(gzip.compress(x2. encode()) x1x2 = " ".join([x1, x2]) Cx1x2 = len(gzip.compress(x1x2. encode()) ncd = (Cx1x2 - min(Cx1,Cx2)) / max(Cx1, Cx2) distance_from_x1.append(ncd) sorted_idx = np.argsort(np.array(distance_from_x1)) top_k_class = training_set[sorted_idx[:k], 1] predict_class = max(set(top_k_class), key=top_k_class.count)](https://pbs.twimg.com/media/F05HxqsWwAAHRCI.jpg?name=small&format=webp)
ALT for (x1, _) in test_set: Cx1 = len(gzip.compress(x1.encode())) distance_from_x1 = [] for (x2, _) in training_set: Cx2 = len(gzip.compress(x2. encode()) x1x2 = " ".join([x1, x2]) Cx1x2 = len(gzip.compress(x1x2. encode()) ncd = (Cx1x2 - min(Cx1,Cx2)) / max(Cx1, Cx2) distance_from_x1.append(ncd) sorted_idx = np.argsort(np.array(distance_from_x1)) top_k_class = training_set[sorted_idx[:k], 1] predict_class = max(set(top_k_class), key=top_k_class.count)
this paper's nuts. for sentence classification on out-of-domain datasets, all neural (Transformer or not) approaches lose to good old kNN on representations generated by.... gzip aclanthology.org/2023.findin…
chatgpt just helped me write an app that:
1. gets my calendar events
2. prompts chatgpt to schedule events
The first email I used it on:
Dear Tom,
For our team, Wednesdays to Fridays in the afternoon German time is usually a good slot, what would work for you?
#ChatGPT
This whole thing took me about 30 minutes to implement, mainly because chatgpt helped me figure out the google cloud api stuff, something that was always a hangup in the past.
Thomas Luechtefeld retweeted
Retrieval-Enhanced Contrastive Vision-Text Models
paper page: huggingface.co/papers/2306.0…
Contrastive image-text models such as CLIP form the building blocks of many state-of-the-art systems. While they excel at recognizing common generic concepts, they still struggle on fine-grained entities which are rare, or even absent from the pre-training dataset. Hence, a key ingredient to their success has been the use of large-scale curated pre-training data aiming at expanding the set of concepts that they can memorize during the pre-training stage. In this work, we explore an alternative to encoding fine-grained knowledge directly into the model's parameters: we instead train the model to retrieve this knowledge from an external memory. Specifically, we propose to equip existing vision-text models with the ability to refine their embedding with cross-modal retrieved information from a memory at inference time, which greatly improves their zero-shot predictions. Remarkably, we show that this can be done with a light-weight, single-layer, fusion transformer on top of a frozen CLIP. Our experiments validate that our retrieval-enhanced contrastive (RECO) training improves CLIP performance substantially on several challenging fine-grained tasks: for example +10.9 on Stanford Cars, +10.2 on CUB-2011 and +7.3 on the recent OVEN benchmark.
gpt4 can write tutorials for people. Here it is summarizing how to use our tool docs.biobricks.ai.
Scientific protocols are a powerful way to combat the reproducibility crisis.
Unfortunately, as more special cases are discovered in each field, protocols get longer and longer, and become a burden to maintain for creators, and tedious for researchers. Sometimes researchers despair and create a new protocol, and thus the cycle continues.
There is a better way!
By integrating ontologies, and #FAIR processes into protocol creation, we can create a system that enables protocol creators to create highly specified, fit-for-purpose protocols while allowing the elements of those protocols to be reused and reshuffled across different use-cases.
This cuts down redundancy, streamlines processes, and paves way for automation tools to fast-track protocol adoption across fields. Let's make science more efficient and open! #OpenScience #SSRP
A shout out to @JoelChan86 for steering this idiot through an NIEHS grant proposal. He took my incomprehensible mince, turned it into steak, and served it on time. Now it's 🤞time. (I'd say you should work with him but I can't because I want him to myself thank you very much.)
Thomas Luechtefeld retweeted
Finetuning vs prompting?
Here's a nice empirical insight from arxiv.org/abs/2104.08691 illustrating that finetuning outperforms prompting.
(Caveat: I wish they had done a per-dataset analysis to learn what how much labeled data is needed to outperform prompting)
Thomas Luechtefeld retweeted
Okay gang, experimenting with a new thing: Journal Clinics. On 19 April, you can ask me any questions you want about the pros and cons of submitting for peer-review the protocol for your primary study. Especially for ECRs and PIs with ECRs. Sign up here: jh.zoom.us/webinar/register/…
Thomas Luechtefeld retweeted
TLDR - Sysrev AI models are down. Fix in 1-2 days.
SR is growing quickly and user activity has outstripped our modelling service's ability to keep up. SR models train on over 5 million data points derived from sysrev screening and data extraction activities. These models update daily, and with the recent influx of new users (SR just broke 10k registered users 🎉 ) our hardware is just not able to keep up.
We expect this to be fixed in the next 1-2 days and we have some big announcements coming that will more permanently address this problem. Subscribe to this Linkedin page to learn more!
Counting bioassays from pubchem in part 2 of the pubchem biobricks.ai series:
youtu.be/n-Au8a6j5vI
What is the most tested compound? Take a guess and then check the video!
youtu.be/aTywIJj_3E8
#biobricksai #cheminformatics #bioinformatics
Bioinformatics data is needlessly complex to access. BioBricks.ai solves that problem. Learn why we're building it, and what it can do for you.
#bioinformatics #cheminformatics #biobricksai
youtu.be/R0L4962X1YI
I just wrapped up a quick video showing how to pull @pubchem SDF data using `biobricks install pubchem` and count some molecular weights in R
Pubchem is big, but it fits on most modern machines. With enough space, you can `biobricks install pubchem` and count 115 million molecular weights.
Sprinkle in a little arrow, dplyr and ggplot and you've got a histogram.
youtu.be/gFiLjr0G4sM #rstats #cheminformatics

















