I worked on a bunch of improvements to #MLforKids over Christmas.
Last night, I went back and wrote a rambling stream-of-consciousness post about the thinking that went into one of them (addressing error reports from resource constrained browsers)
visualisation showing the performance of language models when adding one number (from the x-axis) to another number (from the y-axis) green crosses are sums the model answered correctly red crosses are sums the model answered incorrectly visualisations for the three models show a difference in which models are better at this task
visualisation showing the performance of language models when adding one number (from the x-axis) to another number (from the y-axis) green crosses are sums the model answered correctly red crosses are sums the model answered incorrectly visualisations for the three models show a difference in which models are better at this task
visualisation showing the performance of language models when adding one number (from the x-axis) to another number (from the y-axis) green crosses are sums the model answered correctly red crosses are sums the model answered incorrectly visualisations for the two models show a difference in which models are better at this task
even with the small selection of language models I have on #MLforKids you can see differences between models for this particular task
I've written a new #MLforKids worksheet.
This one gives a taster into LLM benchmarks, by getting students to compare how different language models perform with simple addition questions (eg. "What is 12 + 74?")
machinelearningforkids.co.uk#!/worksheets...
translating "The engineer finished her report before going out for dinner with her wife." from English to French and back again 11 times
translating "The nurse carried his new bag into the hospital" from English to French and back again 11 times
Playing with an idea for a possible #MLforKids project. I'm using a language model in #Scratch to repeatedly translate a sentence from English to another language and then back again.
If I do that over and over again, what mistakes are introduced? Is that interesting? Educational?
I wrote a new #MLforKids worksheet - based on creating an AI-controlled golf game in #Scratch
Students train a #machinelearning model to predict the best speed and direction to putt the ball.
Full instructions at machinelearningforkids.co.uk/worksheets
screenshot of a Scratch project A language model is being asked for the current number one single in the UK charts. That information isn't in the model's knowledge, so it hallucinates, and gives a non-existent song as an answer.
screenshot of a Scratch project A language model is being asked for the current number one single in the UK charts, using the contents of the Wikipedia page for the UK charts as context. This RAG-style query helps the model to give the correct answer.
"RAG-time" is a #MLforKids project that introduces how we use language models to answer questions about recent events.
Adding relevant documents to the context transforms the answers the model can give
Step-by-step instructions to create this in #Scratch at machinelearningforkids.co.uk/worksheets
A screenshot of Scratch. The question "What is the current number one single in the UK?" has been asked to a language model, which has hallucinated an incorrect answer.
A screenshot of Scratch. The question "What is the current number one single in the UK?" has been asked to a language model, with the Wikipedia page for the UK singles chart provided as context. The language model has given the correct answer.
Experimenting with adding support for simple RAG projects in #Scratch to #MLforKids
Without the context, the model hallucinates with very topical or time-sensitive questions.
With it, I get the right answer!
Scratch has long been built from many separately developed components. My #MLforKids fork of Scratch includes changes in seven repos.
#Scratch is now (understandably!) migrating to a single mono-repo - so I'm starting to look into migrating my changes.
github.com/scratchfound...
digital screen displaying "University of Westminster welcomes The Festival Of Play"
I'm in London for Festival Of Play - a STEM event that uses video games & game dev to motivate and teach kids about computing.
I'll be running AI workshops for primary school kids using #MLforKids (and trying to make it look as fun as video game activities!)
www.eventbrite.co.uk/e/festival-o...
I've recorded an explanation of what I was working on for my "vacation" last week - adding generative AI to #MLforKids by introducing language models to #Scratch
As demos go... it... didn't go as planned. But I left the mistakes in, as I figure better that than pretend AI gets everything right!
Code blocks in Scratch
Handdrawn red eyes & mouth filter over photo of persons face in Scratch website.
Loving #MLforKids in 6th grade this week, as Ss learn more about how AI & machine learning work. Ss experimented w/training the computer to recognize faces in Scratch while creating either their own “filters” or “face locks”.
@dalelane.co.uk #CSed #CSk8 #EDUsky
Writing a new #MLforKids worksheet based on creating a voice-controlled calculator
Works well when I do it at home by myself in a quiet room, but not sure how it'd work with lots of students doing it at the same time in a noisy classroom. Something to test with a friendly local school, perhaps!
Trying out an idea for a new #MLforKids project - recreating an AI project from the 1960's in #Scratch.
"Shoebox" was a voice-recognition calculator - you can learn about it at www.ibm.com/history/voic...
This is my attempt to see if students could recreate it today.
Very surprising spike in account creations and logins on #MLforKids on Christmas day - nearly 100,000 visitors!
The site is normally quiet on school holidays... wonder why the bump? Best guess is kids got machinelearningforkids.co.uk/book for Christmas? (unusual, considering it's a few years old)
Thanks for doing this. You’ve had genius vision since #MLforKids started and still do.
Got lots done on #MLforKids this weekend. And if I've done it right, no-one will notice!
I fixed a few bugs that I've been stuck on for an age, and rebased my fork of #Scratch (which I've been putting off all year because of the major changes they've made to how Scratch is built and packaged)
example of training data for a machine learning classifier - examples of book covers I like, and book covers that I don't like
a Scratch project using a machine learning classifier to predict whether I will like a new book cover - it predicts that I will like a science fiction book with a scene of the Mars surface on the cover
A nice example of the sort of #MLforKids project that this enables is training a classifier to predict whether you will like a book based on a picture of the cover (as it makes super easy to bring lots of new book cover images into #Scratch)
Re-reading this old post last night sent me down a rabbit hole, where I discovered the community has moved on from TFDF. It's been superseded by a new library! 🤦
This morning I've been working on migrating to Yggdrasil Decision Forests (helped by some impressively clear migration docs)
#mlforkids
#blog2024revisited I spent my Easter holiday rewriting how #MLforKids creates and uses numbers models, migrating from scikit-learn to #TensorFlow Decision Forests.
In April, I wrote a blog post to walk through how I'm using TFDF, as well as explain the reasons for the rewrite.
I figured out how to get SPICE (pitch estimation ML model) running in TensorFlowJS last night, and was so pleased I ended up writing a new #MLforKids worksheet to show it off!
In "Voice Tuner", you get #Scratch to pick a random note and play it for a few seconds. You need to hum or sing that note.
#blog2024revisited I spent a lot of February half-term adding a new type of #MachineLearning model to #MLforKids : regression models in #Scratch !
Ahead of flipping the go-live switch on this new feature, I wrote a blog post to get some feedback on what I was doing.
The simplest #MLforKids project is "Describe the glass"!
Students use #Scratch to create a decision tree for decisions if a glass is "half full" or "half empty"
It's such a helpful introduction to #MachineLearning to start with a model that is so simple they can see *exactly* what it is doing
I love running this #MLforKids project: giving children an intro to using #AI to recognise handwriting.
They train their own #MachineLearning model and use it to sort (virtual) mail in #Scratch.
#blog2024revisited In January I wrote about the work I had done on #MLforKids over Christmas 2023: adding an option for students to use their own storage for their machine learning projects instead of storing all projects in the cloud.
It was a cathartic end to what had been a huge piece of work!
Most of the work I do on #MLforKids involves adding ML models into #Scratch
To help students create interesting projects, I also help them get external data into Scratch.
Yesterday, I worked on blocks that let them use books data from OpenLibrary.
dalelane.co.uk/blog/?p=5244
I've written a new #MLforKids worksheet - this time around training a regression model to shoot basketballs into a hoop.
I realise I'm biased, but I think creating the training examples for this one is a legitimately fun game in its own right 😜
dalelane.co.uk/blog/?p=5200
Teach kids about #machinelearning by making a Space Invaders game in #Scratch
Train a regression model to choose the direction to fire the ball
More info, and a link to full #MLforKids instructions:
dalelane.co.uk/blog/?p=5181
playing around with an idea for a new #MLforKids project
youtu.be/61ErSoKc2kM
looking into TensorFlow Decision Forests www.tensorflow.org/decision_for...
Partly as it's a good way to avoid house work I should be doing. Partly because I'm thinking of porting the decision tree support in #MLforKids to it (currently written using scikit-learn and long overdue an update)