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

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

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. Raspagem de Dados em um
    mundo de LLMs

    View full-size slide

  2. Aoba!
    É o Tadao.
    Fernando Tadao Ito
    Technical Team Lead

    View full-size slide

  3. 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.

    View full-size slide

  4. 01: Mas o que é uma LLM?
    Agenda
    02: Raspagem de dados
    03: Aplicando Zyte API & OpenAI
    04: Q&A

    View full-size slide

  5. O que é um LLM?

    View full-size slide

  6. 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/

    View full-size slide

  7. https://lena-voita.github.io/nlp_course/language_modeling.html

    View full-size slide

  8. 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?

    View full-size slide

  9. 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

    View full-size slide

  10. 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.

    View full-size slide

  11. Large Language Model (LLM)
    - Treinamentos utilizam bases de
    dados descomunais.
    - Common Crawl
    - OpenWebText2
    - A maior fonte de dados é a
    Internet!

    View full-size slide

  12. 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/

    View full-size slide

  13. Raspagem de Dados

    View full-size slide

  14. 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

    View full-size slide

  15. Raspagem de Dados - Engine

    View full-size slide

  16. 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

    View full-size slide

  17. 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!

    View full-size slide

  18. Na Prática!
    Zyte API e OpenAI

    View full-size slide

  19. Crawler de Reviews: Terabyte Shop
    - Criar projeto Scrapy
    - scrapy startproject terabyteshop
    - cd terabyteshop
    - scrapy genspider terabyteshop_reviews
    terabyteshop.com.br

    View full-size slide

  20. 1. Página de
    produto
    2. Pega Reviews
    iniciais
    3. Itera sobre API
    interna para não
    sobrecarregar o
    site

    View full-size slide

  21. - Crawler não
    funciona!
    - Erro 403 na
    página de
    produto:
    FORBIDDEN.
    - Sem página de
    produto, sem
    resto do crawl.

    View full-size slide

  22. - 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.

    View full-size slide

  23. - Crawler funcionando!

    View full-size slide

  24. 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.
    - …

    View full-size slide

  25. 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.
    - …

    View full-size slide

  26. 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

    View full-size slide

  27. Meu Linkedin! Zyte API!

    View full-size slide