import{s as Me,n as Ie,o as Je}from"../chunks/scheduler.37c15a92.js";import{S as Re,i as De,g as Z,s,r as n,m as we,A as Ge,h as k,f as o,c as r,j as Ce,u as m,n as Ue,x as _e,k as ye,y as Ee,a as t,v as i,d,t as u,w as c}from"../chunks/index.2bf4358c.js";import{C as Te}from"../chunks/CodeBlock.4e987730.js";import{C as Qe}from"../chunks/CourseFloatingBanner.6add7356.js";import{Q as p}from"../chunks/Question.668688bc.js";import{H as l,E as ze}from"../chunks/getInferenceSnippets.80a69898.js";function Pe(he){let f,F,H,L,$,B,g,Y,q,be="Antes de prosseguir, vamos testar o que você aprendeu neste capítulo.",X,x,V,v,W,h,O,b,je="Qual dos seguintes comandos produzirá uma amostra aleatória de 50 elementos do <code>conjunto de dados</code>?",K,j,ee,w,ae,C,oe,U,te,_,se,y,re,T,ne,M,me,I,ie,J,de,R,ue,D,ce,G,pe,E,le,Q,fe,z,$e,P,ge,A,qe,N,xe,S,ve;return $=new l({props:{title:"Questionário de fim de capítulo",local:"questionário-de-fim-de-capítulo",headingTag:"h1"}}),g=new Qe({props:{chapter:5,classNames:"absolute z-10 right-0 top-0"}}),x=new l({props:{title:"1. A função load_dataset() em 🤗 Datasets permite carregar um dataset de qual dos seguintes locais?",local:"1-a-função-loaddataset-em--datasets-permite-carregar-um-dataset-de-qual-dos-seguintes-locais",headingTag:"h3"}}),v=new p({props:{choices:[{text:"Localmente, por exemplo no seu laptop",explain:"Correto! Você pode passar os caminhos dos arquivos locais para o argumento <code>data_files</code> de <code>load_dataset()</code> para carregar conjuntos de dados localmente.",correct:!0},{text:"Do Hugging Face Hub",explain:"Correto! Você pode carregar conjuntos de dados no Hub fornecendo o ID do conjunto de dados, por exemplo, <code>load_dataset('emotion')</code>.",correct:!0},{text:"De um servidor remoto",explain:"Correto! Você pode passar URLs para o argumento <code>data_files</code> de <code>load_dataset()</code> para carregar arquivos remotos.",correct:!0}]}}),h=new Te({props:{code:"ZnJvbSUyMGRhdGFzZXRzJTIwaW1wb3J0JTIwbG9hZF9kYXRhc2V0JTBBJTBBZGF0YXNldCUyMCUzRCUyMGxvYWRfZGF0YXNldCglMjJnbHVlJTIyJTJDJTIwJTIybXJwYyUyMiUyQyUyMHNwbGl0JTNEJTIydHJhaW4lMjIp",highlighted:`<span class="hljs-keyword">from</span> datasets <span class="hljs-keyword">import</span> load_dataset

dataset = load_dataset(<span class="hljs-string">&quot;glue&quot;</span>, <span class="hljs-string">&quot;mrpc&quot;</span>, split=<span class="hljs-string">&quot;train&quot;</span>)`,wrap:!1}}),j=new p({props:{choices:[{text:"<code>dataset.sample(50)</code>",explain:"Isso está incorreto -- não há método <code>Dataset.sample()</code>."},{text:"<code>dataset.shuffle().select(range(50))</code>",explain:"Correto! Como você viu neste capítulo, você primeiro embaralha o conjunto de dados e depois seleciona as amostras dele.",correct:!0},{text:"<code>dataset.select(range(50)).shuffle()</code>",explain:"Isso está incorreto - embora o código seja executado, ele embaralha apenas os primeiros 50 elementos do conjunto de dados."}]}}),w=new l({props:{title:"3. Suponha que você tenha um conjunto de dados sobre animais domésticos chamado pets_dataset , que tem uma coluna name que denota o nome de cada animal. Qual das seguintes abordagens permitiria filtrar o conjunto de dados para todos os animais de estimação cujos nomes começam com a letra “L”?",local:"3-suponha-que-você-tenha-um-conjunto-de-dados-sobre-animais-domésticos-chamado-petsdataset--que-tem-uma-coluna-name-que-denota-o-nome-de-cada-animal-qual-das-seguintes-abordagens-permitiria-filtrar-o-conjunto-de-dados-para-todos-os-animais-de-estimação-cujos-nomes-começam-com-a-letra-l",headingTag:"h3"}}),C=new p({props:{choices:[{text:"<code>pets_dataset.filter(lambda x : x['name'].startswith('L'))</code>",explain:"Correto! Usar uma função lambda do Python para esses filtros rápidos é uma ótima ideia. Você consegue pensar em outra solução?",correct:!0},{text:"<code>pets_dataset.filter(lambda x['name'].startswith('L'))</code>",explain:"Isso está incorreto -- uma função lambda assume a forma geral <code>lambda *arguments* : *expression*</code>, então você precisa fornecer argumentos neste caso."},{text:"Criar uma função assim <code>def filter_names(x): return x['name'].startswith('L')</code> e executa-la <code>pets_dataset.filter(filter_names)</code>.",explain:"Correto! Assim como com <code>Dataset.map()</code>, você pode passar funções explícitas para <code>Dataset.filter()</code>. Isso é útil quando você tem alguma lógica complexa que não é adequado para uma função lambda curta. Qual das outras soluções funcionaria?",correct:!0}]}}),U=new l({props:{title:"4. O que é mapeamento de memória?",local:"4-o-que-é-mapeamento-de-memória",headingTag:"h3"}}),_=new p({props:{choices:[{text:"Um mapeamento entre CPU e GPU RAM",explain:"Não é isso - tente novamente!"},{text:"Um mapeamento entre RAM e armazenamento do sistema de arquivos",explain:"Correto! Os 🤗 Datasets tratam cada conjunto de dados como um arquivo mapeado na memória. Isso permite que a biblioteca acesse e opere em elementos do conjunto de dados sem precisar carregá-lo totalmente na memória.",correct:!0},{text:"Um mapeamento entre dois arquivos no cache 🤗 Datasets",explain:"Isto não está correto - tente novamente!"}]}}),y=new l({props:{title:"5. Quais dos seguintes são os principais benefícios do mapeamento de memória?",local:"5-quais-dos-seguintes-são-os-principais-benefícios-do-mapeamento-de-memória",headingTag:"h3"}}),T=new p({props:{choices:[{text:"Acessar arquivos mapeados na memória é mais rápido do que ler ou gravar no disco.",explain:"Correto! Isso permite que 🤗 Datasets sejam extremamente rápidos. Mas esse não é o único benefício.",correct:!0},{text:"As aplicações podem acessar segmentos de dados em um arquivo extremamente grande sem precisar ler o arquivo inteiro na RAM primeiro.",explain:"Correto! Isso permite que 🤗 Datasets carregue conjuntos de dados de vários gigabytes em seu laptop sem explodir sua CPU. Que outra vantagem o mapeamento de memória oferece?",correct:!0},{text:"Consome menos energia, então sua bateria dura mais.",explain:"Isto não está correto - tente novamente!"}]}}),M=new l({props:{title:"6. Por que o código a seguir falha?",local:"6-por-que-o-código-a-seguir-falha",headingTag:"h3"}}),I=new Te({props:{code:"ZnJvbSUyMGRhdGFzZXRzJTIwaW1wb3J0JTIwbG9hZF9kYXRhc2V0JTBBJTBBZGF0YXNldCUyMCUzRCUyMGxvYWRfZGF0YXNldCglMjJhbGxvY2luZSUyMiUyQyUyMHN0cmVhbWluZyUzRFRydWUlMkMlMjBzcGxpdCUzRCUyMnRyYWluJTIyKSUwQWRhdGFzZXQlNUIwJTVE",highlighted:`<span class="hljs-keyword">from</span> datasets <span class="hljs-keyword">import</span> load_dataset

dataset = load_dataset(<span class="hljs-string">&quot;allocine&quot;</span>, streaming=<span class="hljs-literal">True</span>, split=<span class="hljs-string">&quot;train&quot;</span>)
dataset[<span class="hljs-number">0</span>]`,wrap:!1}}),J=new p({props:{choices:[{text:"Ele tenta fazer stream de um conjunto de dados grande demais para caber na RAM.",explain:"Isso não está correto - conjuntos de dados de streaming são descompactados em tempo real e você pode processar conjuntos de dados de terabytes com muito pouca RAM!"},{text:"Ele tenta acessar um <code>IterableDataset</code>.",explain:"Correto! Um <code>IterableDataset</code> é um gerador, não um contêiner, então você deve acessar seus elementos usando <code>next(iter(dataset))</code>.",correct:!0},{text:"O conjunto de dados <code>allocine</code> não tem uma divisão <code>train</code>.",explain:"Isso está incorreto - confira o cartão de conjunto de dados [<code>allocine</code>](https://huggingface.co/datasets/allocine) no Hub para ver quais divisões ele contém."}]}}),R=new l({props:{title:"7. Quais dos seguintes são os principais benefícios de criar um cartão de conjunto de dados?",local:"7-quais-dos-seguintes-são-os-principais-benefícios-de-criar-um-cartão-de-conjunto-de-dados",headingTag:"h3"}}),D=new p({props:{choices:[{text:"Ele fornece informações sobre o uso pretendido e as tarefas suportadas do conjunto de dados para que outras pessoas na comunidade possam tomar uma decisão informada sobre o uso.",explain:"Correto! Conjuntos de dados não documentados podem ser usados para treinar modelos que podem não refletir as intenções dos criadores do conjunto de dados ou podem produzir modelos cujo status legal é obscuro se forem treinados em dados que violam restrições de privacidade ou licenciamento. Este não é o único benefício, no entanto!",correct:!0},{text:"Ajuda a chamar a atenção para os preconceitos que estão presentes em um corpus.",explain:"Correto! Quase todos os conjuntos de dados têm algum tipo de viés, o que pode produzir consequências negativas em contrapartida. Estar ciente disso ajuda os criadores de modelos a entender como lidar com os vieses. Em que mais os cartões de conjunto de dados ajudam?",correct:!0},{text:"Melhora as chances de que outras pessoas da comunidade usem meu conjunto de dados.",explain:"Correto! Um cartão de conjunto de dados bem escrito tenderá a aumentar o uso de seu precioso conjunto de dados. Que outros benefícios ele oferece?",correct:!0}]}}),G=new l({props:{title:"8. O que é pesquisa semântica?",local:"8-o-que-é-pesquisa-semântica",headingTag:"h3"}}),E=new p({props:{choices:[{text:"Uma maneira de pesquisar correspondências exatas entre as palavras em uma consulta e os documentos em um corpus",explain:"Isso está incorreto - esse tipo de pesquisa é chamado de *pesquisa léxica* e é o que você normalmente vê nos mecanismos de pesquisa tradicionais."},{text:"Uma maneira de pesquisar documentos correspondentes entendendo o significado contextual de uma consulta",explain:"Correto! A pesquisa semântica usa vetores incorporados para representar consultas e documentos e usa uma métrica de similaridade para medir a quantidade de sobreposição entre eles. De que outra forma você poderia descrevê-la?",correct:!0},{text:"Uma maneira de melhorar a precisão da pesquisa",explain:"Correto! Os mecanismos de pesquisa semântica podem capturar a intenção de uma consulta muito melhor do que a correspondência de palavras-chave e normalmente recuperam documentos com maior precisão. Mas essa não é a única resposta certa - o que mais a pesquisa semântica oferece?",correct:!0}]}}),Q=new l({props:{title:"9. Para pesquisa semântica assimétrica, você geralmente tem:",local:"9-para-pesquisa-semântica-assimétrica-você-geralmente-tem",headingTag:"h3"}}),z=new p({props:{choices:[{text:"Uma consulta curta e um parágrafo mais longo que responde à consulta",explain:"Correto!",correct:!0},{text:"Consultas e parágrafos com aproximadamente o mesmo tamanho",explain:"Este é realmente um exemplo de pesquisa semântica simétrica - tente novamente!"},{text:"Uma consulta longa e um parágrafo mais curto que responde à consulta",explain:"Isso está incorreto - tente novamente!"}]}}),P=new l({props:{title:"10. Posso usar 🤗 Datasets para carregar dados para uso em outros domínios, como processamento de fala (audios)?",local:"10-posso-usar--datasets-para-carregar-dados-para-uso-em-outros-domínios-como-processamento-de-fala-audios",headingTag:"h3"}}),A=new p({props:{choices:[{text:"Não",explain:"Isso está incorreto -- 🤗 Datasets atualmente suporta dados tabulares, áudio e de visão computacional. Confira o <a href='https://huggingface.co/datasets/mnist'>conjunto de dados MNIST</a> no Hub para um exemplo de visão computacional."},{text:"Sim",explain:"Correto! Confira os desenvolvimentos interessantes com fala e visão na biblioteca 🤗 Transformers para ver como 🤗 Datasets é usado nesses domínios.",correct:!0}]}}),N=new ze({props:{source:"https://github.com/huggingface/course/blob/main/chapters/pt/chapter5/8.mdx"}}),{c(){f=Z("meta"),F=s(),H=Z("p"),L=s(),n($.$$.fragment),B=s(),n(g.$$.fragment),Y=we(`
Este capítulo cobriu muita coisa! Não se preocupe se você não entendeu todos os detalhes; os próximos capítulos o ajudarão a entender como as coisas funcionam.
`),q=Z("p"),q.textContent=be,X=s(),n(x.$$.fragment),V=s(),n(v.$$.fragment),W=we(`
### 2. Suponha que você carregue uma das tarefas GLUE da seguinte forma:

	`),n(h.$$.fragment),O=s(),b=Z("p"),b.innerHTML=je,K=s(),n(j.$$.fragment),ee=s(),n(w.$$.fragment),ae=s(),n(C.$$.fragment),oe=s(),n(U.$$.fragment),te=s(),n(_.$$.fragment),se=s(),n(y.$$.fragment),re=s(),n(T.$$.fragment),ne=s(),n(M.$$.fragment),me=s(),n(I.$$.fragment),ie=s(),n(J.$$.fragment),de=s(),n(R.$$.fragment),ue=s(),n(D.$$.fragment),ce=s(),n(G.$$.fragment),pe=s(),n(E.$$.fragment),le=s(),n(Q.$$.fragment),fe=s(),n(z.$$.fragment),$e=s(),n(P.$$.fragment),ge=s(),n(A.$$.fragment),qe=s(),n(N.$$.fragment),xe=s(),S=Z("p"),this.h()},l(e){const a=Ge("svelte-u9bgzb",document.head);f=k(a,"META",{name:!0,content:!0}),a.forEach(o),F=r(e),H=k(e,"P",{}),Ce(H).forEach(o),L=r(e),m($.$$.fragment,e),B=r(e),m(g.$$.fragment,e),Y=Ue(e,`
Este capítulo cobriu muita coisa! Não se preocupe se você não entendeu todos os detalhes; os próximos capítulos o ajudarão a entender como as coisas funcionam.
`),q=k(e,"P",{"data-svelte-h":!0}),_e(q)!=="svelte-oaa40k"&&(q.textContent=be),X=r(e),m(x.$$.fragment,e),V=r(e),m(v.$$.fragment,e),W=Ue(e,`
### 2. Suponha que você carregue uma das tarefas GLUE da seguinte forma:

	`),m(h.$$.fragment,e),O=r(e),b=k(e,"P",{"data-svelte-h":!0}),_e(b)!=="svelte-e8zy6f"&&(b.innerHTML=je),K=r(e),m(j.$$.fragment,e),ee=r(e),m(w.$$.fragment,e),ae=r(e),m(C.$$.fragment,e),oe=r(e),m(U.$$.fragment,e),te=r(e),m(_.$$.fragment,e),se=r(e),m(y.$$.fragment,e),re=r(e),m(T.$$.fragment,e),ne=r(e),m(M.$$.fragment,e),me=r(e),m(I.$$.fragment,e),ie=r(e),m(J.$$.fragment,e),de=r(e),m(R.$$.fragment,e),ue=r(e),m(D.$$.fragment,e),ce=r(e),m(G.$$.fragment,e),pe=r(e),m(E.$$.fragment,e),le=r(e),m(Q.$$.fragment,e),fe=r(e),m(z.$$.fragment,e),$e=r(e),m(P.$$.fragment,e),ge=r(e),m(A.$$.fragment,e),qe=r(e),m(N.$$.fragment,e),xe=r(e),S=k(e,"P",{}),Ce(S).forEach(o),this.h()},h(){ye(f,"name","hf:doc:metadata"),ye(f,"content",Ae)},m(e,a){Ee(document.head,f),t(e,F,a),t(e,H,a),t(e,L,a),i($,e,a),t(e,B,a),i(g,e,a),t(e,Y,a),t(e,q,a),t(e,X,a),i(x,e,a),t(e,V,a),i(v,e,a),t(e,W,a),i(h,e,a),t(e,O,a),t(e,b,a),t(e,K,a),i(j,e,a),t(e,ee,a),i(w,e,a),t(e,ae,a),i(C,e,a),t(e,oe,a),i(U,e,a),t(e,te,a),i(_,e,a),t(e,se,a),i(y,e,a),t(e,re,a),i(T,e,a),t(e,ne,a),i(M,e,a),t(e,me,a),i(I,e,a),t(e,ie,a),i(J,e,a),t(e,de,a),i(R,e,a),t(e,ue,a),i(D,e,a),t(e,ce,a),i(G,e,a),t(e,pe,a),i(E,e,a),t(e,le,a),i(Q,e,a),t(e,fe,a),i(z,e,a),t(e,$e,a),i(P,e,a),t(e,ge,a),i(A,e,a),t(e,qe,a),i(N,e,a),t(e,xe,a),t(e,S,a),ve=!0},p:Ie,i(e){ve||(d($.$$.fragment,e),d(g.$$.fragment,e),d(x.$$.fragment,e),d(v.$$.fragment,e),d(h.$$.fragment,e),d(j.$$.fragment,e),d(w.$$.fragment,e),d(C.$$.fragment,e),d(U.$$.fragment,e),d(_.$$.fragment,e),d(y.$$.fragment,e),d(T.$$.fragment,e),d(M.$$.fragment,e),d(I.$$.fragment,e),d(J.$$.fragment,e),d(R.$$.fragment,e),d(D.$$.fragment,e),d(G.$$.fragment,e),d(E.$$.fragment,e),d(Q.$$.fragment,e),d(z.$$.fragment,e),d(P.$$.fragment,e),d(A.$$.fragment,e),d(N.$$.fragment,e),ve=!0)},o(e){u($.$$.fragment,e),u(g.$$.fragment,e),u(x.$$.fragment,e),u(v.$$.fragment,e),u(h.$$.fragment,e),u(j.$$.fragment,e),u(w.$$.fragment,e),u(C.$$.fragment,e),u(U.$$.fragment,e),u(_.$$.fragment,e),u(y.$$.fragment,e),u(T.$$.fragment,e),u(M.$$.fragment,e),u(I.$$.fragment,e),u(J.$$.fragment,e),u(R.$$.fragment,e),u(D.$$.fragment,e),u(G.$$.fragment,e),u(E.$$.fragment,e),u(Q.$$.fragment,e),u(z.$$.fragment,e),u(P.$$.fragment,e),u(A.$$.fragment,e),u(N.$$.fragment,e),ve=!1},d(e){e&&(o(F),o(H),o(L),o(B),o(Y),o(q),o(X),o(V),o(W),o(O),o(b),o(K),o(ee),o(ae),o(oe),o(te),o(se),o(re),o(ne),o(me),o(ie),o(de),o(ue),o(ce),o(pe),o(le),o(fe),o($e),o(ge),o(qe),o(xe),o(S)),o(f),c($,e),c(g,e),c(x,e),c(v,e),c(h,e),c(j,e),c(w,e),c(C,e),c(U,e),c(_,e),c(y,e),c(T,e),c(M,e),c(I,e),c(J,e),c(R,e),c(D,e),c(G,e),c(E,e),c(Q,e),c(z,e),c(P,e),c(A,e),c(N,e)}}}const Ae='{"title":"Questionário de fim de capítulo","local":"questionário-de-fim-de-capítulo","sections":[{"title":"1. A função load_dataset() em 🤗 Datasets permite carregar um dataset de qual dos seguintes locais?","local":"1-a-função-loaddataset-em--datasets-permite-carregar-um-dataset-de-qual-dos-seguintes-locais","sections":[],"depth":3},{"title":"3. Suponha que você tenha um conjunto de dados sobre animais domésticos chamado pets_dataset , que tem uma coluna name que denota o nome de cada animal. Qual das seguintes abordagens permitiria filtrar o conjunto de dados para todos os animais de estimação cujos nomes começam com a letra “L”?","local":"3-suponha-que-você-tenha-um-conjunto-de-dados-sobre-animais-domésticos-chamado-petsdataset--que-tem-uma-coluna-name-que-denota-o-nome-de-cada-animal-qual-das-seguintes-abordagens-permitiria-filtrar-o-conjunto-de-dados-para-todos-os-animais-de-estimação-cujos-nomes-começam-com-a-letra-l","sections":[],"depth":3},{"title":"4. O que é mapeamento de memória?","local":"4-o-que-é-mapeamento-de-memória","sections":[],"depth":3},{"title":"5. Quais dos seguintes são os principais benefícios do mapeamento de memória?","local":"5-quais-dos-seguintes-são-os-principais-benefícios-do-mapeamento-de-memória","sections":[],"depth":3},{"title":"6. Por que o código a seguir falha?","local":"6-por-que-o-código-a-seguir-falha","sections":[],"depth":3},{"title":"7. Quais dos seguintes são os principais benefícios de criar um cartão de conjunto de dados?","local":"7-quais-dos-seguintes-são-os-principais-benefícios-de-criar-um-cartão-de-conjunto-de-dados","sections":[],"depth":3},{"title":"8. O que é pesquisa semântica?","local":"8-o-que-é-pesquisa-semântica","sections":[],"depth":3},{"title":"9. Para pesquisa semântica assimétrica, você geralmente tem:","local":"9-para-pesquisa-semântica-assimétrica-você-geralmente-tem","sections":[],"depth":3},{"title":"10. Posso usar 🤗 Datasets para carregar dados para uso em outros domínios, como processamento de fala (audios)?","local":"10-posso-usar--datasets-para-carregar-dados-para-uso-em-outros-domínios-como-processamento-de-fala-audios","sections":[],"depth":3}],"depth":1}';function Ne(he){return Je(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class Be extends Re{constructor(f){super(),De(this,f,Ne,Pe,Me,{})}}export{Be as component};
