TreEhacks 2024 Projekt. Scrollen Sie nach unten für Details.
| Abschnitt | Beschreibung |
|---|---|
| Vision OS App | Anweisungen zum Herunterladen und Extrahieren der VisionMama.zip -Datei für die Vision OS -App. |
| AI -Agenten -Pipeline für Rezeptgenerierung, Lebensmittelsuche und Instacart -Bestellung | Details zur Pipeline von der Lebensmittelanforderung eines Benutzers zur Erstellung eines Rezepts, der Identifizierung von Zutaten, der Suche nach Kauforten und Erstellen einer Instacart -Bestellung. Verwendet ein fein abgestimmter Mistral-7b LLM, GPT-4-Turbo, SERP-API und einen ausgefeilten Ranking-Algorithmus. |
| Vorausbildung | Informationen zur Datensatzvorbereitung, zur Vorausbildung und zur Entscheidungsfindung bezüglich der Verwendung eines fein abgestimmten Mistral-7b-Modells. |
| Feinabstimmung | Beschreibt die Feinabstimmung von Mistral-7b Lora mit 250K-Rezepten, Einstellungen und Datensatzgröße auf die Leistung. |
| Reflex.dev Web Chat Agent | Verwenden von Reflex.dev, um eine Chat -Schnittstelle für die Interaktion mit dem AI -Agenten zu erstellen, einschließlich Auslöser für die Erzeugung von Rezept und die Identifizierung von Zutaten. |
| Intersystems Iris Vector -Datenbank für semantische Rezeptentdeckung | Verwendung der IRIS -Vektor -Datenbank für Rezeptempfetten und semantische Suchanfragen basierend auf den "Vibe" -Itreingängen. |
In der Datei VisionMama.zip laden Sie diese bitte herunter und extrahieren Sie diese
Wir haben einen Endpunkt aufgebaut, den wir von unserem Vision Pro und unserer Reflex -Site getroffen haben. Grundsätzlich einreichen wir das gewünschte Essen eines Benutzers wie "Bananensuppe" ein. Wir geben das an unsere fein abgestimmte Mistral-7b LLM, um ein Rezept zu erzeugen. Dann verwenden wir schnell GPT-4-Turbo, um das Rezept zu analysieren und die Zutaten zu extrahieren. Dann verwenden wir die SERP -API für jede Zutat, um festzustellen, wo sie in der Nähe gekauft werden kann. Wir priorisieren billigere Zutaten und verwenden einen Algorithmus, um die geringste Anzahl von Geschäften zu besuchen, um alle Zutaten zu kaufen. Schließlich bevölkern wir einen Instacart Order API -Anruf, um die Zutaten zu kaufen (vorerst simuliert, da wir keinen tatsächlichen Partnerzugriff auf Instacarts API haben).
Wir haben online einen Datensatz von 250.000 Rezepten gefunden. Wir haben sie vorverarbeitet und sie für die Vorbereitung geteilt und token. Wir haben das GPT2 -Bytepaar -Codierungs -Tokenizer verwendet. Wir haben unseren 40-m-Parameter LLM mit einer modifizierten Nanogpt-Implementierung geschult. Wir hatten keine Zeit, um herauszufinden, wie das LLM bereitgestellt wird. Weitere Details zu unserem DevPost.
Wir lora Fine-abgestimmte Mistral-7b mit Monsterapis Online-Plattform: Monsterapi.ai. (Vielen Dank an das Team, dass Sie uns kostenlose Credits erhalten haben!) Einstellungen: Eine Epoche, Lora r = 8, Lora alpha = 16, Dropout = 0, Bias = Keine, Gradientenakkumulationsschritte = 32, LR = 0,0002, Warmup -Schritte = 100
Vor der Feinabstimmung haben wir 250K-Rezepte vorbereitet, die wir von Online in ein Standard-Anweisungsformat mit diesem Skript erhalten haben: prepareRecipesforfinetuning. Sie kennen viele verschiedene Küchen. Sie schreiben hilfreiche leckere Rezepte. N n ### Anweisung: Bitte denken Sie Schritt für Schritt nach und generieren ein detailliertes Rezept für {Eingabeaufforderung} n n ### Antwort: {Abschluss}
Wir haben auch alle Eingabeaufforderungen und Abschlüsse gesenkt. Wir experimentierten mit Feinabstimmungen mit 10K-, 50k- und 250K-Rezepten. Wir beobachteten, dass die Verwendung von mehr Daten zu einem geringeren Verlust führte, jedoch zu verringernden Renditen. Wir haben unsere fein abgestimmte Mistral-7b (250K-Beispiele) anhand von Monsterapi eingesetzt.
Wir haben Reflex.dev verwendet, das wie Reagieren, aber ausschließlich in Python ist, um eine einfache Chat -Schnittstelle zu erstellen, um mit unserem Agenten zu interagieren, da die meisten Menschen keinen Vision Pro haben. Wir führen GPT-3,5-Turbo aus, das so schnell entwickelt ist, dass er dem Benutzer Ernährungsinformationen zur Verfügung stellt, wenn er eine Frage stellt. However, if the user begins their chat message with "get me " and then an imaginary food, it triggers our AI agent pipeline which then calls our fine-tuned Mistral-7b to generate a recipe, GPT-4-turbo to process and extract ingredients from the recipe, and then Google Search via SERP API and a sophisticiated multiobjective ranking algorithm to identify the cheapest and best ingredients from the minimal number of stores, and schließlich bevölkert die Instacart -API -Anrufe. Wir haben es auf Reflex.dev gehostet, was einfach war. Wir haben gerade Reflex bereitgestellt und unsere Env -Variable aus dem Terminal ausgelegt! Vielen Dank an Reflex.
Wir haben die Early Access -Version der IRIS Vector -Datenbank verwendet und sie auf einem Mac mit Docker ausgeführt. Wir haben 10.000 einzigartige Rezepte aus verschiedenen Küchen eingebettet, indem wir OpenAIs Text-ada-002-Einbettung mithilfe von OpenAIs eingebettet haben. Wir haben die Einbettungen und Rezepte in einer Iris -Vektor -Datenbank gespeichert. Dann lassen wir den Benutzer eine "Vibe" wie "Cold Ray Winter Day" eingeben. Wir verwenden Mistral-7b, um drei hypothetische Dokumenteinbettungsanforderungen (HYDE) in einem strukturierten Format zu generieren. Anschließend fragen wir die Iris DB mit den drei mit wegen missheilten erstellten Eingabeaufforderungen an. Der Schlüssel hier ist, dass Sie bei der regelmäßigen semantischen Suche Sie nicht effektiv nach Vibe suchen können. Wenn Sie semantische Suche nach "Cold Rainy Winter Day" durchführen, gibt es Ihnen eher Ergebnisse, die mit Kälte oder Regen zusammenhängen, als mit Lebensmitteln. Unsere Aufforderung ermutigt Mistral, die Stimmung Ihrer Input zu verstehen und sie in bessere Hyde -Eingabeaufforderungen umzuwandeln. Echtes Beispiel: Benutzereingabe: Etwas für einen kühlen Wintertag erzeugte Suchanfragen: {'Querien': ['Erwärmung Wintergerichte Rezepte', 'Comfort Food Recipes für kalte Tage', 'herzhafte Eintopf und Suppen für kaltes Wetter']}}}}}}}}}}