Analisar o comportamento do modelo com ferramentas de interpretabilidade

Embora uma abordagem responsável à IA deva incluir políticas de segurança, técnicas para melhorar a segurança do modelo, como criar artefatos de transparência, sua abordagem para ser responsável com a IA generativa não deve simplesmente seguir uma lista de verificação. Os produtos de IA generativa são relativamente novos, e os comportamentos de um aplicativo podem variar mais do que formas anteriores de software. Por esse motivo, é preciso sondar os modelos de machine learning que estão sendo usados, examinar exemplos de comportamento do modelo e investigar surpresas.

Atualmente, a criação de comandos é tanto arte quanto ciência, mas existem ferramentas que podem ajudar você a melhorar empiricamente os comandos para modelos de linguagem grandes, como a Ferramenta de aprendizado de interpretabilidade (LIT, na sigla em inglês). A LIT é uma plataforma de código aberto desenvolvida para visualizar, entender e depurar modelos de IA/ML. Confira abaixo um exemplo de como a LIT pode ser usada para analisar o comportamento da Gemma, antecipar possíveis problemas e melhorar a segurança.

É possível instalar a LIT na máquina local, no Colab ou no Google Cloud. Para começar a usar a LIT, importe seu modelo e um conjunto de dados associado (por exemplo, um conjunto de dados de avaliação de segurança) para o Colab. A LIT gera um conjunto de saídas para o conjunto de dados usando o modelo e fornece uma interface do usuário para analisar o comportamento do modelo.

Analisar modelos Gemma com LIT

Iniciar o codelab Iniciar o Google Colab

Animação da interface do usuário da Ferramenta de aprendizado de interpretabilidade (LIT)

Esta imagem mostra a interface do usuário da LIT. O editor de pontos de dados na parte de cima permite que os usuários editem os comandos. Na parte de baixo, o módulo "Salience do LM" permite que eles verifiquem os resultados de saliência.

Identificar erros em comandos complexos

Duas das técnicas de comandos mais importantes para protótipos e aplicativos de alta qualidade baseados em LLMs são comandos few-shot (incluindo exemplos do comportamento desejado no comando) e a cadeia de pensamento, incluindo uma forma de explicação ou raciocínio antes da saída final do LLM. No entanto, criar um comando eficaz ainda é desafiador.

Considere ajudar uma pessoa a avaliar se ela gosta de uma comida com base nos gostos dela. Um modelo inicial de comando de cadeia de pensamento para um protótipo pode ter esta aparência:

Analyze a menu item in a restaurant.


## For example:


Taste-likes: I've a sweet-tooth
Taste-dislikes: Don't like onions or garlic
Suggestion: Onion soup
Analysis: it has cooked onions in it, which you don't like.
Recommendation: You have to try it.


Taste-likes: I've a sweet-tooth
Taste-dislikes: Don't like onions or garlic
Suggestion: Baguette maison au levain
Analysis: Home-made leaven bread in France is usually great
Recommendation: Likely good.


Taste-likes: I've a sweet-tooth
Taste-dislikes: Don't like onions or garlic
Suggestion: Macaron in France
Analysis: Sweet with many kinds of flavours
Recommendation: You have to try it.


## Now analyse one more example:


Taste-likes: {{users-food-like-preferences}}
Taste-dislikes: {{users-food-dislike-preferences}}
Suggestion: {{menu-item-to-analyse}}
Analysis:

Você percebeu algum problema com o comando? A LIT ajudará você a examinar o comando com o módulo Salience do LM.

Usar a saliência de sequências para depuração

A saliência é calculada no menor nível possível, ou seja, para cada token de entrada, mas a LIT pode agregar a saliência de tokens em períodos maiores e mais interpretáveis, como linhas, frases ou palavras. Saiba mais sobre saliência e como usar para identificar vieses não intencionais na página Saliência interativa Explorável.

Vamos começar fornecendo ao comando uma nova entrada de exemplo para as variáveis do modelo de comando:

{{users-food-like-preferences}} = Cheese
{{users-food-dislike-preferences}} = Can't eat eggs
{{menu-item-to-analyse}} = Quiche Lorraine

Depois de fazer isso, é possível observar uma conclusão de modelo surpreendente:

Taste-likes: Cheese
Taste-dislikes: Can't eat eggs
Suggestion: Quiche Lorraine
Analysis: A savoury tart with cheese and eggs
Recommendation: You might not like it, but it's worth trying.

