Projeto TreeHacks 2024. Role para baixo para obter detalhes. 
| Seção | Descrição |
|---|---|
| App Vision OS | Instruções para baixar e extrair o arquivo VisionMama.zip para o aplicativo Vision OS. |
| Oleoduto de agente de IA para geração de receitas, busca de alimentos e pedidos Instacart | Detalhes sobre o pipeline da solicitação de alimentos de um usuário para gerar uma receita, identificar ingredientes, encontrar locais de compra e criar um pedido do Instacart. Utiliza um Mistral-7B LLM, GPT-4-Turbo, API SERP e um algoritmo de classificação sofisticada. |
| Pré-treinamento | Informações sobre a preparação do conjunto de dados, processo de pré-treinamento e tomada de decisão sobre o uso de um modelo Mistral-7B ajustado. |
| Afinação | Descreve o ajuste fino de Lora de Mistral-7b com receitas de 250k, configurações usadas e impacto no tamanho do conjunto de dados no desempenho. |
| Reflex.dev Web Chat Agent | Usando reflex.dev para criar uma interface de bate -papo para interagir com o agente da IA, incluindo gatilhos para geração de receitas e identificação de ingredientes. |
| Banco de dados de vetor de íris intersystems para descoberta de receita semântica | Uso do banco de dados Vector Iris para incorporação de receitas e pesquisas semânticas com base nas entradas "vibe" do usuário. |
No arquivo VisionMama.zip, faça o download e extraia isso
Construímos um ponto final que atingimos do nosso Vision Pro e do nosso site reflexo. Basicamente, o que acontece é que enviamos a comida desejada de um usuário, como "sopa de banana". Passamos isso para o nosso Mistral-7b LLM, ajustado, para gerar uma receita. Em seguida, usamos rapidamente o GPT-4-Turbo para analisar a receita e extrair os ingredientes. Em seguida, usamos a API SERP em cada ingrediente para descobrir onde ela pode ser comprada nas proximidades. Priorizamos ingredientes mais baratos e usamos um algoritmo para tentar visitar o menor número de lojas para comprar todos os ingredientes. Por fim, preenchemos uma chamada da API do pedido do Instacart para comprar os ingredientes (simulados por enquanto, pois não temos acesso real ao parceiro à API do Instacart)
Encontramos um conjunto de dados on -line de 250.000 receitas. Nós os pré -processamos e os dividimos e os somos para pré -treinamento. Utilizamos o tokenizador de codificação de par de bytes GPT2. Treinamos nosso parâmetro de 40m LLM usando a implementação de nanogpt modificada, não tivemos tempo de descobrir como implantar o LLM, então seguimos com o nosso modelo Mistral-7b ajustado (que também teve um desempenho melhor). Mais detalhes sobre o nosso devpost.
LORA MISTRAL-7B ASSENTE FEQUEMENTO usando a plataforma on-line de Monsterapi: monsterapi.ai. (Obrigado à equipe por nos dar créditos gratuitos!) Configurações: uma época, Lora r = 8, Lora alfa = 16, abandono = 0, viés = nenhum, etapas de acumulação de gradiente = 32, lr = 0,0002, etapas de aquecimento = 100
Antes do ajuste fino, preparamos 250 mil receitas que obtivemos on-line em um formato de instrução padrão usando este script: preparerecipeSforfineTuning.py O formato é: você é um chef especialista. Você conhece muitas cozinhas diversas. Você escreve receitas úteis e saborosas. N n ### Instrução: Pense passo a passo e gera uma receita detalhada para {Prompt} n n ###Resposta: {conclusão}
Também abaixamos todas as instruções e conclusões. Experimentamos o ajuste fino usando receitas de 10k, 50k e 250k. Observamos que o uso de mais dados levou a uma perda menor, mas com retornos decrescentes. Implantamos nosso Mistral-7b ajustado fino (exemplos de 250k) usando monsterapi.ai o script finetuned-mistral7b-monsterapi.py demonstra como chamamos o modelo ajustado e processamos a saída em um formato padronizado usando métodos de processamento de regex e string.
Usamos o reflex.dev, que é como reagir, mas inteiramente em Python, para criar uma interface de bate -papo simples para interagir com nosso agente, porque a maioria das pessoas não possui um Vision Pro. Executamos o GPT-3.5-Turbo que é pronta projetado para fornecer informações nutricionais ao usuário se eles fizeram uma pergunta. 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 Armazena e, finalmente, preenche as chamadas da API do Instacart Order . Nós o hospedamos no reflex.dev, o que foi fácil. Acabamos de implantar e colocar em nossa variável Env do terminal! Obrigado ao reflexo.
Utilizamos a versão de acesso antecipado do banco de dados do IRIS Vector , executando -o em um Mac com o Docker. Incorporamos 10.000 receitas únicas de diversas cozinhas usando a incorporação de texto-Ada-002 da OpenAI. Armazenamos as incorporações e as receitas em um banco de dados de vetor de íris. Em seguida, deixamos o usuário inserir uma "vibração", como "Fria Rainy Winter Day". Utilizamos o Mistral-7b para gerar três avisos de incorporação de documentos hipotéticos (HYDE) em um formato estruturado. Em seguida, consultamos o Iris DB usando os três prompts gerados por Mistral. A chave aqui é que a pesquisa semântica regular não permite que você pesquise vibe de maneira eficaz. Se você fizer uma pesquisa semântica no "dia frio de inverno chuvoso", é mais provável que ofereça resultados relacionados ao frio ou à chuva, em vez de alimentos. Nosso impulsionamento incentiva o Mistral a entender a vibração de sua contribuição e convertê -la para melhores prompts hidráulicos. Exemplo real: entrada do usuário: algo para um dia frio de inverno Gerado consultas de pesquisa: {'consultas': ['aquecendo receitas de pratos de inverno', 'receitas de comida de conforto para dias frios', 'ensopados e sopas frios']}