Home
Login

Assistente de IA de código aberto baseado em bate-papo, treinado com aprendizado por reforço com feedback humano, projetado para fornecer acesso gratuito a modelos de linguagem grandes para todos.

Apache-2.0Python 37.4kLAION-AI Last Updated: 2024-08-17

Apresentação Detalhada do Projeto Open Assistant

Visão Geral do Projeto

Open Assistant é um projeto de assistente de IA de bate-papo de código aberto desenvolvido pela organização LAION-AI. O projeto visa fornecer acesso a excelentes modelos de linguagem grandes baseados em bate-papo para todos, criando uma revolução na tecnologia de linguagem por meio do código aberto.

⚠️ Aviso Importante: O projeto OpenAssistant foi concluído e agora está encerrado. O conjunto de dados final publicado pode ser encontrado em OpenAssistant/oasst2 no HuggingFace.

Visão do Projeto

O Open Assistant acredita que a colaboração de código aberto pode criar uma revolução no campo da tecnologia de linguagem, assim como o Stable Diffusion ajudou o mundo a criar arte e imagens de novas maneiras. O objetivo final do projeto não é apenas replicar o ChatGPT, mas construir o assistente do futuro, capaz de:

  • Escrever e-mails e cartas de apresentação
  • Executar trabalhos significativos
  • Usar APIs
  • Pesquisar informações dinamicamente
  • Suportar personalização e expansão

Abordagem Técnica

Pilha de Tecnologia Principal

O principal objetivo do projeto é ter um chatbot capaz de responder a perguntas, adaptando modelos de linguagem grandes (LLM) para seguir melhor as instruções. Para isso, o projeto utilizou o método proposto no artigo InstructGPT, que se baseia no aprendizado por reforço com feedback humano (RLHF).

Método de Treinamento em Três Etapas

O projeto segue o método de três etapas delineado no artigo InstructGPT:

Primeira Etapa: Coleta de Dados

  • Coletar amostras de instruções-conclusões (prompt + resposta) geradas por humanos de alta qualidade
  • Meta: mais de 50.000 amostras
  • Projetar um processo de crowdsourcing para coletar e revisar prompts
  • Evitar ataques de inundação de treinamento/dados tóxicos/lixo/informações pessoais
  • Incentivar a comunidade por meio de placares, mostrando o progresso e os usuários mais ativos

Segunda Etapa: Coleta de Ranking

  • Amostrar várias conclusões para cada prompt coletado
  • Apresentar aleatoriamente as conclusões do prompt aos usuários para classificação (do melhor para o pior)
  • Lidar com usuários não confiáveis ou maliciosos por meio de crowdsourcing
  • Coletar votos de vários usuários independentes para medir a consistência geral
  • Usar os dados de classificação coletados para treinar um modelo de recompensa

Terceira Etapa: Treinamento RLHF

  • Fase de treinamento de aprendizado por reforço com feedback humano com base no prompt e no modelo de recompensa
  • O modelo resultante pode ser usado para continuar a etapa de amostragem para a próxima iteração

Arquitetura do Projeto

Configuração do Ambiente de Desenvolvimento

O projeto suporta uma pilha Docker completa, incluindo o site, o backend e os serviços de dependência relacionados.

Comando básico de inicialização:

docker compose --profile ci up --build --attach-dependencies

Usuários de chip MacOS M1 precisam usar:

DB_PLATFORM=linux/x86_64 docker compose ...

Acesso local:

Suporte a Contêineres de Desenvolvimento

O projeto oferece suporte a ambientes de desenvolvimento padronizados:

  • Devcontainer VSCode local
  • Ambiente de navegador web GitHub Codespaces
  • Arquivos de configuração localizados na pasta .devcontainer

Características Funcionais

Funcionalidade de Bate-papo

  • O frontend de bate-papo está online, os usuários podem fazer login e começar a conversar
  • Suporte para dar feedback positivo ou negativo às respostas do assistente
  • Experiência de interação em tempo real

Coleta de Dados

  • O frontend de coleta de dados está online, os usuários podem fazer login e começar a executar tarefas
  • Ajude diretamente a melhorar as capacidades do Open Assistant enviando, classificando e marcando prompts e respostas do modelo
  • Coleta de dados de alta qualidade por meio de crowdsourcing

Sistema de Inferência

O projeto inclui um sistema de inferência completo, com suporte para:

  • Implantação local de serviços de inferência
  • Capacidade de execução em hardware de consumo
  • Design de arquitetura escalável

Características de Código Aberto

Participação da Comunidade

  • O projeto é organizado pela LAION e por indivíduos de todo o mundo interessados em levar essa tecnologia para todos
  • Desenvolvedores são bem-vindos para contribuir com código
  • Guia de contribuição detalhado disponível

Status do Projeto

Lembrete Importante: O projeto OpenAssistant foi concluído e encerrado. Embora o projeto em si tenha terminado, no entanto:

  • O conjunto de dados final oasst2 está disponível no HuggingFace
  • O código ainda é de código aberto e acessível
  • A comunidade pode continuar a desenvolver com base no trabalho existente

Requisitos Técnicos

Requisitos de Hardware

  • A visão do projeto é criar um modelo de linguagem grande que possa ser executado em uma única GPU de consumo de ponta
  • Suporte para implantação em hardware de consumo
  • Desempenho de inferência otimizado

Opções de Implantação

  • Implantação em contêineres Docker
  • Ambiente de desenvolvimento local
  • Suporte para implantação na nuvem
  • Implantação independente de serviços de inferência

Recursos Relacionados