- Epicure एक मॉडल है जिसने 4.14M रेसिपियों और FlavorDB compound data के आधार पर 1,790 मानकीकृत ingredients की 300-dimensional embeddings सीखी हैं
- इसे मौजूदा FlavorGraph की English-केंद्रित corpus, fixed chemical-recipe मिश्रण, और बिखरी हुई ingredient vocabulary जैसी समस्याओं को कम करने के लिए डिज़ाइन किया गया है
- Cooc, Chem, और Core एक ही संरचना में केवल random walk schema बदलकर recipe co-occurrence और chemical signal के अनुपात की तुलना करते हैं
- ये तीनों embeddings 27 sensory-nutritional directions और 8 बड़े culinary regions को रैखिक रूप से recover करती हैं, और unsupervised तरीके से 20 factors प्राप्त करती हैं
- nearest neighbors और SLERP directional arithmetic की मदद से rice को South-Asian दिशा में rotate करने जैसी ingredient exploration संभव है, लेकिन code और outputs अभी सार्वजनिक नहीं हैं
Epicure का लक्ष्य
- ingredient embedding ingredients के बीच pairing, अलग-अलग संस्कृतियों में समान ingredients, और sensory-nutritional axes पर उनकी स्थिति खोजने की बुनियाद है
- जैसे doenjang के साथ mirin, dashi, sesame oil अच्छी तरह मेल खाते हैं, और olive oil के साथ basil, tomato, prosciutto; ऐसी जानकारी कई संस्कृतियों की recipe corpora और chefs की intuition में संचित होती है
- इसका उपयोग menu-recipe assistance tools, उपलब्ध ingredients पर आधारित recommendations, Mediterranean ingredients से East Asian equivalents तक जाने वाली exploration, और fat-like mouthfeel, fermentation, bitterness, high-protein जैसे axes-आधारित exploration में किया जा सकता है
- पहले के शोध chemistry-based flavor networks और recipe-knowledge graph आधारित approaches की दिशा में आगे बढ़े हैं
- Ahn et al. [2011] ने flavor network पेश किया और दिखाया कि shared compounds के आधार पर संस्कृतियों के बीच अंतर दिखाई देता है
- Garg et al. [2017] का FlavorDB 936 food entities के aroma molecules की सूची देता है, और FooDB 70,000 compounds के साथ chemical coverage को बढ़ाता है
- FlavorGraph [Park et al., 2021] FlavorDB और Recipe1M+ को जोड़कर 6,653 ingredients और 1,645 compounds का एक heterogeneous graph बनाता है, और Metapath2Vec से प्रशिक्षित एक सार्वजनिक food embedding है
- FoodKG [Haussmann et al., 2019] recommendation को लक्ष्य बनाकर recipe, nutrition, और ontology data को RDF knowledge graph में एकीकृत करता है
FlavorGraph की सीमाएँ और Epicure की डिज़ाइन
- पहले के विश्लेषण में FlavorGraph की 300-dimensional embeddings में taste, texture, nutrition, geography, culture, और processing सहित 15 से अधिक व्याख्येय culinary dimensions की पहचान हुई थी, और LLM-सशक्त vocabulary integration ने अधिकांश signals को मजबूत किया था
- FlavorGraph के fixed pretraining पर तीन सीमाएँ थीं
- यह एक ही English-केंद्रित corpus पर निर्भर था
- chemical signal और recipe context signal एक fixed inductive bias के साथ जुड़े थे, इसलिए उन्हें design axis की तरह नियंत्रित करना कठिन था
- ingredient vocabulary में preparation details और non-food items के मिले-जुले, बिखरे हुए ढाँचे बने रहे
- Epicure इन सीमाओं को कम करने के लिए शुरुआत से फिर से प्रशिक्षित तीन sibling skip-gram ingredient embeddings से बना है
- 11 स्रोतों से 4.14M रेसिपियाँ इकट्ठी की गईं
- भाषा दायरे में English, Chinese, Russian, Vietnamese, Spanish, Turkish, Indonesian, German, और Indian-English शामिल हैं
- raw ingredient strings को LLM-सशक्त pipeline के जरिए 1,790 मानकीकृत ingredient entries में normalize किया गया
- तीनों models architecture और hyperparameters साझा करते हैं, और केवल random walk schema में अंतर है जिसे skip-gram objective देखता है
डेटा और तीन embeddings
- Epicure दो प्रकार के graphs से शुरू होता है
- ingredient-ingredient NPMI graph में 203,508 edges हैं
- FlavorDB ingredient-compound graph में 80,019 edges हैं, और इसमें 15 categories के 2,247 typed compound nodes शामिल हैं
- Metapath2Vec के तीन variants chemistry और recipe context के स्पेक्ट्रम पर अलग-अलग स्थान लेते हैं
-
Cooc
- यह मॉडल केवल recipe co-occurrence graph पर चलता है
- इसका फोकस उन context signals पर है जहाँ ingredients वास्तविक recipes में साथ दिखाई देते हैं
-
Chem
- यह मॉडल केवल typed compound metapaths पर चलता है
- इसका फोकस ingredient-compound संबंधों से आने वाले chemical signals पर है
-
Core
- यह compound-based paths और ingredient-ingredient paths दोनों का उपयोग करता है
- नियंत्रित mixing ratio के साथ ingredient-ingredient walks जोड़कर chemical signal और recipe context signal को मिलाता है
- यह संरचना एक ही input data और training setup के भीतर chemistry-vs-recipe context अनुपात को design axis के रूप में सामने लाती है
- तीन sibling models के बीच अंतर केवल random walk schema से पैदा होने के लिए डिज़ाइन किया गया है
- इसलिए embeddings के गुणों का अंतर input data नहीं, बल्कि walk schema के प्रभाव के रूप में तुलना किया जा सकता है
embedding space में पुनर्प्राप्त culinary meaning
- तीनों Epicure models supervised probes में 27 continuous sensory-nutritional directions और 8 culinary macro-regions को रैखिक रूप से recover करते हैं
- cuisine separation का औसत Cohen’s d Cooc/Core/Chem क्रम में 2.43/2.70/3.07 है
- probe range में cuisine, food-group, NOVA processing grade, USDA macronutrients, और 19 sensory categories शामिल हैं
- unsupervised analysis हर मॉडल में 20 व्याख्येय factors recover करता है
- food-group residualized embeddings पर multi-seed stable FastICA लागू किया गया
- हर factor के top quartile items को GMM से विभाजित कर model-दर-model 150–200 नामित culinary modes प्राप्त किए गए
- GMM modes की औसत consistency random-pair baseline से अधिक थी
- Cooc/Core/Chem की औसत consistency 0.611/0.833/0.703 थी
- संबंधित random-pair baselines 0.097/0.348/0.115 थे
- मौजूदा embedding research के दृष्टिकोण भी validation में उपयोग किए गए
- Mikolov et al. [2013] की word2vec linear directionality अवधारणा 27 supervised culinary probes, 20 FastICA factors, और SLERP rotation operations की नींव है
- Mu et al. [2017] की isotropy अवधारणा के अनुसार participation ratio और average pairwise cosine से embedding isotropy को सीधे मापा गया
- तीन sibling models isotropy spectrum पर स्पष्ट रूप से अलग स्थानों पर हैं, और इसे input data नहीं बल्कि walk schema के गुण के रूप में देखा गया
- Caliskan et al. [2017] का WEAT इस बात की सहायक जाँच के रूप में इस्तेमाल हुआ कि नामित semantic axes geometric structure में परिलक्षित होती हैं या नहीं
exploration operations और उपयोग की संभावनाएँ
- Epicure एक ही 300-dimensional embedding space में दो पूरक operation families देता है
-
nearest-neighbor आधारित pairing
- top-K neighbor search से किसी ingredient के आसपास के निकट items ढूँढे जाते हैं
- mode membership lookup से किसी विशेष culinary mode में आने वाले items की खोज की जाती है
-
SLERP directional arithmetic
- seed ingredient को supervised pole vector या emergent factor-mode pole की दिशा में rotate किया जाता है
- continuous angle θ seed-dominant search और target-dominant search के बीच interpolation करता है
- उदाहरण के लिए rice में South-Asian दिशा जोड़ने पर यह curry leaf, urad dal, chana dal, fenugreek seed की ओर बढ़ता है
- supervised semantic directions और unsupervised emergent modes दोनों का उपयोग ingredient exploration में किया जा सकता है
- chefs के लिए tools ingredients को rotate, blend, और search करते हुए sensory, nutritional, और cultural रूप से सुसंगत दिशाओं में exploration करने दे सकते हैं
- chemical-based relationships और recipe-context-based relationships को model selection और walk schema के जरिए नियंत्रित किया जा सकता है
- code और trained outputs फिलहाल सार्वजनिक नहीं हैं
1 टिप्पणियां
Hacker News की राय
शोध अपने-आप में दिलचस्प है, लेकिन शीर्षक भ्रामक है
इससे बेहतर शीर्षक शायद “मनुष्य द्वारा इस्तेमाल की जाने वाली खाद्य सामग्रियों को 1,800 primitive elements में संपीड़ित करना” जैसा होगा
असली recipes, यानी तैयारी के तरीके या अनुपात जैसी बातें इसमें लगभग नहीं हैं, लेकिन दुनिया भर में टमाटर beef के साथ अच्छी तरह मेल खाता है जैसी जानकारी flavor combinations बनाने में काफ़ी उपयोगी और दिलचस्प संसाधन हो सकती है
इसमें 1,800 सामग्रियों के सभी combinations नहीं हैं, लेकिन आम तौर पर इस्तेमाल होने वाली herbs, spices, vegetables, और meats को काफ़ी अच्छी तरह कवर किया गया है। इस किताब को compress करने पर भी text size शायद बहुत बड़ा नहीं होगा
LLM से बनी recipes की समस्या यह है कि वे cooking techniques की बारीकियाँ पकड़ नहीं पातीं। कई बार सफलता एक step या एक ratio पर निर्भर करती है, और उदाहरण के लिए “fried chicken” के दुनिया भर में अनगिनत variations हैं, लेकिन recipes का औसत निकालने से स्वादिष्ट fried chicken नहीं बन जाता
11 data sources कई आम व्यंजनों को कवर करते हैं, लेकिन English और Chinese sources dataset का 90% हिस्सा हैं। Africa और Arab world भी data में नहीं हैं, जबकि सिर्फ़ ये दोनों ही दुनिया की आबादी का लगभग 25% हैं
सभी non-English terms को AI से English में अनुवाद करना methodological रूप से समझ में आता है, लेकिन इसमें गलती की गुंजाइश साफ़ है
beef को अगर ग़लत तरह से उबाला जाए तो वह tough हो जाता है, लेकिन टमाटर की acidity उसे फिर से नरम कर देती है
दिलचस्प
मैं recipes को एक छोटे schematic में compress करने की कोशिश कर रहा हूँ: https://leontrolski.github.io/recipes.html
मैं हमेशा से कुछ ऐसा सोचता रहा हूँ, और recipes का ingredients को एक बहुत बड़ी बिना भेद वाली सूची में रखकर फिर “सूखी सामग्री को एक गहरे bowl में मिलाएँ” कह देना मुझे हमेशा खटकता था
कुछ समय तक मुझे लगा था कि अगर इसका अच्छा implementation बना लिया जाए तो यह profitable हो सकता है, लेकिन अब लगता है कि जैसे ही कोई मज़बूत interface आ जाएगा, इसे आसानी से copy किया जा सकेगा
table देखकर Modernist Cuisine की recipes याद आ गईं। वहाँ ingredients को process के चरणों के हिसाब से group किया जाता है, और साथ में weight, कभी-कभी volume और ratios भी दिए जाते हैं
उदाहरण: https://modernistcuisine.com/wp-content/uploads/2013/01/Mac-...
जानकारी के लिए, https://publicdomainrecipes.com पूरी साइट https://browse.library.kiwix.org पर 22MiB की single file के रूप में उपलब्ध है: https://browse.library.kiwix.org/viewer#publicdomainrecipes....
recipes जोड़ना https://github.com/ronaldl29/public-domain-recipes पर किया जा सकता है
“English, Chinese, Russian, Vietnamese, Spanish, Turkish, Indonesian, German, Indian English आदि 7 भाषाओं के 11 sources” हों, तो इसे पूरी मानवता का cuisine कहना मुश्किल है
हालाँकि दुनिया भर में बेहद लोकप्रिय Italian, Japanese, Greek, Mexican cuisine इसमें नहीं हैं, और Africa तथा Middle East भी पूरी तरह गायब हैं, इसलिए यह अधूरा है
paper में भी इसे जल्दी स्वीकार किया गया है, लेकिन यह निश्चित रूप से balanced dataset नहीं है
[1] में इस पेपर में समझाई गई चीज़ का एक डेमो देखा जा सकता है, जो इसके पहले के iteration जैसा लगता है
मुझे जिज्ञासा हुई कि डेमो ने कौन-सी सामग्री चुनी, इसलिए Peter Gilmore[2] की “Organum: Nature, Texture, Intensity, Purity” में आने वाली कुछ अपरिचित सामग्रियों को आज़माया। वे ऑस्ट्रेलिया के सिडनी स्थित Quay रेस्तरां के लिए जाने जाते हैं
यह juniper berry, macadamia, nigella seeds, orange flower water, lemon verbena जैसी काफ़ी adventurous सामग्रियों को जानता है, और sesame oil तथा toasted sesame oil में भी फ़र्क करता है। सामग्री सूची में सिर्फ़ “rice”, “black rice”, “brown rice”, “glutinous rice” हैं, फिर भी “rice” चुनने पर fried rice के लिए पका हुआ jasmine rice ठंडा करके इस्तेमाल करने को कहता है, और pilaf के लिए basmati rice भिगोकर धोने को कहता है — यानी काफ़ी समझदार है
“lamb” चुनकर braising में आम तौर पर इस्तेमाल होने वाली सब्ज़ियाँ साथ चुनें तो यह shoulder या shank जैसे cuts सुझाता है
यह grapeseed oil, orzo, mangosteen, lemon myrtle को नहीं जानता, और karkalla जैसी सामग्री भी स्वाभाविक रूप से नहीं जानता, जिसे शायद Peter Gilmore जैसा कोई ही इस्तेमाल करे और ज़्यादातर chefs ने सुना भी न हो। लेकिन ऐसी सामग्री क्षेत्र-विशेष या बहुत niche होती हैं, इसलिए मैं इसे बहुत बड़ी सीमा नहीं मानता
यह “pepitas” को जानता है, लेकिन “pumpkin” को नहीं, और उसे “squash” के रूप में संभालता है, इसलिए British/American English के इस्तेमाल को बेहतर करने के लिए localization की और ज़रूरत है। मैंने “lamb” और “avocado” मिलाकर salad बनाने की उम्मीद की थी, लेकिन वह असफल रहा; बाद में देखा कि सामग्री सूची में lettuce या arugula नहीं थे, सिर्फ़ अमेरिकी अभिव्यक्ति “salad greens” थी। मैंने दूसरी salad सामग्री, chicken, या बिना protein के भी कोशिश की, लेकिन इसने salad नहीं बनाया, बस protein के टुकड़े के आसपास tomato gel (agar) और avocado purée लगाकर नकली fine-dining dish ही बनाता रहा
[1] https://epicure.kaikaku.ai/
[2] https://en.wikipedia.org/wiki/Peter_Gilmore_(chef)
एक अमेरिकी के नज़रिए से कई तरह के आम squash होते हैं, और pumpkin उनमें से सिर्फ़ एक है। जो तुरंत याद आते हैं वे हैं acorn, butternut, spaghetti, और सख़्ती से देखें तो zucchini भी इसमें आता है
X/Twitter पर देखा, लेकिन यह मानना मुश्किल है कि इंसानी खाना पकाने की पूरी दुनिया, सारी techniques, ingredients, और सांस्कृतिक संदर्भों के हिसाब से cooking methods को 2 megabytes में compress किया जा सकता है
यह कुछ वैसा ही है जैसे “tool calling और coding कर सकने वाला 1GB model” कहकर कुछ चलाया जाए और वह लगभग काम ही न करे। तकनीकी रूप से वह 1GB coding model तो है, लेकिन अच्छा model नहीं है
जो food model/corpus English और German को शामिल करे लेकिन Italian और French को बाहर रखे, उस पर भरोसा करना मुश्किल है
असली French में लिखी recipes शायद शामिल न हों, लेकिन English में लिखी French onion soup recipe तो ज़रूर होगी
इसमें लिखा है, “[Claude] performed all ingredient classification with deterministic decoding (temperature 0–0.1)”, लेकिन इस संदर्भ में यह बहुत बड़ी समस्या नहीं है, फिर भी low temperature का मतलब determinism नहीं होता
clickbait को छोड़ दें तो concept काफ़ी दिलचस्प है। सोचता हूँ कि क्या ऐसी embeddings के लिए ingredients या flavor profiles में word2vec moment आ सकता है
जैसा दूसरों ने ठीक ही कहा, इसे ज़्यादा representative data sources के साथ फिर से बनाया जा सकता है, और यह देखना दिलचस्प होगा कि यह approach कितनी अच्छी तरह काम करती है
मैंने वह data और जानकारी Claude Code में देकर उसे implement करवाया, और यह काफ़ी अच्छा लग रहा है
recipe generation से ज़्यादा यह शायद substitute ingredient recommendations के लिए उपयुक्त हो सकता है: https://viz.roshangeorge.dev/recipe-model/