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.
translation is an interesting problem in and of itself still. its kind of a miracle we can do it at all, yet in some circumstances it seems obvious for there to be objective answers (cooking ingredients being one of them), but even then you never really know even with human translators if you've got it correct. even within the same language nearly every individual has their own version of it.
for example, how would you translate "chips" to another language without first knowing which version of English you are translating from? could be an american speaker with a british relative and they use the british definition of chips while otherwise mostly speaking american english.
there's a level of pragmatism in translation that needs to be assumed, and ultimately we have to accept that translated knowledge will always have low resolution. There is a layer of work that needs to be done with the source of the materials involvement to get written content to a level of formalism needed to be representative of the language it is written in. Generally, the work of editors. Which means successful translation for wide distribution, while still not guaranteed, is predicated on the editorial skills of the translator which begs for dialogue with the source.
Meanwhile, AI provides this super convenient band aid to get translation results you can't disprove.
I genuinely think people are severely underestimating the power held by these models for being translators and how literal truth is going to be determined by them deep behind the scenes under the disguise of accessibility. Not in a dangerous way necessarily, just in a way where what languages are and what words mean is going to shift towards whatever the models think they are.
In a way, over extended time, the models will not be wrong about the translations because their results will redefine what successful formal editing of language looks like, and disagreeing with them will amount to the same difference as having local slang.
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).
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.
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.
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.
That does represent 70% or so of the current world population. It isn't 100% coverage but it is most of the many of the biggest groups.
It is missing the Italian, Japanese, Greek and Mexican cooking - that are incredibly popular worldwide and it is incomplete without them, and nothing from Africa at all or Middle East.
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 space of palatable human food is small. There are only a few thousand ingredients and a few thousand preparation techniques. This could easily be compressed at high fidelity into a model.
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.
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").
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.
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".
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.
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.
https://www.simonandschuster.com/books/Ratio/Michael-Ruhlman...
Also, all non-English terms were AI-translated to English which is methodologically understandable but surely leaves room for error.
for example, how would you translate "chips" to another language without first knowing which version of English you are translating from? could be an american speaker with a british relative and they use the british definition of chips while otherwise mostly speaking american english.
there's a level of pragmatism in translation that needs to be assumed, and ultimately we have to accept that translated knowledge will always have low resolution. There is a layer of work that needs to be done with the source of the materials involvement to get written content to a level of formalism needed to be representative of the language it is written in. Generally, the work of editors. Which means successful translation for wide distribution, while still not guaranteed, is predicated on the editorial skills of the translator which begs for dialogue with the source.
Meanwhile, AI provides this super convenient band aid to get translation results you can't disprove.
I genuinely think people are severely underestimating the power held by these models for being translators and how literal truth is going to be determined by them deep behind the scenes under the disguise of accessibility. Not in a dangerous way necessarily, just in a way where what languages are and what words mean is going to shift towards whatever the models think they are.
In a way, over extended time, the models will not be wrong about the translations because their results will redefine what successful formal editing of language looks like, and disagreeing with them will amount to the same difference as having local slang.
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.
https://www.nature.com/articles/srep00196
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).
- (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
...
I'm trying to compress recipes into little schematics https://leontrolski.github.io/recipes.html
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 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.
— Carl Sagan
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.
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-...
And I don't know why, but "Beans (green)" is really tickling my funny bone.
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…
"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
Great job!
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)
So hardly "all of human cooking"...
It is missing the Italian, Japanese, Greek and Mexican cooking - that are incredibly popular worldwide and it is incomplete without them, and nothing from Africa at all or Middle East.
They do quickly acknowledge it, but definitely not a balanced set.
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.
Not that it matters much in this context, but low-temperature is not the same thing as deterministic.
Numerical instability can introduce randomness especially on GPU like hardware unless you’re very careful about how you write your algorithms.
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..
Does it have African ingredients??
Clickbait
We've lost more than we know
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.
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.
It's another book for Zach Weinersmith.
Getting you to click is the ultimate goal.