Por que o modelo está sugerindo que você coma algo que você claramente disse que não pode comer?

A saliência de sequência pode ajudar a destacar o problema raiz, que está nos nossos exemplos de few-shot. No primeiro exemplo, o raciocínio da cadeia de pensamento na seção de análise não corresponde à recomendação final. Uma análise de "Tem cebolas cozidas, o que você não gosta" é pareada com uma recomendação de "Você precisa experimentar".

Interface do usuário da LIT mostrando a análise de saliência da sequência de comandos

Isso destaca um erro no prompt inicial: houve uma cópia acidental da recomendação (You have to try it!) no primeiro exemplo do few-shot. É possível conferir a intensidade da saliência no comando na escuridão do destaque roxo. A saliência mais alta está no primeiro exemplo de imagens e, especificamente, nas linhas correspondentes a Taste-likes, Analysis e Recommendation. Isso sugere que o modelo está usando mais essas linhas para fazer a recomendação incorreta final.

Esse exemplo também destaca que a prototipagem precoce pode revelar riscos que talvez você não pense com antecedência, e a natureza propensa a erros dos modelos de linguagem significa que você precisa projetar proativamente para os erros. Isso é discutido mais adiante em nosso Guia de pessoas + IA para projetar com IA.

Testar hipóteses para melhorar o comportamento do modelo

A LIT permite testar mudanças nos comandos na mesma interface. Nessa instância, tente adicionar uma constituição para melhorar o comportamento do modelo. Constituições se referem a comandos com princípios para orientar a geração do modelo. Os métodos recentes permitem até mesmo a derivação interativa de princípios constitucionais.

Vamos usar essa ideia para melhorar ainda mais o comando. Use o Editor de ponto de dados da LIT para adicionar uma seção com os princípios para a geração na parte superior do comando, que agora começa da seguinte maneira:

Analyze a menu item in a restaurant.

* The analysis should be brief and to the point.
* It should provide a clear statement of suitability for someone with
  specific dietary restrictions.
* It should reflect the person's tastes

## For example:

Taste-likes: I've a sweet-tooth
Taste-dislikes: Don't like onions or garlic
Suggestion: Onion soup
Analysis: it has cooked onions in it, which you don't like.
Recommendation: Avoid.

Com essa atualização, o exemplo pode ser executado de novo e a saída é muito diferente:

Taste-likes: Cheese
Taste-dislikes: Can't eat eggs
Suggestion: Quiche Lorraine
Analysis: This dish contains eggs, which you can't eat.
Recommendation: Not suitable for you.

A saliência do comando pode ser reavaliada para ajudar a ter uma noção do motivo dessa mudança:

Interface do usuário da LIT mostrando a análise de saliência de comandos

Neste exemplo, "Não adequado para você" está sendo influenciado pelo princípio de "Fornecer uma declaração clara de adequação para alguém com restrição alimentar especificada" e a declaração de análise explicativa mostrando que o prato contém ovos (a chamada cadeia de pensamento).

Incluir equipes não técnicas na sondagem e exploração de modelos

A interpretabilidade é um esforço em equipe que abrange conhecimentos de política, jurídico e muito mais. Como você viu, o meio visual e a capacidade interativa da LIT de examinar saliência e explorar exemplos podem ajudar diferentes partes interessadas a compartilhar e comunicar as descobertas. Isso permite que você traga uma diversidade mais ampla de colegas de equipe para exploração, sondagem e depuração de modelos. A exposição a esses métodos técnicos pode melhorar a compreensão de como os modelos funcionam. Além disso, um conjunto mais diversificado de experiência nos primeiros testes de modelo também pode ajudar a descobrir resultados indesejados que podem ser melhorados.

Resumo

Quando você encontrar exemplos problemáticos nas avaliações do modelo, coloque-os na LIT para depuração. Comece analisando a maior unidade sensata de conteúdo que você pensa que se relaciona logicamente com a tarefa de modelagem, use as visualizações para ver onde o modelo está atendendo corretamente ou incorretamente ao conteúdo do comando e, em seguida, detalhe os detalhes em unidades menores de conteúdo para descrever com mais detalhes o comportamento incorreto que você está vendo e identificar possíveis correções.

Recursos para desenvolvedores