Para compartilhar a magia da DALL E 2 com um público amplo, precisávamos reduzir os riscos associados a modelos poderosos de geração de imagens. Para isso, colocamos diversos guarda corpos em vigor para evitar que as imagens geradas violem nossas política de conteúdo. Este post tem como foco mitigações pré-treinamento, um subconjunto dessas proteções que modificam diretamente os dados com os quais o DALL·E 2 aprende. Em particular, o DALL·E 2 é treinado em centenas de milhões de imagens legendadas da internet, e removemos e reponderamos algumas dessas imagens para alterar o que o modelo aprende.
Este post está organizado em três seções, cada uma descrevendo uma mitigação pré-treinamento diferente:
- Na primeira seção, descrevemos como filtramos imagens violentas e sexuais do conjunto de dados de treinamento do DALL·E 2. Sem essa mitigação, o modelo aprenderia a produzir imagens gráficas ou explícitas quando solicitado, e poderia até retornar tais imagens involuntariamente em resposta a solicitações aparentemente inócuas.
- Na segunda seção, descobrimos que filtrar dados de treinamento pode amplificar vieses e descrevemos nossa técnica para mitigar esse efeito. Por exemplo, sem essa mitigação, notamos que os modelos treinados com dados filtrados às vezes geravam mais imagens representando homens e menos imagens representando mulheres em comparação com modelos treinados no conjunto de dados original.
- Na seção final, nos voltamos para a questão da memorização, descobrindo que modelos como o DALL·E 2 às vezes podem reproduzir imagens nas quais foram treinados, em vez de criar imagens novas. Na prática, descobrimos que este regurgitação de imagem é causado por imagens que são replicadas muitas vezes no conjunto de dados e reduz o problema removendo imagens visualmente semelhantes a outras imagens no conjunto de dados.
Reduzindo Dados de Treinamento Gráficos e Explícitos
Como os dados de treinamento moldam os recursos de qualquer modelo aprendido, a filtragem de dados é uma ferramenta poderosa para limitar os recursos indesejáveis do modelo. Aplicamos essa abordagem a duas categorias — imagens que retratam violência gráfica e conteúdo sexual — usando classificadores para filtrar imagens nessas categorias fora do conjunto de dados antes de treinar o DALL·E 2. Treinamos esses classificadores de imagem internamente e continuamos a estudar o efeitos da filtragem do conjunto de dados em nosso modelo treinado.
Para treinar nossos classificadores de imagens, reutilizamos uma abordagem que havíamos empregado anteriormente para filtrar dados de treinamento para DESLIZAR. Os passos básicos para esta abordagem são os seguintes: primeiro, criamos uma especificação para as categorias de imagem que gostaríamos de rotular; segundo, reunimos algumas centenas de exemplos positivos e negativos para cada categoria; terceiro, usamos um procedimento de aprendizado ativo para coletar mais dados e melhorar a relação precisão/recordação; e, finalmente, executamos o classificador resultante em todo o conjunto de dados com um limite de classificação conservador para favorecer a recuperação em detrimento da precisão. Para definir esses limites, priorizamos a filtragem de todos os ruim dados sobre a saída em todos os Bom estado, com sinais de uso dados. Isso ocorre porque sempre podemos ajustar nosso modelo com mais dados posteriormente para ensinar coisas novas, mas é muito mais difícil fazer o modelo esquecer algo que já aprendeu.
Durante a fase de aprendizado ativo, melhoramos iterativamente nossos classificadores reunindo rótulos humanos para imagens potencialmente difíceis ou mal classificadas. Notavelmente, usamos duas técnicas de aprendizado ativo para escolher imagens de nosso conjunto de dados (que contém centenas de milhões de imagens não rotuladas) para apresentar aos humanos para rotulagem. Primeiro, para reduzir a taxa de falsos positivos do nosso classificador (ou seja, a frequência com que ele classifica erroneamente uma imagem benigna como violenta ou sexual), atribuímos rótulos humanos a imagens que o modelo atual classificou como positivas. Para que esta etapa funcione bem, ajustamos nosso limite de classificação para quase 100% de recuperação, mas uma alta taxa de falsos positivos; dessa forma, nossos rotuladores estavam rotulando principalmente casos verdadeiramente negativos. Embora essa técnica ajude a reduzir falsos positivos e reduza a necessidade de rotuladores examinarem imagens potencialmente prejudiciais, ela não ajuda a encontrar mais casos positivos que o modelo está faltando no momento.
Para reduzir a taxa de falsos negativos do nosso classificador, empregamos uma segunda técnica de aprendizado ativo: busca pelo vizinho mais próximo. Em particular, executamos várias validações cruzadas para encontrar amostras positivas em nosso conjunto de dados rotulado atual que o modelo tendia a classificar erroneamente como negativo (para fazer isso, treinamos literalmente centenas de versões do classificador com diferentes divisões de validação de trem). Em seguida, escaneamos nossa grande coleção de imagens não rotuladas para os vizinhos mais próximos dessas amostras em um espaço de características perceptivas e atribuímos rótulos humanos às imagens descobertas. Graças à nossa infraestrutura de computação, era trivial escalar o treinamento do classificador e a pesquisa do vizinho mais próximo para muitas GPUs, permitindo que a etapa de aprendizado ativo ocorresse em vários minutos, em vez de horas ou dias.
Para verificar a eficácia de nossos filtros de dados, treinamos dois modelos GLIDE com os mesmos hiperparâmetros: um em dados não filtrados e outro no conjunto de dados após a filtragem. Chamamos o primeiro modelo de modelo não filtrado, e este último como modelo filtrado. Como esperado, descobrimos que o modelo não filtrado geralmente produz conteúdo menos explícito ou gráfico em resposta a solicitações desse tipo de conteúdo. No entanto, também encontramos um efeito colateral inesperado da filtragem de dados: ela criou ou ampliou os vieses do modelo em relação a determinados dados demográficos.
Corrigindo o viés introduzido pelos filtros de dados
Modelos generativos tentam combinar a distribuição de seus dados de treinamento, incluindo quaisquer vieses neles contidos. Como resultado, filtrar os dados de treinamento tem o potencial de criar ou amplificar vieses em modelos downstream. Em geral, corrigir vieses no conjunto de dados original é uma tarefa sociotécnica difícil que continuamos a estudar e está além do escopo deste post. O problema que abordamos aqui é a amplificação de vieses causados especificamente pela própria filtragem de dados. Com nossa abordagem, visamos evitar que o modelo filtrado seja mais tendencioso do que o modelo não filtrado, reduzindo essencialmente a mudança de distribuição causada pela filtragem de dados.
Como um exemplo concreto de amplificação de viés devido à filtragem, considere o prompt “a ceo”. Quando nosso modelo não filtrado gerou imagens para esse prompt, ele tendeu a produzir mais imagens de homens do que de mulheres, e esperamos que a maior parte desse viés seja um reflexo de nossos dados de treinamento atuais. No entanto, quando executamos o mesmo prompt em nosso modelo filtrado, o viés parecia ser amplificado; as gerações eram quase exclusivamente imagens de homens.
Nossa hipótese é que esse caso particular de amplificação de viés vem de dois lugares: primeiro, mesmo que mulheres e homens tenham representação aproximadamente igual no conjunto de dados original, o conjunto de dados pode ser tendencioso para apresentar mulheres em contextos mais sexualizados; e segundo, nossos próprios classificadores podem ser tendenciosos devido à implementação ou definição de classe, apesar de nossos esforços para garantir que isso não fosse o caso durante as fases de coleta e validação de dados. Devido a esses dois efeitos, nosso filtro pode remover mais imagens de mulheres do que de homens, o que altera a proporção de gênero que o modelo observa no treinamento.
Para investigar o viés induzido por filtros mais detalhadamente, queríamos uma maneira de medir o quanto nossos filtros de dados estavam afetando o viés em relação a vários conceitos. Notavelmente, nossos filtros de conteúdo sexual e de violência são puramente baseados em imagens, mas a natureza multimodal de nosso conjunto de dados nos permite medir diretamente os efeitos desses filtros no texto. Como cada imagem é acompanhada por uma legenda de texto, pudemos analisar a frequência relativa de palavras-chave selecionadas manualmente no conjunto de dados filtrado e não filtrado para estimar o quanto os filtros estavam afetando um determinado conceito.
Para colocar isso em prática, usamos o Apache Spark para calcular as frequências de um punhado de palavras-chave (por exemplo, "pai", "mulher", "criança") em todas as legendas em nossos conjuntos de dados filtrados e não filtrados. Embora nosso conjunto de dados contenha centenas de milhões de pares de texto-imagem, o cálculo dessas frequências de palavras-chave levou apenas alguns minutos usando nosso cluster de computação.
Depois de calcular as frequências de palavras-chave, pudemos confirmar que nossos filtros de conjunto de dados realmente distorceram as frequências de certas palavras-chave mais do que outras. Por exemplo, os filtros reduziram a frequência da palavra “mulher” em 14%, enquanto a frequência da palavra “homem” foi reduzida apenas em 6%. Isso confirmou, em larga escala, o que já havíamos observado de forma anedótica por amostragem de modelos GLIDE treinados em ambos os conjuntos de dados.
Agora que tínhamos um proxy para medir o viés induzido por filtros, precisávamos de uma maneira de mitigá-lo. Para resolver esse problema, nosso objetivo era repesar o conjunto de dados filtrado para que sua distribuição correspondesse melhor à distribuição de imagens não filtradas. Como exemplo de brinquedo para ilustrar essa ideia, suponha que nosso conjunto de dados consiste em 50% de fotos de gatos e 50% de fotos de cães, mas nossos filtros de dados removem 75% dos cães, mas apenas 50% dos gatos. O conjunto de dados final seria ⅔ gatos e ⅓ cães, e um modelo generativo baseado em probabilidade treinado nesse conjunto de dados provavelmente geraria mais imagens de gatos do que de cães. Podemos corrigir esse desequilíbrio multiplicando a perda de treinamento de cada imagem de um cachorro por 2, emulando o efeito de repetir cada imagem de cachorro duas vezes. Acontece que podemos dimensionar essa abordagem para nossos conjuntos de dados e modelos reais de uma maneira amplamente automática – ou seja, não precisamos selecionar manualmente os recursos que queremos reponderar.
Calculamos pesos para imagens no conjunto de dados filtrado usando probabilidades de um classificador especial, semelhante à abordagem usada por Choi et al. (2019). Para treinar esse classificador, amostramos imagens uniformemente de ambos os conjuntos de dados e prevemos de qual conjunto de dados a imagem veio. Em particular, este modelo prevê P(não filtrada|imagem), dado um prévio P (não filtrado) = 0.5. Na prática, não queremos que este modelo seja muito poderoso, ou então ele pode aprender a função exata implementada por nossos filtros em primeiro lugar. Em vez disso, queremos que o modelo seja mais suave do que nossos filtros de dados originais, capturando categorias amplas que são afetadas pelos filtros sem ter certeza se uma determinada imagem seria filtrada ou não. Para isso, treinamos uma sonda linear em cima de um pequeno CLIP modelo.
Uma vez que temos um classificador que prevê a probabilidade de uma imagem ser do conjunto de dados não filtrado, ainda precisamos converter essa previsão em um peso para a imagem. Por exemplo, suponha que P(não filtrada|imagem) = 0.8. Isso significa que a amostra tem 4 vezes mais probabilidade de ser encontrada nos dados não filtrados do que nos dados filtrados, e um peso de 4 deve corrigir o desequilíbrio. Mais geralmente, podemos usar o peso P(não filtrado|imagem)/P(filtrado|imagem).[1]
Até que ponto esse esquema de reponderação realmente mitiga o viés amplificado? Quando ajustamos nosso modelo filtrado anterior com o novo esquema de ponderação, o comportamento do modelo ajustado correspondia muito mais ao modelo não filtrado nos exemplos tendenciosos que encontramos anteriormente. Embora isso fosse encorajador, também queríamos avaliar essa mitigação mais detalhadamente usando nossa heurística de viés baseada em palavras-chave. Para medir as frequências de palavras-chave levando em consideração nosso novo esquema de ponderação, podemos simplesmente ponderar cada instância de uma palavra-chave no conjunto de dados filtrado pelo peso da amostra que a contém. Fazendo isso, obtemos um novo conjunto de frequências de palavras-chave que refletem os pesos de amostra no conjunto de dados filtrado.
Na maioria das palavras-chave que verificamos, o esquema de reponderação reduziu a mudança de frequência induzida pela filtragem. Para nossos exemplos anteriores de “homem” e “mulher”, as reduções de frequência relativa foram de 1% e –1%, enquanto seus valores anteriores foram de 14% e 6%, respectivamente. Embora essa métrica seja apenas um proxy para o viés de filtragem real, é reconfortante que nosso esquema de reponderação baseado em imagem realmente melhore uma métrica baseada em texto de forma tão significativa.
Continuamos a investigar os vieses remanescentes no DALL·E 2, em parte por meio de avaliações mais amplas do comportamento do modelo e investigações de como a filtragem impactou o viés e o desenvolvimento de capacidades.
Prevenindo a regurgitação da imagem
Observamos que nossos predecessores internos do DALL·E 2 às vezes reproduziam imagens de treinamento literalmente. Este comportamento era indesejável, pois gostaríamos que o DALL·E 2 criasse imagens originais e únicas por padrão e não apenas “juntas” pedaços de imagens existentes. Além disso, a reprodução literal de imagens de treinamento pode levantar questões legais sobre violação de direitos autorais, propriedade e privacidade (se as fotos das pessoas estiverem presentes nos dados de treinamento).
Para entender melhor a questão da regurgitação da imagem, coletamos um conjunto de dados de prompts que frequentemente resultavam em imagens duplicadas. Para fazer isso, usamos um modelo treinado para amostrar imagens para 50,000 prompts de nosso conjunto de dados de treinamento e classificamos as amostras por semelhança perceptual com a imagem de treinamento correspondente. Por fim, inspecionamos as principais correspondências manualmente, encontrando apenas algumas centenas de pares duplicados verdadeiros dos 50 mil prompts totais. Embora a taxa de regurgitação parecesse ser inferior a 1%, sentimos que era necessário reduzir a taxa para 0 pelas razões mencionadas acima.
Quando estudamos nosso conjunto de dados de imagens regurgitadas, notamos dois padrões. Primeiro, as imagens eram quase todos gráficos vetoriais simples, que provavelmente eram fáceis de memorizar devido ao seu baixo conteúdo de informações. Em segundo lugar, e mais importante, todas as imagens tinham muitas duplicatas no conjunto de dados de treinamento. Por exemplo, pode haver um gráfico vetorial que se pareça com um relógio mostrando a hora 1 hora - mas então descobriríamos uma amostra de treinamento contendo o mesmo relógio mostrando 2 horas e depois 3 horas etc. percebemos isso, usamos uma busca distribuída do vizinho mais próximo para verificar se, de fato, todas as imagens regurgitadas tinham duplicatas perceptualmente semelhantes no conjunto de dados. Outros trabalho observaram um fenômeno semelhante em grandes modelos de linguagem, descobrindo que a duplicação de dados está fortemente ligada à memorização.
A descoberta acima sugeriu que, se desduplicarmos nosso conjunto de dados, poderíamos resolver o problema da regurgitação. Para conseguir isso, planejamos usar uma rede neural para identificar grupos de imagens semelhantes e, em seguida, remover todas, exceto uma imagem de cada grupo.[2] No entanto, isso exigiria verificar, para cada imagem, se é uma duplicata de todas as outras imagens no conjunto de dados. Como todo o nosso conjunto de dados contém centenas de milhões de imagens, ingenuamente precisaríamos verificar centenas de quatrilhões de pares de imagens para encontrar todas as duplicatas. Embora isso esteja tecnicamente ao alcance, especialmente em um grande cluster de computação, encontramos uma alternativa muito mais eficiente que funciona quase tão bem por uma pequena fração do custo.
Considere o que acontece se agruparmos nosso conjunto de dados antes de realizar a desduplicação. Como as amostras próximas geralmente caem no mesmo cluster, a maioria dos pares duplicados não cruzaria os limites de decisão do cluster. Poderíamos então desduplicar amostras dentro de cada cluster sem verificar duplicatas fora do cluster, perdendo apenas uma pequena fração de todos os pares duplicados. Isso é muito mais rápido do que a abordagem ingênua, já que não precisamos mais verificar cada par de imagens.[3] Quando testamos essa abordagem empiricamente em um pequeno subconjunto de nossos dados, encontramos 85% de todos os pares duplicados ao usar K = 1024 aglomerados.
Para melhorar a taxa de sucesso do algoritmo acima, aproveitamos uma observação importante: quando você agrupa diferentes subconjuntos aleatórios de um conjunto de dados, os limites de decisão do cluster resultantes geralmente são bem diferentes. Portanto, se um par duplicado cruzar um limite de cluster para um clustering dos dados, o mesmo par poderá cair dentro de um único cluster em um clustering diferente. Quanto mais agrupamentos você tentar, maior a probabilidade de descobrir um determinado par duplicado. Na prática, optamos por usar cinco agrupamentos, o que significa que buscamos duplicatas de cada imagem na união de cinco agrupamentos diferentes. Na prática, isso encontrou 97% de todos os pares duplicados em um subconjunto de nossos dados.
Surpreendentemente, quase um quarto do nosso conjunto de dados foi removido por desduplicação. Quando analisamos os pares quase duplicados encontrados, muitos deles incluíam mudanças significativas. Lembre-se do exemplo do relógio acima: o conjunto de dados pode incluir muitas imagens do mesmo relógio em diferentes horários do dia. Embora essas imagens provavelmente façam com que o modelo memorize a aparência desse relógio em particular, elas também podem ajudar o modelo a aprender a distinguir entre as horas do dia em um relógio. Dada a quantidade de dados removidos, estávamos preocupados que a remoção de imagens como essa pudesse prejudicar o desempenho do modelo.
Para testar o efeito da desduplicação em nossos modelos, treinamos dois modelos com hiperparâmetros idênticos: um no conjunto de dados completo e outro na versão desduplicada do conjunto de dados. Para comparar os modelos, usamos as mesmas avaliações humanas que usamos para avaliar nosso modelo GLIDE original. Surpreendentemente, descobrimos que avaliadores humanos ligeiramente preferido o modelo treinou em dados desduplicados, sugerindo que a grande quantidade de imagens redundantes no conjunto de dados estava realmente prejudicando o desempenho.
Assim que treinamos um modelo com dados desduplicados, executamos novamente a pesquisa de regurgitação que havíamos feito anteriormente em mais de 50 mil prompts do conjunto de dados de treinamento. Descobrimos que o novo modelo nunca regurgitou uma imagem de treinamento quando recebeu o prompt exato para a imagem do conjunto de dados de treinamento. Para levar esse teste mais adiante, também realizamos uma pesquisa do vizinho mais próximo em todo o conjunto de dados de treinamento para cada uma das 50 mil imagens geradas. Dessa forma, pensamos que poderíamos pegar o modelo regurgitando uma imagem diferente daquela associada a um determinado prompt. Mesmo com essa verificação mais minuciosa, nunca encontramos um caso de regurgitação de imagem.
Próximos Passos
Embora todas as mitigações discutidas acima representem um progresso significativo em direção ao nosso objetivo de reduzir os riscos associados ao DALL·E 2, cada mitigação ainda tem espaço para melhorar:
- Melhores filtros de pré-treinamento podem nos permitir treinar DALL·E 2 em mais dados e potencialmente reduzir ainda mais o viés no modelo. Nossos filtros atuais são ajustados para uma baixa taxa de erros ao custo de muitos falsos positivos. Como resultado, filtramos cerca de 5% de todo o nosso conjunto de dados, embora a maioria dessas imagens filtradas não viole nossa política de conteúdo. Melhorar nossos filtros pode nos permitir recuperar alguns desses dados de treinamento.
- O viés é introduzido e potencialmente amplificado em muitos estágios de desenvolvimento e implantação do sistema. Avaliar e mitigar o viés em sistemas como o DALL·E 2 e os danos induzidos por esse viés é um importante problema interdisciplinar que continuamos a estudar na OpenAI como parte de nossa missão mais ampla. Nosso trabalho nisso inclui a construção de avaliações para entender melhor o problema, a curadoria de novos conjuntos de dados e a aplicação de técnicas como feedback humano e ajuste fino para construir tecnologias mais robustas e representativas.
- Também é crucial que continuemos a estudar memorização e generalização em sistemas de aprendizado profundo. Embora a desduplicação seja um bom primeiro passo para evitar a memorização, ela não nos diz tudo o que há para aprender sobre por que ou como modelos como o DALL·E 2 memorizam dados de treinamento.
- 000
- 2019
- a
- Sobre
- Conta
- Alcançar
- em
- ativo
- endereço
- afetando
- algoritmo
- Todos os Produtos
- Permitindo
- permite
- já
- alternativa
- sempre
- quantidade
- Outro
- apareceu
- aplicado
- Aplicando
- abordagem
- por aí
- atribuído
- associado
- público
- Porque
- antes
- ser
- Melhor
- entre
- Pós
- construir
- Prédio
- capacidades
- legendas
- casas
- casos
- luta
- Categoria
- causado
- certo
- alterar
- a verificação
- Escolha
- classe
- classificação
- classificado
- Relógio
- coleção
- comparado
- Computar
- computação
- conceito
- Considerar
- contém
- conteúdo
- Contextos
- continuar
- direitos autorais
- violação de direitos autorais
- Correspondente
- poderia
- crio
- criado
- Criar
- crucial
- Atual
- Atualmente
- dados,
- dia
- dias
- decisão
- profundo
- Demografia
- desenvolvimento
- descreve
- Apesar de
- Desenvolvimento
- diferente
- difícil
- diretamente
- descobrir
- descoberto
- distância
- distribuído
- distribuição
- down
- duplicatas
- durante
- cada
- efeito
- efetivamente
- eficácia
- efeitos
- eficiente
- esforços
- animador
- especialmente
- essencialmente
- estimativa
- etc.
- avaliar
- tudo
- exemplo
- exemplos
- exclusivamente
- existente
- esperar
- esperado
- mais rápido
- Característica
- Funcionalidades
- retornos
- Figura
- filtragem
- filtros
- Finalmente
- descoberta
- Primeiro nome
- Fixar
- concentra-se
- segue
- encontrado
- da
- cheio
- função
- mais distante
- coleta
- Gênero
- Geral
- geralmente
- gerar
- gerado
- geração
- Gerações
- generativo
- meta
- Bom estado, com sinais de uso
- GPUs
- gráficos
- Grupo
- Do grupo
- garantido
- punhado
- ajudar
- ajuda
- SUA PARTICIPAÇÃO FAZ A DIFERENÇA
- Alta
- Como funciona o dobrador de carta de canal
- Contudo
- HTTPS
- humano
- Humanos
- Centenas
- idéia
- identificar
- imagem
- imagens
- implementação
- implementado
- importante
- melhorar
- melhorado
- melhorar
- incluir
- incluído
- inclui
- Incluindo
- INFORMAÇÕES
- Infraestrutura
- instância
- Internet
- investigar
- emitem
- IT
- se
- Chave
- O rótulo
- marcação
- Rótulos
- língua
- grande
- Maior
- APRENDER
- aprendido
- aprendizagem
- Legal
- Provável
- olhar
- olhou
- fazer
- marca
- Match
- significativo
- significa
- a medida
- medição
- Homem
- poder
- Militar
- milhões
- Missão
- modelo
- modelos
- mais
- a maioria
- multiplicando
- Natureza
- necessário
- negativo
- rede
- número
- ordem
- Organizado
- original
- Outros
- propriedade
- parte
- particular
- atuação
- realização
- fase
- peças
- planejado
- Privacidade
- positivo
- possível
- potencial
- poderoso
- prática
- predizer
- predição
- presente
- impedindo
- anterior
- política de privacidade
- sonda
- Problema
- processo
- produzir
- Produzido
- protesto
- procuração
- Trimestre
- aumentar
- alcançar
- realizado
- razões
- reduzir
- Reduzido
- redução
- refletir
- reflexão
- remanescente
- removendo
- representar
- representação
- representante
- pedidos
- requerer
- exige
- resposta
- resultando
- retorno
- riscos
- Execute
- mesmo
- Escala
- esquema
- Pesquisar
- conjunto
- formas
- Partilhar
- mudança
- periodo
- semelhante
- simples
- desde
- solteiro
- Tamanho
- pequeno
- So
- RESOLVER
- alguns
- algo
- Espaço
- especial
- especificamente
- especificação
- splits
- Estágio
- começo
- estabelecido
- Ainda
- Estudo
- sucesso
- .
- sistemas
- tomar
- técnicas
- Tecnologias
- teste
- A
- assim sendo
- coisas
- completamente
- três
- limiar
- Através da
- tempo
- vezes
- ferramenta
- topo
- para
- Trem
- Training
- compreender
- união
- único
- us
- usar
- validação
- vário
- verificar
- versão
- querido
- O Quê
- se
- enquanto
- dentro
- sem
- Mulher
- Atividades:
- trabalho
- preocupado
- seria
- X