The work is very interesting. The title is misleading.
A better title would be: "all of human ingredients compressed into 1,800 primitives"
There is little to substantively nothing about the actual cooking: preparation methods, proportions, etc.
But the idea that tomato goes well with beef the whole world over is very interesting and useful for creating flavors that will go together, perhaps surprisingly. It will be a nice resource in the future.
I have a wonderful book that explores this idea of an atlas of flavours that work together.
The flavor bible.
I can assure you that it does not contain 1800 ingredients in all of there combinations, but it does a remarkable job of covering a widely used selection of herbs spices vegetables and meats. I doubt a compressed version of the text would even be very large.
The trouble I find with LLM generated recipes is they miss the nuance of the technique. Often the success of a depends on a single step or ratio. For instance “fried chicken” has a million incarnations the world over, but you can’t just average out the recipes and end up with tasty fried chicken.
Unless I'm missing something, there's also nothing in the paper to indicate this is "all of human ingredients"? It looks like it's 11 data sources covering a bunch of common cuisines, with the English + Chinese sources accounting for 90% (!) of the dataset. Among others, Africa and the Arab world are not present in the data (good for about 25% of the global population).
Also, all non-English terms were AI-translated to English which is methodologically understandable but surely leaves room for error.
On a side note (and maybe off topic), I am thinking about food pairing which is based on the idea that two ingredients sharing volatile aroma compounds or certain molecular families may have a potential sensory compatibility (broccolis and strawberries for example). I'd love to test those ingredients and find some unknown food pairings. But .. time is what it is (for now).
That's a very cool site! I enjoyed the hand-drawn graphs.
Your tables remind me of recipes in Modernist Cuisine. They all have ingredients grouped by the procedures together with weight, sometimes volume, and ratio.
Ahh - the dependency graph recipe card. These are excellent. I've imagined something like this forever. Always annoyed that recipes put ingredients in a giant undifferentiated list and then give an instruction like "mix the dry ingredients in a deep bowl".
For a while I expected there could be a good return on a good implementation of this, but now as soon as a strong interface itself is created it seems easy to copy.
I used to want this kind of recipe card, but I've cooked so much that's no longer the case (I actually forgot all about the idea until reading this comment). I can usually look at the list of ingredients, and imagine what needs to be done. If it's an unusual or unfamiliar cuisine I will read the method, but after that point the list of ingredients suffice. If I read a recipe somewhere and want to cook it later, I will just write the ingredients on a post-it (usually in cooking order) and maybe 1-2 brief comments.
I imagine in domains you are skilled at you'd also prefer high level instructions than a step-by-step tutorial.
I agree that doesn't help the beginner, or someone who doesn't cook regularly, or someone cooking something new and I think most recipe writers are just following the established structure without thinking about what they and others really need.
Feels like one might be able to get an llm to convert an annoying to read recipe into a mermaid dependency graph following this example. Might be worth a try!
FWIW though most recipes are basically ~10 steps long so a simple list suffice.
Still it could be an interesting experiment as I imagine that precisely recipes that are less sequential are (on average, with as challenging steps, e.g. excluding making caramel which has a high chance of burning) perceived as more complex.
I love this! I bet you could make a successful recipe book based on this concept, with large schematics that a cook can read from a distance while working in the kitchen.
I really like these. I went through a phase a couple years ago where I got really into cooking new fancy recipes, and having to scroll around on recipe pages, or try and read my own chicken scratch notes or understand the context I was trying to imply when I wrote the notes weeks ago was a struggle.
Having everything more or less right there in front of your face seems really nice.
And I don't know why, but "Beans (green)" is really tickling my funny bone.
a lot of the schematics have avoidable edge crossings, that could improve intuitive readability enormously, theres entire subfields of graph theory that consideres rendering of graphs and planar embeddings.
This will perhaps be overkill for what you're trying to achieve, but there is Object Process Methodology (OPM)[1] which may be inspiration for modelling recipes. It looks similar to the methodology you're using, and as an example, expects the following type of modelling:
The advantage of OPM is alignment of graphical and textual representations.
The downside of such approach is you soon discover how many millions of objects may exist in recipes--unwashed carrot, washed carrot, orange carrot, purple carrot, yellow carrot, white carrot, peeled carrot, coarsely diced carrot, finely diced carrot, julienned carrot... and purple julienned carrot vs. yellow julienned carrot. And that's just basic preparation complexity well before any contemplation of cooking or plating up elements. To go further you then discover a lack of useful labels such as "mirepoix" or "soffrito", if for example, you wanted to substitute sweet potato in place of carrot in the recipe.
Then there is SysML 2[2] which is kind of like OPM if you ever wanted to write a recipe in 35,000 lines of code, including possibly all the complexity of mathematical modelling of the Maillard reaction for purple carrots vs. yellow carrots using either extra virgin olive oil or butter. Probably best suited for the largest food processing companies such as Nestle, Unilever, Modelez, etc and even then, inherent complexity of their food products rarely would reach the level of a fine dining dish prepared by a chef.
See [1] for a demo, seemingly of an older iteration of what this paper describes. I was curious what ingredients the demo had selected (1032 available vs 1790 this paper selects) so I tried some obscure ingredients from "Organum: Nature, Texture, Intensity, Purity" by Peter Gilmore[2] (known for Quay restaurant in Sydney, Australia).
It's got some adventurous ingredients such as juniper berry, macadamia nut, nigella seed, orange blossom water and lemon verbena. It even separates sesame oil and toasted sesame oil. Even though the ingredients list only has "rice", "black rice", "brown rice" and "glutinous rice", when you select "rice" as an ingredient, the recipes it generates are smart enough to advise of chilling cooked jasmine rice before using in a fried rice, and smart enough to soak and rinse Basmati rice before using in a pilaf. If selecting "lamb" as an ingredient, the recipes it generates will choose the cut as shoulder or shank if you select vegetables normally associated with braising.
It doesn't know of grapeseed oil, orzo, mangosteen, lemon myrtle, and of course anything that only Peter Gilmore might use in a recipe and most chefs would have never heard of (karkalla as an example). I don't see this being too much of a limitation because such ingredients are quite localised or speciality. It knows of "pumpkin seeds" but not "pumpkin"--that is "squash", so there are some localisation improvements which could be made to improve British and American English use. I tried pairing "lamb" and "avocado" together in the hope it'd generate a recipe with a salad, but this failed. I then realised the ingredients list doesn't include lettuce or rocket, but has "salad greens" instead (American English) and no matter what I tried (other salad ingredients, chicken or no protein), it would not give me a salad. It kept generating wannabe-fancy dishes of a chunk of protein surrounded by tomato gel (agar agar) and a smear of avocado, or similar.
I saw this on X/Twitter. I do not believe that human cooking, and all of its techniques and ingredients and the various ways that things can be prepared in different cultural contexts can be compressed in to 2 megabytes.
It is sort of like saying here is a 1GB model that can do tool calling and coding and then you try it out and it barely functions. Yes, it technically is a 1GB coding model, but it isn't a good one.
The table lists Italian, French and other cuisines. The 11 source listing is for language. The resource is missing authentic French-language described recipes, but there is surely an English-language French onion soup.
The triangle of flour - milk and egg- held eggnog, but eggnog contains alcohol, which is made of starches, usually flour.. thus being percentage-wise closer to flour then displayed. Yes, so much on the spectrum..
I don't really understand, what the Graphs on page 9 and 13 represent, but they look somewhat like a world map with the continents.
I wouldn't be surprised if there's actually a geographic connection. A lot of ingrediants are probably more prevalent in certain world regions.
WTF? I found this a parody. Perhaps because I've just been re-reading C.S. Lewis's "That Hideous Strength", where language becomes meaningless, I can't stand the design of the site or the text it presents.
Making a nice lentil soup doesn't require any thought or description. I know that I, and millions of cooks in Asia will do it with just their hands.
As someone learning to cook from recipes in multiple languages,
this is really cool. Curious how it handles the same ingredient
called by different names (e.g., "scallion" vs "green onion" vs
"long onion").
It's an appeal to the attention economy. "All of human cooking compressed into 2 MB" is(mentally) palatable relative to "Navigating the Emergent Geometry of Food Ingredient Embeddings".
The work is very interesting. The title is misleading.
A better title would be: "all of human ingredients compressed into 1,800 primitives"
There is little to substantively nothing about the actual cooking: preparation methods, proportions, etc.
But the idea that tomato goes well with beef the whole world over is very interesting and useful for creating flavors that will go together, perhaps surprisingly. It will be a nice resource in the future.
I have a wonderful book that explores this idea of an atlas of flavours that work together.
The flavor bible.
I can assure you that it does not contain 1800 ingredients in all of there combinations, but it does a remarkable job of covering a widely used selection of herbs spices vegetables and meats. I doubt a compressed version of the text would even be very large.
The trouble I find with LLM generated recipes is they miss the nuance of the technique. Often the success of a depends on a single step or ratio. For instance “fried chicken” has a million incarnations the world over, but you can’t just average out the recipes and end up with tasty fried chicken.
Ruhlsman's "Ratio" is also quite good at distilling the mechanics of food into an algorithm of sorts.
https://www.simonandschuster.com/books/Ratio/Michael-Ruhlman...
Unless I'm missing something, there's also nothing in the paper to indicate this is "all of human ingredients"? It looks like it's 11 data sources covering a bunch of common cuisines, with the English + Chinese sources accounting for 90% (!) of the dataset. Among others, Africa and the Arab world are not present in the data (good for about 25% of the global population).
Also, all non-English terms were AI-translated to English which is methodologically understandable but surely leaves room for error.
> But the idea that tomato goes well with beef the whole world over is very interesting
I saved a beef stew I was making for twelve people once by adding tomato sauce.
Beef hardens if stewed incorrectly and tomato acid tenderises it again.
EDIT: removed incorrect information about store bought tomatoes.
If you are interested in that you might want to check out this paper:
https://www.nature.com/articles/srep00196
I would like one day to have a database which measure how strongly every food ingredient in use binds to every human smell receptors.
+1.
On a side note (and maybe off topic), I am thinking about food pairing which is based on the idea that two ingredients sharing volatile aroma compounds or certain molecular families may have a potential sensory compatibility (broccolis and strawberries for example). I'd love to test those ingredients and find some unknown food pairings. But .. time is what it is (for now).
I think it's a lot simpler than that. A common pattern for sauces is fat + acid + salt
- (Mexican) avocado and lime/lemon + salt
- (Chinese-southwestern) chili oil and vinegar + salt/fermented bean paste
- (Italian) olive oil and tomato + salt
- (Turkish) olive oil and lemon + salt
- (Thai) coconut milk and lime + salt
...
Neat.
I'm trying to compress recipes into little schematics https://leontrolski.github.io/recipes.html
That's a very cool site! I enjoyed the hand-drawn graphs.
Your tables remind me of recipes in Modernist Cuisine. They all have ingredients grouped by the procedures together with weight, sometimes volume, and ratio.
Example: https://modernistcuisine.com/wp-content/uploads/2013/01/Mac-...
Nice! this reminds me of https://www.reddit.com/r/flowchartrecipes/ and the table view on the https://www.cookingforengineers.com/recipe/87/Carrot-Pulp-Ca... pages.
I like it. Reminds me a bit of the table format on Cooking for Engineers (scroll to the bottom of the recipe): https://www.cookingforengineers.com/recipe/19/Erics-Chocolat...
I was going to say the same! You can also check the recipe card here: https://www.cookingforengineers.com/recipe/19/Erics-Chocolat...
Ahh - the dependency graph recipe card. These are excellent. I've imagined something like this forever. Always annoyed that recipes put ingredients in a giant undifferentiated list and then give an instruction like "mix the dry ingredients in a deep bowl".
For a while I expected there could be a good return on a good implementation of this, but now as soon as a strong interface itself is created it seems easy to copy.
I used to want this kind of recipe card, but I've cooked so much that's no longer the case (I actually forgot all about the idea until reading this comment). I can usually look at the list of ingredients, and imagine what needs to be done. If it's an unusual or unfamiliar cuisine I will read the method, but after that point the list of ingredients suffice. If I read a recipe somewhere and want to cook it later, I will just write the ingredients on a post-it (usually in cooking order) and maybe 1-2 brief comments.
I imagine in domains you are skilled at you'd also prefer high level instructions than a step-by-step tutorial.
I agree that doesn't help the beginner, or someone who doesn't cook regularly, or someone cooking something new and I think most recipe writers are just following the established structure without thinking about what they and others really need.
”To bake an apple pie from scratch, first you must create the universe.”
— Carl Sagan
Feels like one might be able to get an llm to convert an annoying to read recipe into a mermaid dependency graph following this example. Might be worth a try!
Just tried https://www.mlynn.org/tools/generate-diagram and it didn't work.
FWIW though most recipes are basically ~10 steps long so a simple list suffice.
Still it could be an interesting experiment as I imagine that precisely recipes that are less sequential are (on average, with as challenging steps, e.g. excluding making caramel which has a high chance of burning) perceived as more complex.
I love this! I bet you could make a successful recipe book based on this concept, with large schematics that a cook can read from a distance while working in the kitchen.
Great initiative ! So simple and yet it works (from those recipes listed I know, they are all working nicely).
My God what do you do to your feta?
I really like these. I went through a phase a couple years ago where I got really into cooking new fancy recipes, and having to scroll around on recipe pages, or try and read my own chicken scratch notes or understand the context I was trying to imply when I wrote the notes weeks ago was a struggle. Having everything more or less right there in front of your face seems really nice.
And I don't know why, but "Beans (green)" is really tickling my funny bone.
a lot of the schematics have avoidable edge crossings, that could improve intuitive readability enormously, theres entire subfields of graph theory that consideres rendering of graphs and planar embeddings.
These are amazing. It feels so clear to see a visual ”map” of the cooking process before you even start.
This would help coordinate two cooks to make prepping more independent.
I’m trying to figure out if an landscape Ipad, with interactive elements for extra details if needed, would be a good UI for this.
-
Edit: Showed it to my non-Engineer wife and she said ”this is horrible” after staring at it for 10 seconds. Maybe not for everyone…
Nice! I do similar but yours are much more sophisticated. I list the ingredients and then group them at the side with instructions.
My friend did a similar thing https://www.kickstarter.com/projects/1077776268/recipe-redes...
Dang this is the best way to represent a recipe I've ever seen. I love it
I'd prefer it if you minimized the crossing paths :-)
That's really neat and easy to parse, love it!
This will perhaps be overkill for what you're trying to achieve, but there is Object Process Methodology (OPM)[1] which may be inspiration for modelling recipes. It looks similar to the methodology you're using, and as an example, expects the following type of modelling:
"peeling carrot" (process) consumes "washed carrot" (object)
"peeling carrot" (process) yields "peeled carrot" (object)
"peeling carrot" (process) yields "carrot peel" (object)
"finely dicing carrot" (process) consumes "peeled carrot" (object)
"finely dicing carrot" (process) yields "finely diced carrot" (object)
"prepare mirepoix" (process) consumes "finely diced carrot" (object)
"prepare mirepoix" (process) consumes "finely diced celery" (object)
"prepare mirepoix" (process) consumes "finely diced onion" (object)
"prepare mirepoix" (process) consumes "butter" (object)
"prepare mirepoix" (process) yields "mirepoix" (object)
The advantage of OPM is alignment of graphical and textual representations.
The downside of such approach is you soon discover how many millions of objects may exist in recipes--unwashed carrot, washed carrot, orange carrot, purple carrot, yellow carrot, white carrot, peeled carrot, coarsely diced carrot, finely diced carrot, julienned carrot... and purple julienned carrot vs. yellow julienned carrot. And that's just basic preparation complexity well before any contemplation of cooking or plating up elements. To go further you then discover a lack of useful labels such as "mirepoix" or "soffrito", if for example, you wanted to substitute sweet potato in place of carrot in the recipe.
Then there is SysML 2[2] which is kind of like OPM if you ever wanted to write a recipe in 35,000 lines of code, including possibly all the complexity of mathematical modelling of the Maillard reaction for purple carrots vs. yellow carrots using either extra virgin olive oil or butter. Probably best suited for the largest food processing companies such as Nestle, Unilever, Modelez, etc and even then, inherent complexity of their food products rarely would reach the level of a fine dining dish prepared by a chef.
[1] https://en.wikipedia.org/wiki/Object_Process_Methodology
[2] https://www.omg.org/spec/SysML/2.0/Language/PDF
It's amazing how much more readable this format is. I love it.
Recipes-as-JSON?
That is brilliant. Going to try some of yours then maybe transcribe my own favourites into the same format. You've struck on a great idea here.
Now this I love. It respects the craft of cooking and the human element, while giving instructions in an easy to grok and straightforward way.
Great job!
See [1] for a demo, seemingly of an older iteration of what this paper describes. I was curious what ingredients the demo had selected (1032 available vs 1790 this paper selects) so I tried some obscure ingredients from "Organum: Nature, Texture, Intensity, Purity" by Peter Gilmore[2] (known for Quay restaurant in Sydney, Australia).
It's got some adventurous ingredients such as juniper berry, macadamia nut, nigella seed, orange blossom water and lemon verbena. It even separates sesame oil and toasted sesame oil. Even though the ingredients list only has "rice", "black rice", "brown rice" and "glutinous rice", when you select "rice" as an ingredient, the recipes it generates are smart enough to advise of chilling cooked jasmine rice before using in a fried rice, and smart enough to soak and rinse Basmati rice before using in a pilaf. If selecting "lamb" as an ingredient, the recipes it generates will choose the cut as shoulder or shank if you select vegetables normally associated with braising.
It doesn't know of grapeseed oil, orzo, mangosteen, lemon myrtle, and of course anything that only Peter Gilmore might use in a recipe and most chefs would have never heard of (karkalla as an example). I don't see this being too much of a limitation because such ingredients are quite localised or speciality. It knows of "pumpkin seeds" but not "pumpkin"--that is "squash", so there are some localisation improvements which could be made to improve British and American English use. I tried pairing "lamb" and "avocado" together in the hope it'd generate a recipe with a salad, but this failed. I then realised the ingredients list doesn't include lettuce or rocket, but has "salad greens" instead (American English) and no matter what I tried (other salad ingredients, chicken or no protein), it would not give me a salad. It kept generating wannabe-fancy dishes of a chunk of protein surrounded by tomato gel (agar agar) and a smear of avocado, or similar.
[1] https://epicure.kaikaku.ai/
[2] https://en.wikipedia.org/wiki/Peter_Gilmore_(chef)
>from 11 sources spanning seven languages, English, Chinese, Russian, Vietnamese, Spanish, Turkish, Indonesian, German, and Indian-English
So hardly "all of human cooking"...
Yes. I mean if you look at the corpus basically HALF of recipes are Chinese/Korean.
They do quickly acknowledge it, but definitely not a balanced set.
I saw this on X/Twitter. I do not believe that human cooking, and all of its techniques and ingredients and the various ways that things can be prepared in different cultural contexts can be compressed in to 2 megabytes.
It is sort of like saying here is a 1GB model that can do tool calling and coding and then you try it out and it barely functions. Yes, it technically is a 1GB coding model, but it isn't a good one.
I would not trust a model/corpus about food that includes English and German, but excludes Italian and French
The table lists Italian, French and other cuisines. The 11 source listing is for language. The resource is missing authentic French-language described recipes, but there is surely an English-language French onion soup.
> [Claude] performed all ingredient classification under deterministic decoding (temperature 0–0.1)
Not that it matters much in this context, but low-temperature is not the same thing as deterministic.
Yep. Zero temperature is neither necessary nor sufficient for deterministic inference.
Why?
You can seed the randomness are still having nonzero temperature.
Numerical instability can introduce randomness especially on GPU like hardware unless you’re very careful about how you write your algorithms.
In any batch inference environment that includes experts, expert routing may vary depending on what else is in the batch. For one thing.
All of recorded human cooking compressed into 2 megabytes
We've lost more than we know
I forgot this to raise it in the last food related thread - so here is the after-wit: https://www.reddit.com/media?url=https%3A%2F%2Fpreview.redd....
The triangle of flour - milk and egg- held eggnog, but eggnog contains alcohol, which is made of starches, usually flour.. thus being percentage-wise closer to flour then displayed. Yes, so much on the spectrum..
Published by Kaikaku, a London based startup doing automated restaurants and cooking
I don't really understand, what the Graphs on page 9 and 13 represent, but they look somewhat like a world map with the continents. I wouldn't be surprised if there's actually a geographic connection. A lot of ingrediants are probably more prevalent in certain world regions.
At uncook we’re in the middle of glamming up our ingredient normalization pipeline, so this is VERY welcome right now
Why haven’t you analyzed Italian recipes in Italian?
Clickbait title, post should be removed.
It’s soup, right? Has got to be soup.
WTF? I found this a parody. Perhaps because I've just been re-reading C.S. Lewis's "That Hideous Strength", where language becomes meaningless, I can't stand the design of the site or the text it presents.
Making a nice lentil soup doesn't require any thought or description. I know that I, and millions of cooks in Asia will do it with just their hands.
As someone learning to cook from recipes in multiple languages, this is really cool. Curious how it handles the same ingredient called by different names (e.g., "scallion" vs "green onion" vs "long onion").
Odd not including French and Italian recipes.
French and Italian languages. There are many recipes from both cuisines written in English which, I assume, will have been included.
Indeed, but I bet many were never translated.
As soon as you start adding our beloved french recipes, frogs, snails and other oddities might substantially increase the 1,790 ingredients count
it's a clickbait title
Cooking/recipes seems like it would be an excellent application for a specialized model.
Jacques Pepin's knuckles don't compress.
You can use it to browse flavor combinations here, seems quite neat!
https://epicure.kaikaku.ai/
That being said, I'm not excited about the idea of this being used to automate cooking somehow.
Food, to me, is part of what makes us human, where we express our soul for lack of a better word.
The idea of taking that away feels like robbing us of our humanity.
"human cooking"? ewww
To help you out, this is distinctly different from “cooking human”.
I don't see why the title needs to be quite so grandiose.
It's an appeal to the attention economy. "All of human cooking compressed into 2 MB" is(mentally) palatable relative to "Navigating the Emergent Geometry of Food Ingredient Embeddings".
Getting you to click is the ultimate goal.
Should be downvoted/flagged and buried.
11 sources is not "all of" anything. You have a sample. The title is horrible. Fix the title please.
Cooking condensed beyond the point of usefulness.
It's another book for Zach Weinersmith.
Great, so now chefs are being replaced too..!