Vicuna: um chatbot de código aberto que impressiona o GPT-4 com 90%* de qualidade ChatGPT
Visão geral
O rápido avanço dos grandes modelos de linguagem (LLMs) revolucionou os sistemas de chatbot, resultando em resultados sem precedentes níveis de inteligência vistos no ChatGPT da OpenAI. No entanto, apesar do seu desempenho impressionante, os detalhes da formação e da arquitetura do ChatGPT permanecem obscuros, dificultando a investigação e a inovação de código aberto neste campo. Inspirados no projeto Meta LLaMA e Stanford Alpaca, apresentamos o Vicuna-13B, um chatbot de código aberto apoiado por um conjunto de dados aprimorado e uma infraestrutura escalonável e fácil de usar. Ao ajustar um modelo básico LLaMA em conversas compartilhadas por usuários coletadas em ShareGPT.com, Vicuna-13B demonstrou desempenho competitivo em comparação com outros modelos de código aberto, como Stanford Alpaca. Esta postagem do blog fornece uma avaliação preliminar do desempenho do Vicuna-13B e descreve sua infraestrutura de treinamento e atendimento. Também convidamos a comunidade a interagir com nossa demonstração on-line para testar as capacidades deste chatbot.
Quão bom é o Vicuna?
Depois de ajustar o Vicuna com 70 mil conversas ChatGPT compartilhadas por usuários, descobrimos que o Vicuna se torna capaz de gerar respostas mais detalhadas e bem estruturadas em comparação com o Alpaca (veja exemplos abaixo), com qualidade equivalente ao ChatGPT.
Demonstração Online
Experimente a demonstração do Vicuna-13B aqui!
Treinamento
Vicuna é criado ajustando um modelo base LLaMA usando aproximadamente 70 mil conversas compartilhadas por usuários coletadas de ShareGPT.com com APIs públicas. Para garantir a qualidade dos dados, convertemos o HTML novamente em markdown e filtramos algumas amostras inadequadas ou de baixa qualidade. Além disso, dividimos conversas longas em segmentos menores que se ajustam à duração máxima do contexto do modelo.
- Conversas multiturno: ajustamos a perda de treinamento para levar em conta conversas multiturno e calculamos a perda de ajuste fino somente no saída do chatbot.
- Otimizações de memória: Para permitir a compreensão do contexto longo por Vicuna, expandimos o comprimento máximo do contexto de 512 em alpaca para 2048, o que aumenta substancialmente os requisitos de memória da GPU. Lidamos com a pressão da memória utilizando pontos de verificação de gradiente e atenção flash.
- Redução de custos por meio de instância spot: o conjunto de dados 40x maior e o comprimento de sequência 4x para treinamento representam um desafio considerável nas despesas de treinamento. Empregamos o spot gerenciado SkyPilot para reduzir o custo, aproveitando as instâncias spot mais baratas com recuperação automática para preempções e troca automática de zona. Esta solução reduz os custos de treinamento do modelo 7B de cerca de 140 e do modelo 13B de cerca de 300.
Servindo
Construímos um sistema de serviço que é capaz de servir vários modelos com distribuição trabalhadores. Ele oferece suporte a plug-ins flexíveis de trabalhadores de GPU de clusters locais e da nuvem. Ao utilizar um controlador tolerante a falhas e um recurso spot gerenciado no SkyPilot, esse sistema de serviço pode funcionar bem com instâncias spot mais baratas de múltiplas nuvens para reduzir os custos de serviço. Atualmente é uma implementação leve e estamos trabalhando para integrar mais de nossas pesquisas mais recentes nela.
Como avaliar um chatbot?
Avaliar chatbots de IA é uma tarefa desafiadora, pois requer examinar a compreensão da linguagem, o raciocínio, e consciência do contexto. Com os chatbots de IA se tornando mais avançados, os atuais benchmarks abertos podem não ser mais suficientes. Por exemplo, o conjunto de dados de avaliação usado no Alpaca de Stanford, autoinstruído, pode ser respondido de forma eficaz por chatbots SOTA, tornando difícil para os humanos discernir diferenças no desempenho. Outras limitações incluem a contaminação de dados de treinamento/teste e o custo potencialmente alto da criação de novos benchmarks. Para resolver esses problemas, propomos uma estrutura de avaliação baseada em GPT-4 para automatizar a avaliação de desempenho do chatbot.
Limitações
Percebemos que, assim como outros modelos de linguagem de grande porte, o Vicuna tem certas limitações. Por exemplo, não é bom em tarefas que envolvam raciocínio ou matemática, e pode ter limitações na identificação precisa ou na garantia da exatidão factual dos seus resultados. Além disso, não foi suficientemente otimizado para garantir a segurança ou mitigar potencial toxicidade ou preconceito. Para resolver as questões de segurança, usamos a API de moderação OpenAI para filtrar entradas inadequadas do usuário em nossa demonstração online. No entanto, prevemos que o Vicuna possa servir como um ponto de partida aberto para pesquisas futuras para lidar com essas limitações.
Lançamento
Em nosso primeiro lançamento, compartilharemos o código de treinamento, serviço e avaliação em um repositório GitHub: https://github.com/lm-sys/FastChat. Também lançamos os pesos do modelo Vicuna-13B. Não há planos para liberar o conjunto de dados. Junte-se ao nosso servidor Discord e siga nosso Twitter para obter as atualizações mais recentes.
Quão boa é a Vicuna?
Depois de ajustar a Vicuna com 70 mil conversas ChatGPT compartilhadas por usuários, descobrimos que a Vicuna se torna capaz de gerar respostas mais detalhadas e bem estruturadas em comparação com a Alpaca (veja exemplos abaixo ), com qualidade equivalente ao ChatGPT.
Demonstração on-line
Experimente a demonstração do Vicuna-13B
aqui< /a>!
Visão geral
O rápido avanço dos grandes modelos de linguagem (LLMs) revolucionou os sistemas de chatbot, resultando em níveis de inteligência sem precedentes, como visto no ChatGPT da OpenAI. No entanto, apesar do seu desempenho impressionante, os detalhes da formação e da arquitetura do ChatGPT permanecem obscuros, dificultando a investigação e a inovação de código aberto neste campo. Inspirados no projeto Meta LLaMA e Stanford Alpaca, apresentamos o Vicuna-13B, um chatbot de código aberto apoiado por um conjunto de dados aprimorado e uma infraestrutura escalonável e fácil de usar. Ao ajustar um modelo básico LLaMA em conversas compartilhadas por usuários coletadas em ShareGPT.com, Vicuna-13B demonstrou desempenho competitivo em comparação com outros modelos de código aberto, como Stanford Alpaca. Esta postagem do blog fornece uma avaliação preliminar do desempenho do Vicuna-13B e descreve sua infraestrutura de treinamento e atendimento. Também convidamos a comunidade a interagir com nossa demonstração on-line para testar os recursos deste chatbot.
Treinamento
Vicuna é criado pelo ajuste fino de um modelo base LLaMA usando aproximadamente 70 mil usuários- conversas compartilhadas coletadas de ShareGPT.com com APIs públicas. Para garantir a qualidade dos dados, convertemos o HTML novamente em markdown e filtramos algumas amostras inadequadas ou de baixa qualidade. Além disso, dividimos conversas longas em segmentos menores que se ajustam ao comprimento máximo de contexto do modelo.
Serviço
Construímos um sistema de serviço que é capaz de servir vários modelos com trabalhadores distribuídos. Ele oferece suporte a plug-ins flexíveis de trabalhadores de GPU de clusters locais e da nuvem. Ao utilizar um controlador tolerante a falhas e um recurso spot gerenciado no SkyPilot, esse sistema de serviço pode funcionar bem com instâncias spot mais baratas de múltiplas nuvens para reduzir os custos de serviço. Atualmente, é uma implementação leve e estamos trabalhando para integrar mais de nossas
pesquisas
mais recentes.
Como Para avaliar um chatbot?
Avaliar chatbots de IA é uma tarefa desafiadora, pois requer examinar a compreensão da linguagem, o raciocínio e a consciência do contexto. Com os chatbots de IA se tornando mais avançados, os atuais benchmarks abertos podem não ser mais suficientes. Por exemplo, o conjunto de dados de avaliação usado no Alpaca de Stanford,
self-instruct, pode ser efetivamente respondido por Chatbots SOTA, tornando difícil para os humanos discernirem diferenças de desempenho. Outras limitações incluem a contaminação de dados de treinamento/teste e o custo potencialmente alto da criação de novos benchmarks. Para resolver esses problemas, propomos uma estrutura de avaliação baseada em GPT-4 para automatizar a avaliação de desempenho do chatbot.
Limitações
Percebemos que, semelhante a outros grandes modelos de linguagem, o Vicuna tem certas limitações. Por exemplo, não é bom em tarefas que envolvam raciocínio ou matemática, e pode ter limitações na identificação precisa ou na garantia da exatidão factual dos seus resultados. Além disso, não foi suficientemente otimizado para garantir a segurança ou mitigar potencial toxicidade ou preconceito. Para resolver as questões de segurança, usamos a API OpenAI
moderação
para filtrar entradas inadequadas de usuários em nossa demonstração on-line . No entanto, prevemos que a Vicuna pode servir como um ponto de partida aberto para pesquisas futuras que resolvam essas limitações.