Treehacks 2024 โครงการ เลื่อนลง เพื่อดูรายละเอียด 
| ส่วน | คำอธิบาย |
|---|---|
| แอป Vision OS | คำแนะนำสำหรับการดาวน์โหลดและแยกไฟล์ VisionMama.zip สำหรับแอพ Vision OS |
| AI Agent Pipeline สำหรับการสร้างสูตรการค้นหาอาหารและการสั่งซื้อ Instacart | รายละเอียดเกี่ยวกับไปป์ไลน์จากคำขออาหารของผู้ใช้เพื่อสร้างสูตรการระบุส่วนผสมค้นหาสถานที่ซื้อและการสร้างคำสั่ง Instacart ใช้ประโยชน์จาก Mistral-7B LLM, GPT-4-turbo, SERP API และอัลกอริทึมการจัดอันดับที่ซับซ้อน |
| การฝึกอบรมล่วงหน้า | ข้อมูลเกี่ยวกับการเตรียมชุดข้อมูลกระบวนการฝึกอบรมล่วงหน้าและการตัดสินใจเกี่ยวกับการใช้โมเดล MISTRAL-7B ที่ปรับแต่งอย่างละเอียด |
| การปรับแต่ง | อธิบายการปรับแต่ง LORA ของ MISTRAL-7B ด้วยสูตร 250K การตั้งค่าที่ใช้และผลกระทบขนาดชุดข้อมูลต่อประสิทธิภาพ |
| ตัวแทนแชทเว็บ reflex.dev | การใช้ reflex.dev เพื่อสร้างอินเทอร์เฟซแชทสำหรับการโต้ตอบกับตัวแทน AI รวมถึงทริกเกอร์สำหรับการสร้างสูตรและการระบุส่วนผสม |
| Intersystems ฐานข้อมูลเวกเตอร์ไอริสสำหรับการค้นพบสูตรความหมาย | การใช้ฐานข้อมูลเวกเตอร์ไอริสสำหรับการฝังสูตรและการค้นหาความหมายตามอินพุต "vibe" ของผู้ใช้ |
ในไฟล์ VisionMama.zip โปรดดาวน์โหลดและแยกสิ่งนี้
เราสร้างจุดสิ้นสุดที่เราได้รับจาก Vision Pro และเว็บไซต์สะท้อนของเรา โดยพื้นฐานแล้วสิ่งที่เกิดขึ้นคือเราส่งอาหารที่ผู้ใช้ต้องการเช่น "ซุปกล้วย" เราผ่านสิ่งนั้นไปยัง LLM ที่ปรับแต่งอย่างละเอียดของเราเพื่อสร้างสูตร จากนั้นเราใช้ GPT-4-turbo อย่างรวดเร็วเพื่อวิเคราะห์สูตรและสกัดส่วนผสม จากนั้นเราใช้ SERP API ในแต่ละส่วนผสมเพื่อค้นหาตำแหน่งที่สามารถซื้อได้ใกล้เคียง เราจัดลำดับความสำคัญส่วนผสมที่ถูกกว่าและใช้อัลกอริทึมเพื่อพยายามเยี่ยมชมร้านค้าจำนวนน้อยที่สุดเพื่อซื้อส่วนผสมทั้งหมด ในที่สุดเราเติมคำสั่งซื้อ API Instacart เพื่อซื้อส่วนผสม (จำลองตอนนี้เนื่องจากเราไม่สามารถเข้าถึงพันธมิตรที่แท้จริงไปยัง API ของ Instacart)
เราพบชุดข้อมูลออนไลน์ 250,000 สูตร เราแปรรูปพวกเขาล่วงหน้าและแยกพวกเขาและทำให้พวกเขาเป็นคนก่อน เราใช้ Tokenizer คู่ไบต์ GPT2 เราฝึกฝน พารามิเตอร์ 40M LLM ของเราโดยใช้การใช้งาน nanogpt ที่แก้ไขแล้วเราไม่มีเวลาในการหาวิธีปรับใช้ LLM ดังนั้นเราจึงไปกับโมเดล Mistral-7B ที่ปรับแต่งได้ดี (ซึ่งทำได้ดีกว่า) รายละเอียดเพิ่มเติมเกี่ยวกับ DevPost ของเรา
เรา Lora ปรับแต่ง Mistral-7b โดยใช้แพลตฟอร์มออนไลน์ของ Monsterapi: monsterapi.ai (ขอบคุณทีมที่ให้เครดิตฟรีแก่เรา!) การตั้งค่า: หนึ่ง EPOCH, LORA R = 8, LORA Alpha = 16, Dropout = 0, BIAS = NONE, ขั้นตอนการสะสมการไล่ระดับสี = 32, LR = 0.0002, ขั้นตอนการอุ่นเครื่อง = 100
ก่อนการปรับแต่งเราได้เตรียม สูตร 250K ที่เราได้รับจากออนไลน์เป็นรูปแบบคำแนะนำมาตรฐานโดยใช้สคริปต์นี้: PregerecipesForFinetuning.py รูปแบบคือ: คุณเป็นพ่อครัวผู้เชี่ยวชาญ คุณรู้เกี่ยวกับอาหารหลากหลายมากมาย คุณเขียนสูตรอาหารอร่อยที่เป็นประโยชน์ n n ### คำสั่ง: โปรดคิดทีละขั้นตอนและสร้างสูตรรายละเอียดสำหรับ {พรอมต์} n n ### การตอบกลับ: {เสร็จสิ้น}
นอกจากนี้เรายังลดการแจ้งเตือนและความสำเร็จทั้งหมด เราทดลองกับ การปรับแต่งโดยใช้สูตร 10K, 50K และ 250K เราสังเกตว่าการใช้ข้อมูลเพิ่มเติมนำไปสู่การสูญเสียที่ลดลง แต่เมื่อผลตอบแทนลดลง เราปรับใช้ Mistral-7b (ตัวอย่าง 250k) ที่ปรับแต่งได้อย่างละเอียดโดยใช้ monsterapi.ai สคริปต์ finetuned-mistral7b-monsterapi.py แสดงให้เห็นว่าเราเรียกโมเดลที่ปรับแต่งได้อย่างไร
เราใช้ reflex.dev ซึ่งเป็นเหมือนปฏิกิริยา แต่ทั้งหมดใน Python เพื่อสร้างอินเทอร์เฟซแชทง่าย ๆ เพื่อโต้ตอบกับตัวแทนของเราเพราะคนส่วนใหญ่ไม่มีวิสัยทัศน์มืออาชีพ เราเรียกใช้ GPT-3.5-turbo ที่ได้รับการออกแบบทางวิศวกรรมเพื่อให้ข้อมูลทางโภชนาการแก่ผู้ใช้หากพวกเขาถามคำถาม อย่างไรก็ตามหากผู้ใช้เริ่มต้นข้อความแชทของพวกเขาด้วย "Get Me" และจากนั้นก็เป็นอาหารในจินตนาการมัน จะกระตุ้นท่อส่ง AI ของเรา ซึ่งเรียกว่า Mistral-7B ที่ปรับแต่งอย่างละเอียด ของ เราเพื่อสร้างสูตรอาหาร GPT -4-turbo เพื่อประมวลผลและแยกส่วนผสมจากการใช้งาน ร้านค้าและในที่สุดก็มีการโทรหา API คำสั่งซื้อของ Instacart เราโฮสต์บน Reflex.dev ซึ่งง่าย เราเพิ่งปรับใช้ Reflex และใส่ในตัวแปร Env ของเราจากเทอร์มินัล! ขอบคุณ Reflex
เราใช้ ฐานข้อมูล Iris Vector เวอร์ชันการเข้าถึงรุ่นแรกโดยใช้งานบน Mac กับ Docker เราฝัง 10,000 สูตรเฉพาะจากอาหารที่หลากหลายโดยใช้ การฝัง Text-ADA-002 ของ OpenAI เราจัดเก็บ embeddings และสูตรอาหารในฐานข้อมูลเวกเตอร์ไอริส จากนั้นเราปล่อยให้ผู้ใช้ป้อน "บรรยากาศ" เช่น "วันฤดูหนาวฝนหนาว" เราใช้ MISTRAL-7B เพื่อสร้าง การฝังเอกสารสมมุติ สามข้อ (HYDE) ในรูปแบบที่มีโครงสร้าง จากนั้นเราก็สอบถามไอริสดีบีโดยใช้พรอมต์ที่สร้างขึ้นโดยไม่ได้รับการตรวจสอบสามครั้ง กุญแจสำคัญในที่นี้คือการค้นหาความหมายปกติ จะไม่ ให้คุณค้นหาด้วยความรู้สึกอย่างมีประสิทธิภาพ หากคุณค้นหาความหมายเกี่ยวกับ "วันฤดูหนาวที่ฝนตกเย็น" มีแนวโน้มที่จะให้ผลลัพธ์ที่เกี่ยวข้องกับความเย็นหรือฝนตกมากกว่าอาหาร การแจ้งเตือนของเรากระตุ้นให้ Mistral เข้าใจความรู้สึกของอินพุตของคุณและแปลงเป็นพรอมต์ไฮด์ที่ดีขึ้น ตัวอย่างจริง: การป้อนข้อมูลของผู้ใช้: บางอย่างสำหรับวันฤดูหนาวที่อากาศหนาวเย็นที่สร้างขึ้นคำค้นหา: {'Queries': ['สูตรอาหารฤดูหนาวที่อบอุ่น', 'สูตรอาหารที่สะดวกสบายสำหรับวันที่อากาศหนาวเย็น', 'สตูว์แสนอร่อยและซุปสำหรับอากาศหนาวเย็น']}}}}}}}