Upgrade to Pro — share decks privately, control downloads, hide ads and more …

A importância da raspagem de dados na era pós-G...

A importância da raspagem de dados na era pós-GPT via Devconf(Opensanca)

Fernando Tadao Ito apresentou uma palestra fantástica no Devconf 2023, sobre Raspagem de Dados, segue a sinopse:

Obter dados textuais de qualidade é essencial para o treinamento de modelos de Inteligência Artificial, e a maior fonte deste tipo de informação está na Internet. Nesta palestra, discutiremos o papel importante da raspagem de dados dentro de um projeto de IA, juntamente com um exemplo prático de como facilitar esse processo usando a Zyte API em conjunto com o ChatGPT.

Opensanca

May 27, 2023
Tweet

More Decks by Opensanca

Other Decks in Programming

Transcript

  1. DISCLAIMER: Sejam Bons! - The data scraper acts as a

    good citizen of the web, and does not seek to overburden the targeted website; - The information copied was publicly available and not behind a password authentication barrier; - The information copied was primarily factual in nature, and the taking did not infringe on the rights — including copyrights — of another; and - The information was used to create a transformative product and was not used to steal market share from the target website by luring away users or creating a substantially similar product.
  2. 01: Mas o que é uma LLM? Agenda 02: Raspagem

    de dados 03: Aplicando Zyte API & OpenAI 04: Q&A
  3. Language Model (LM) - Distribuição de probabilidade sobre uma sequência

    de palavras. - “A DevConf é uma X” - X = conferência (99%) - X = maravilha (78%) - X = fruta (0.02%) - Word2Vec, GloVe, Transformers… https://what-if.xkcd.com/34/
  4. Large Language Model (LLM) - Modelos de linguagem com bilhões

    de parâmetros. - GPT-1: 117M - GPT-2: 1.5B - ChatGPT (OpenAI): 20B - LLaMA (Meta): 65B - GPT-3: 175B - PaLM (Google): 540B - GPT-4: 170T?
  5. Large Language Model (LLM) - Habilidades surgem com quantidade de

    dados de treino e de parâmetros (emergent features). https://ai.googleblog.com/2022/04/pathways-language-model-palm-scaling-to.html
  6. Large Language Model (LLM) - Podem ser usados para diversos

    fins: - Sumarização; - Tradução; - Classificação; - Diálogo! - Mecânica de prompts se popularizou com o ChatGPT.
  7. Large Language Model (LLM) - Treinamentos utilizam bases de dados

    descomunais. - Common Crawl - OpenWebText2 - A maior fonte de dados é a Internet!
  8. Fine-tuning - LLMs pré-treinadas são poderosas… Mas a sua customização

    é que as faz brilhar. - Exemplo: classificador de spam por fine-tune do modelo ada, disponibilizado pela OpenAI. https://predictivehacks.com/how-to-fine-tune-an-nlp-classification-model-with-openai/
  9. Raspagem de Dados - Interpretação e estruturação de páginas HTML

    para extração de items. - curl/wget - requests - Beautiful Soup - Selenium - Scrapy! https://medium.com/@bhativijay17/develop-your-first-web-crawler-in-python-scrapy-b029d5cb5c6d
  10. Aquisição de Dados - A etapa de aquisição de dados

    é a mais subestimada. - Manutenção de Spiders - Infraestrutura - Banimentos - Proxies - Equipe - Contabilizar complexidade e preço não é trivial. Scraping Framework Increased Complexity Proxy Browser Automation Anti Ban Measures Cloud
  11. Focar em Aplicações - A Zyte tem diversas soluções para

    encurtar ainda mais o caminho até um MVP! - Scrapy Cloud - AutoExtract - Zyte API! - Vamos ver como utilizar na prática a Zyte API, uma solução unificada para desbloquear seus Crawlers!
  12. Crawler de Reviews: Terabyte Shop - Criar projeto Scrapy -

    scrapy startproject terabyteshop - cd terabyteshop - scrapy genspider terabyteshop_reviews terabyteshop.com.br
  13. 1. Página de produto 2. Pega Reviews iniciais 3. Itera

    sobre API interna para não sobrecarregar o site
  14. - Crawler não funciona! - Erro 403 na página de

    produto: FORBIDDEN. - Sem página de produto, sem resto do crawl.
  15. - Ligamos a Zyte API! - Não é necessário mudar

    o crawler, só adicionar os middlewares necessários e colocar sua própria chave da API.
  16. Usando a API da OpenAI - Objetivo é sumarizar reviews.

    - Criamos um prompt para que um modelo pré-treinado da OpenAI faça isso pra gente! - Aja como um sumarizador textual, resumindo reviews em uma lista de palavras-chave classificadas como positivas ou negativas. Evite adjetivos que não possuem significado por si próprios, como "bom" ou "ótimo". Analise os seguintes reviews, ordenados em uma lista numerada de acordo com sua data de postagem: - 1: Chegou bem rápido, e ela vale mto a pena comprar, bem rápida e fria. - …
  17. Usando a API da OpenAI - Talvez seja melhor fazer

    o modelo gerar texto ao invés de palavras-chave… - Criamos outro prompt para que um modelo pré-treinado da OpenAI faça isso pra gente! - Aja como um sumarizador de texto, resumindo as próximas avaliações de produto em uma única avaliação, delineando prós e contras. Analise os seguintes reviews sobre o produto ordenados em uma lista numerada de acordo com sua data de postagem: - 1: Chegou bem rápido, e ela vale mto a pena comprar, bem rápida e fria. - …
  18. Recursos - Documentação da API: https://docs.zyte.com/zyte-api/get-started.html - Blog Técnico: https://www.zyte.com/blog/

    - Webinars (grátis!): https://www.zyte.com/webinars/ - Facilite sua infraestrutura de Spiders na nuvem: https://www.zyte.com/scrapy-cloud/ - Score máximo em testes no Web Scraping Club! https://substack.thewebscraping.club/p/hands-on-2-testin g-the-new-zyte-api