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