Avalie esse Vídeo
Transcrição completa do vídeo
oi a todos, meu nome é anay Sani e sou um desenvolvedor associado Advocate aqui com mangodi, qualquer um que fantasia sobre luxo sabe tudo sobre Neta Porter e as peças incríveis que o site oferece, enquanto minha abordagem normal é classificar de baixo para alto por preço, eu estaria mentindo, eu disse que não era incrivelmente divertido ver toda a gama do que o site oferece, então vamos usar uma diversão conjunto de dados que contém itens net a porter da temporada passada e pesquisa semanticamente para explorar alguns dos itens mais caros de qualquer marca, qualquer categoria e com consultas de linguagem natural neste tutorial, usaremos o mongodb Atlas, o P [ __ ] Arrow Library mongod Tob Atlas Vector search e, claro, nosso divertido conjunto de dados de luxo do kagle antes de mergulharmos, vamos examinar alguns dos aspectos realmente importantes das plataformas que vamos usar, então o que é p [ __ ] ARA P [ __ ] arrow é uma biblioteca python para análise de dados com mongod DB devido ao nosso conjunto de dados ser um arquivo CSV, na verdade vamos lê-lo como uma biblioteca panda, então ele será lido como um quadro de dados panda com a biblioteca pine [ __ ] Arrow, podemos exportar todos os nossos dados para o mongod DB Atlas no formato mais ideal para o nosso tutorial, ele é realmente construído em cima do P [ __ ] então nos permite trabalhar com dados do mongoDB de uma maneira super fácil e eficiente à medida que você trabalha neste tutorial, você verá como é simples transferir seus dados e configurá-los quando você está usando a Biblioteca da era P [ __ ], que é um problema que muitos cientistas de dados tiveram no passado, então o que é o atlas mongodb Pesquisa vetorial mongodb Atlas A pesquisa vetorial realmente revolucionou a forma como você pode pesquisar, porque permite pesquisar semanticamente em seu banco de dados, mantendo todas as suas incorporações vetoriais ao lado de seus dados de origem no mesmo banco de dados, pesquisar semanticamente significa pesquisar por significado em vez de pesquisar usando palavras-chave ou frases exatas, então isso significa que podemos consultar e receber resultados que transmitem a mesma ideia de IDE sem essa redação precisa, por exemplo, em vez de pesquisar em nosso tamanho de amostra usando consultas simples, como vestido ou saia, podemos realmente usar frases ou generalidades, como verão, praia, tropical ou até mesmo verão, vamos utilizar o estágio de agregação de pesquisa vetorial de cifrão neste tutorial, que tornará as coisas um pouco mais fáceis, então vamos examinar alguns PRX para que tenhamos sucesso durante este tutorial, nosso primeiro, é claro, é usar um ID de sua escolha onde você será usado na colaboração do Google neste tutorial e, é claro, você precisa de uma conta do mongoDB atlas, você precisa configurar um cluster do mongoDB atlas e o nível gratuito funciona perfeitamente bem para neste tutorial, precisamos baixar um conjunto de dados do kaggle, você pode acompanhar o mesmo que eu usei e, em seguida, precisará de uma chave de API AI aberta para incorporar todos os seus documentos e links para tudo estará na caixa de descrição abaixo perfeita, vamos começar, então, uma vez que seu cluster tenha sido criado e você tenha baixado o conjunto de dados localmente, estamos prontos para começar o tutorial, então nosso primeiro passo é realmente fazer o upload do nosso arquivo CSV para o Google collab e antes de fazermos o upload disso, eu só quero apontar para este tutorial que adicionei muitos comentários apenas para tornar as coisas um um pouco mais fácil porque vamos fazer muitas coisas muito legais neste tutorial, então acabei de sair, deixei algumas coisas como nosso get pass Pro promp porque sei que isso não faz parte do nosso tutorial escrito se você estiver acompanhando e isso é apenas para manter as coisas em segredo e seguras enquanto estou fazendo isso ao vivo, então temos nosso índice de pesquisa vetorial e Então, apenas alguns comentários que vamos preencher para tornar as coisas um pouco mais fáceis para você e para mim, então, mais uma vez, nosso primeiro passo é seguir em frente e realmente fazer o upload do nosso. CSV que baixamos do kaggle e, portanto, podemos simplesmente ir até aqui, clicar nessa pequena seta e podemos encontrá-lo com a rede ou então CSV perfeito e tudo bem, você pode clicar bem, incrível, ele foi baixado, então, uma vez que seu arquivo é carregado, na verdade, precisamos fazer duas coisas muito importantes, nosso primeiro passo é usar IA aberta para criar incorporações em cada item em nosso arquivo e nosso segundo passo é que realmente precisamos limpar nosso conjunto de dados e configurá-lo em um formato mais adequado para nosso objetivo final, então isso é apenas para garantir que possamos realmente usar a pesquisa semântica para encontrar todos os itens que queremos dentro de nosso banco de dados e podemos encontrar quaisquer itens de luxo que nosso coração deseja, então se você for dar uma olhada em nosso arquivo CSV aqui você notará que na verdade consiste em quatro colunas, temos descrição da marca, preço, USD e tipo e, em seguida, há uma infinidade de linhas, não vou percorrer todas elas, mas você pode ter a ideia de que pode percorrê-las você mesmo, então precisamos adicionar uma coluna dentro de nosso quadro de dados que realmente contém as incorporações para cada uma de nossas descrições de itens, isso é Vai nos permitir pesquisar semanticamente com base na descrição do item, então, para incorporar cada item, na verdade usaremos nosso texto incorporando três pequenos modelos de incorporação junto com essa função de incorporação aqui, também precisaremos usar a biblioteca Panas para trabalhar com os dados que temos em mãos e se você é um cientista de dados ou já trabalhou com python e dados antes Eu sei que você provavelmente conhece pandas, mas para aqueles que são novos nisso, um pandas é na verdade uma biblioteca python usada para trabalhar com conjuntos de dados e é super crucial ao analisar, limpar, explorar e manipular dados e, como você verá, torna nosso trabalho muito mais fácil apenas para chegar às partes do quadro de dados que queremos usar e obter o dados que mais desejamos, então, para começar, primeiro temos que instalar o Open AI para que possamos fazer isso com um comando pip muito simples e, em seguida, podemos executá-lo para garantir que funcione e baixe perfeitamente e então eu já coloquei nossas importações no topo aqui, então estamos apenas importando pandas como PD, estamos importando Open AI porque acabamos de instalá-lo e depois vamos importar passe também, então falando sobre chaves, certifique-se de tirar um segundo e pegar sua chave secreta de IA aberta e, em seguida, vamos preencher alguns desses pequenos comentários úteis que eu já criei, então o primeiro é este, vamos usar esse modelo de incorporação para texto, então podemos simplesmente fazer o modelo de incorporação mais uma vez, é o texto X incorporando pequeno e,3 em seguida, a função de incorporação, vou copiar e colar de cima, está aqui perfeito, então nos preparamos para o sucesso com o processamento ou Bings, então vamos em frente e realmente configurar nosso quadro de dados, o primeiro passo é que realmente queremos ler o arquivo que acabou de ser carregado, não adianta fazer upload de um arquivo se estivermos não vou lê-lo corretamente, então vamos fazer DF para PD CSV de quadro de dados e aqui estamos apenas usando pandas para lê-lo e podemos entrar e dizer porteiro de slet de conteúdo. CSV legal e agora só queremos nos concentrar nas três primeiras colunas e isso é só porque eu pessoalmente sinto que não precisamos da coluna de tipo, como você pode ver aqui, para a grande maioria dos itens em nosso conjunto de dados, o tipo é roupa, mas, além disso, ele só dá como sapatos, acessórios, coisas assim, então eu pessoalmente vou soltar essa coluna, se você quiser para usar essa coluna na sua, não se preocupe, mas vou soltá-la para tornar as coisas um pouco mais limpas para nós mesmos, então DF caia e, em seguida, de nossas colunas, queremos descartar o tipo perfeito que eu vou fazer no lugar é igual a Verdadeiro muito bom para que estejamos reduzidos às nossas três colunas que queremos usar, hum, é importante garantir que as colunas com os quais estamos lidando são limpos e não têm nenhum valor nulo, então isso é crucial porque os valores n podem realmente atrapalhar nossos dados a longo prazo e é uma prática muito boa sempre garantir que você esteja trabalhando com um conjunto de dados limpo, então, para fazer isso, usaremos algo chamado dropna do gf. dropna e, em seguida, subconjunto é igual a isso está especificando a coluna da qual queremos descartar os valores nil, então vamos fazer a marca e, em seguida, precificar o USD e, em seguida, também vamos fazer nossa descrição descrição perfeita e, mais uma vez, basta acertá-la com o verdadeiro no lugar, então agora para garantir que não estamos gastando uma tonelada de tempo ou dinheiro, apenas recursos na incorporação geral todo o arquivo CSV gigantesco, vou reduzi-lo a 3 linhas que também nos dão um tamanho de amostra muito bom de dados 100 para trabalhar, mas não vai ocupar muitos de nossos recursos e ainda teremos a mesma ideia, hum, se apenas incorporamos descrições versus os provavelmente milhares que estão nesse arquivo CSV, então isso é simples, pois apenas DF 100 é igual a D f. head e depois apenas para apenas emendar agora, o que temos que fazer é criar uma nova coluna que vamos colocar 100 em nosso quadro de dados que contenha as incorporações vetorizadas reais para que possamos fazer isso apenas indo TF é descrição, então isso está dizendo que teremos uma nova coluna chamada incorporação de descrição e que, tirando-a da descrição e, em seguida, queremos aplicar nossa função de incorporação incrível e então vamos imprimir as primeiras linhas apenas para ter certeza de que estamos no caminho certo, então DF faça a cabeça e depois muito bom Ok, legal, então vamos executá-lo e mais 20 uma vez a expectativa para o que vai sair desta seção é que teremos quatro colunas,20 mas não teremos o ti da coluna mais e em vez da coluna de tipo, teremos uma coluna de incorporação de descrição com todas as nossas descrições incorporadas como vetores, então vamos executá-la e ver se funciona perfeitamente, então vamos inserir isso de forma incrível, então, como você pode ver, temos um quadro de dados com as colunas de que precisamos, que são preço de descrição da marca em nós incorporação de boneca e descrição, que é nossa coluna de descrição como incorporações vetorizadas, então nosso próximo passo é realmente salvar esses dados dentro do mongodb Atlas para que possamos usar a pesquisa vetorial do mongodb Atlas quando estivermos prontos para fazê-lo e podemos fazer isso muito facilmente importando nossos dados para o Atlas usando a Biblioteca de Setas P [ __ ], então a coisa muito legal sobre a seta P [ __ ] é que ela realmente usa a seta aachi atrás as cenas, então, para mover nossos dados para o Atlas, precisamos converter o quadro de dados do nosso Panda em uma tabela de setas e a melhor parte das tabelas de setas é que elas permitem colunas aninhadas, então, se tivéssemos um conjunto de dados mais complicado, não precisaríamos pular muitos aros para acomodar o aninhamento, então vamos em frente e começar, nosso primeiro passo, é claro, é realmente instale tudo o que precisamos, vamos apenas usar uma instrução pip e instalar P [ __ ] P [ __ ] seta e depois Pi Seta perfeita e então essas são importações, então de p manga vamos importar cliente de mangá de Pongo a. API, vamos importar um recurso de gravação que vai gravar nosso quadro de dados no Atlas, e alguma mágica vai acontecer e cada linha do nosso arquivo CSV será realmente transformada em um documento, então você verá isso em um segundo e, em seguida, vamos importar o Pi Arrow spa e antes que eu esqueça, deixe-me executar isso na verdade e certifique-se de que tudo é instalado, então às vezes isso acontece quando temos que reiniciar o tempo de execução, você e isso tem acontecido algumas vezes, mas isso não é um problema, basta clicar em reiniciar a sessão e, em seguida, podemos simplesmente passar e realmente executar novamente tudo o que já executamos, eu gosto de fazer tudo apenas para ter certeza, então, uma vez que isso seja bem-sucedido, possamos realmente classificar nossos itens pelos mais caros para menos caro e isso é apenas uma preferência pessoal e isso é apenas para se divertir para este tutorial, especialmente quando compras de luxo, às vezes é divertido ver os itens mais extravagantes, então é nisso que vou pesquisar com base e, em seguida, também uma parte muito importante é, por favor, certifique-se de que você tenha sua força de conexão de mangá DB, mostrarei como pegar isso em um segundo, se você não tiver feito isso antes, mas mais uma vez você sabe se está fazendo isso em produção, ou precisa de mais segurança, mantenha esses valores secretos em um arquivo n para o bem do tutorial e apenas para fins de simplicidade, estou usando get pass para inserir minhas variáveis e meus segredos, então vamos primeiro classificar pelos itens mais caros para o menos caro então DF é igual a tf. classificar valores e queremos classificar por, então é bom que já tenhamos nosso preço como uma coluna e então queremos fazer ascendente e isso vai ser falso, então se eu quiser que seja o contrário, é claro que seria crescente verdadeiro e então é para onde nossa string de conexão vai e podemos simplesmente escrever nosso cliente M go cliente e então string de conexão perfeita e, mais uma vez, você pode realmente nomear seu banco de dados e coleção o que quiser, porque criamos o cluster, mas não criamos o banco de dados na coleção, então quando escrevemos em nosso quadro de dados usando o Pongo Arrow no Atlas, é quando nosso banco de dados e nossa coleção serão criados para que possamos nomeá-lo como quisermos, vou apenas fazer banco de dados igual ao cliente e isso vai ser NP uh ordem e então eu quero que minha coleção seja igual a e então isso também vai ser eu vou chamá-lo de preços médios decrescentes perfeitos, então, para salvar nossos dados, primeiro precisamos converter nosso quadro de dados pandas em uma tabela de setas usando a seta pi para que possamos fazer isso apenas com a tabela de barras de pandas e então somos colocados em nosso quadro de dados bom e agora podemos usar esse pequeno direito para que possamos ir para a direita e então queremos escrever e oops coleção Tabela de setas muito boa e agora podemos simplesmente fazer uma impressão hum só para ter certeza de que funcionou Vou apenas dizer que foi bem-sucedido e então também vou mostrar se for bem-sucedido qual cruza os dedos é que eu vou mostrar como é no Atlas com todos os nossos documentos, então vamos executar isso e depois ver o que acontece, oh sim, então primeiro vamos colocar nossa string de conexão, então vá para M para ser Atlas, clique em conectar, conecte-se em seu cluster, vá para os drivers, estamos usando python, é claro, então vou copiar isso, vou tirá-lo da tela por uma segunda entrada, minha senha correta aqui e depois copie e cole dentro do collap para que minha string de conexão tenha sido copiada e colada com minha senha dentro dela, então vamos inserir isso e foi um sucesso incrível, então vamos voltar ao nosso cluster e vamos dar uma olhada e ver se nossos documentos realmente foram carregados e, como você pode ver, nosso banco de dados foi criado, nossa coleção foi criada temos um total de documentos de perfeito porque emendamos todo o nosso conjunto de dados e, como você pode ver, cada descrição e não apenas a 100 descrição, cada item dentro de nosso banco de dados, bem, a centena que emendamos foi transformada em um documento, então temos nossa descrição incorporada, que é a parte mais importante, também temos a marca da qual temos a descrição qual é o item, temos o preço, então temos a incorporação e temos isso para, acredito, o primeiro que é incrível, então agora que temos nossos documentos incorporados no lugar, podemos realmente configurar a pesquisa vetorial do Atlas mongodi, então para começar a pesquisar 100 semanticamente, o que primeiro teremos que fazer é criar um índice de pesquisa vetorial, então eu o deixei aqui apenas por uma questão de clareza, então vou copiar isso e depois voltar ao meu cluster e ir para a pesquisa de atlas, vou descer aqui e clicar em criar índice de pesquisa, vamos usar a pesquisa vetorial Alice, é claro, então clique nela e clique em seguida A coleção em que eu quero fazer isso é, é claro nosso preço médio é coleção decrescente Vou manter o mesmo nome só porque é o padrão e é um pouco mais fácil, mas se você alterar o nome do índice, siga isso durante todo o tutorial, então deixe-me colar isso e, claro, se você se lembrar de ver as incorporações porque estamos usando IA aberta, o número de dimensões está o caminho que nós criado que queremos usar isso é a incorporação de descrição e, em seguida, a semelhança que estamos usando cosseno e o tipo, é claro, é Vetor,1536 então clique em próximo, role para baixo, crie índice de pesquisa, feche e depois vamos esperar que isso fique verde e nos diga que está ativo, perfeito, então, uma vez ativo, podemos realmente voltar ao nosso arquivo colop do Google e primeiro o que precisamos para fazer a pesquisa semanticamente, nós precisamos primeiro incorporar nossas consultas, então muitas pessoas lutam com esse conceito, mas uma das coisas mais importantes a tirar da pesquisa vetorial é que não estamos comparando texto com vetores, queremos comparar vetores com vetores, então é claro que temos que incorporar nossas consultas também, então isso é muito simples de fazer porque já usamos nossa função de incorporação antes, então tudo o que precisamos fazer é nomeá-la como algo que estou apenas fazendo a descrição da consulta e então eu quero que isso seja, podemos fazer verão por enquanto, farei verão e inverno como minhas consultas e mostrarei a vocês quais são os resultados de ambos, então agora vamos incorporá-lo aqui, podemos fazer a consulta O vetor é igual ao mesmo função de incorporação acima porque queremos ter certeza de que estamos usando o mesmo modelo para incorporar não apenas nossas consultas, mas também nossos documentos, então descrição perfeita e agora, para a parte mais difícil ou não difícil, mas definitivamente a parte mais longa, deixarei alguma documentação abaixo sobre pipelines de agregação, se vocês não estiverem acostumados com eles, mas precisarmos usar o cifrão Operador de pesquisa vetorial e criar nosso pipeline de agregação para que possamos realmente pesquisar semanticamente nossos dados, então, para fazer isso, primeiro vamos abrir nossos colchetes assim e usar o dólar de pesquisa vetorial Pesquisa vetorial e, em seguida, podemos colocar algumas informações, então a primeira coisa que queremos fazer é definir nosso índice, então acabamos de criá-lo, então índice vetorial se você o nomeou outra coisa, é aqui que você deseja colocar isso, se você o deixou padrão da maneira que eu o mantive como índice vetorial e, em seguida, o caminho e nosso caminho, é claro, será apenas a incorporação de descrição e, em seguida, temos nosso vetor de consulta, então este é o vetor de consulta de cima, então eu só tinha linhas salvas corretamente, então Vamos apenas fazer um número de candidatos, teremos todo o tamanho da nossa amostra, mas depois vamos limitá-lo a cinco, então agora podemos começar nosso segundo estágio, então vamos abri-lo e podemos 100 usar nossos projetos, porque isso está apenas dizendo como o que queremos mostrar, então, antes de mais nada, não precisamos mostrar nosso ID e deixe-me realmente voltar ao nosso cluster e mostrar você meio que o que queremos dizer com este estágio, então isso está apenas dizendo que, de todos esses campos listados, o que queremos ver certo, então, idealmente, eu não quero ver o ID, eu não necessariamente me importo com o ID, mas eu quero ver a marca, eu quero ver a descrição, eu quero ver o preço, eu não preciso da descrição incorporada, então eu sou não vou incluir isso, mas vamos incluir mais uma coisa chamada pontuação para que o ID possamos tê-lo igual a zero e, em seguida, a marca eu quero um e a descrição eu quero um e o preço eu também quero um e pontuar para que com a pontuação possamos abrir isso e podemos fazer isso uh oops Pontuação de pesquisa vetorial, então vamos apenas dizer a pontuação de pesquisa vetorial e Vou apontar isso quando o executarmos, então agora a próxima etapa e a última etapa são apenas classificá-lo por preço para que possamos classificar e precificar o USD e, mais uma vez, queremos classificar pelo mais caro, então vamos fazer apenas negativo incrível, então vamos verificar se tudo está bem antes de continuarmos, acredito que parece bom, então vamos terminar as coisas fora forte, então queremos executá-lo em nosso banco de dados e em nosso coleção certa, ok, então vamos fazer o banco de dados é igual 1 ao cliente e, em seguida, ter aor líquido oops bom e, em seguida, a coleção que estamos executando isso no preço médio está diminuindo e, em seguida, vamos fazer os resultados é igual aos agregados de coleção e temos nosso pipeline chamado pipeline perfeito e, em seguida, vamos imprimir algo certo, queremos ver os resultados, então o resultado é apenas imprimir roupas perfeitas, então vamos executar isso e veja o que acontece legal, então lembre-se de que a consulta é verão e quando estamos pesquisando semanticamente com base em nossos itens de luxo dentro de nosso banco de dados, estamos vendo cinco respostas que nos dizem que eles estão relacionados ao verão e estão indo do mais caro para o menos caro ainda muito caro e essa é a pontuação de pesquisa vetorial aqui muito legal, então como você pode ver também um dos aspectos legais é quando procuramos o verão, estamos vendo os meses de verão aparecerem também em agosto e coisas como camisas, vestidos midi, mini vestidos, vestidos maxi, halter net tops, todas as coisas que você usaria no verão, então vamos mudar a descrição para inverno e ver o que acontece perfeito, incrível, então todas as coisas que você usaria no inverno, coisas como jaquetas de esqui, calças largas de lã, suéteres de caxemira, moletom de caxemira e calça de treino defina mais suéteres de caxemira perfeitos, então experimente você mesmo e altere a consulta para ser o que quiser e, em seguida, veja o que acontece, então, embora este tutorial tenha sido feito usando um conjunto de dados plano, uma vez que você realmente entenda cada uma das plataformas usadas e os conceitos sinta-se à vontade para criar um raspador da web e tentar isso em dados ao vivo e este tutorial apenas fornece uma ótima visão geral do que é possível com P [ __ ] seta e mangá Tob Alice Vector search, fomos capazes de pegar um conjunto de dados, processá-lo usando pandas, gerar incorporações necessárias com IA aberta, armazenar nossa tabela aot recém-desenvolvida no mongod DB Atlas usando a seta Pongo e, em seguida, fomos capazes para consultar semanticamente no topo de nosso banco de dados para obter mais informações sobre P [ __ ] Seta, visite a documentação e para obter mais informações sobre a pesquisa do MongoDB Atlas, sinta-se à vontade para explorar o tutorial que será vinculado na caixa de descrição abaixo, se você tiver alguma dúvida ou quiser compartilhar seu trabalho, junte-se a nós na comunidade de desenvolvedores do MongoDB e deixe um comentário e curta este vídeo e deixe-me saber o que você acho muito obrigado [Aplausos]