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 |
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".
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:
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
- Site da LIT
- People + AI Guidebook (em inglês) para projetar com IA