Os modelos modernos de aprendizado de máquina são muito complexos e exigem grandes quantidades de conjuntos de dados de treinamento rotulados para aprender. Snorkel surgiu no laboratório de Inteligência Artificial da Stanford com a constatação de que rotular manualmente os dados é muito caro e muitas vezes inviável. O Snorkel nos permite rotular dados de treinamento de forma programática por meio da criação de funções de rotulagem. Ele emprega técnicas de aprendizado supervisionado para avaliar a precisão e as correlações das funções de rotulagem e, em seguida, determina seus pesos novamente e combina seus rótulos de saída, resultando em rótulos de treinamento de alta qualidade. O time que criou o Snorkel lançou posteriormente uma plataforma comercial chamada Snorkel Flow. Embora o Snorkel não seja mais ativamente desenvolvido, ele ainda é significativo por suas ideias sobre o uso de métodos pouco supervisionados para rotular dados.