Aprendizagem pessoal com IA
e orientação prática
Espelho de desenho CyberKnife

WeClone: treinamento de doppelgangers digitais com registros de bate-papo e vozes do WeChat

Introdução geral

O WeClone é um projeto de código aberto que permite aos usuários criar doppelgängers digitais personalizados usando registros de bate-papo e mensagens de voz do WeChat, combinados com grandes modelos de linguagem e tecnologia de síntese de voz. O projeto pode analisar os hábitos de bate-papo de um usuário para treinar o modelo e também pode gerar clones de voz realistas com um pequeno número de amostras de voz. Eventualmente, o doppelganger digital pode ser vinculado a um bot do WeChat, permitindo respostas automáticas de texto e voz. Essa ferramenta é adequada para pessoas que desejam usar um assistente de IA no WeChat ou aprender a tecnologia de IA. O código é totalmente público e atraiu a participação de muitos entusiastas e desenvolvedores de tecnologia.

WeClone: treinamento de doppelgangers digitais com chats do WeChat e voz-1


 

Lista de funções

  • Treinamento de registro de bate-papo: Ajuste fino de modelos de linguagem grandes para imitar a fala do usuário com transcrições de bate-papo da Microsoft.
  • Clonagem de fala de alta qualidadeGeração de sons com uma similaridade de até 951 TP3T usando um modelo paramétrico de 0,5B e uma amostra de fala de 5 segundos.
  • Vinculação de robôs do WeChatConecte a divisão digital ao WeChat para oferecer suporte a respostas automáticas de texto e voz.
  • Ferramentas de pré-processamento de dadosFornecimento de scripts para converter os registros de bate-papo em dados de treinamento, filtrando informações confidenciais por padrão.
  • Otimização da personalização do modeloSuporte à tecnologia de ajuste fino LoRA para tornar o modelo mais compatível com o idioma do usuário.

 

Usando a Ajuda

O WeClone requer algumas habilidades técnicas, como Python e Git, mas aqui está um guia passo a passo detalhado para ajudá-lo a começar, desde a instalação até o uso.

Processo de instalação

  1. projeto de clonagem
    Abra um terminal e digite:
git clone https://github.com/xming521/WeClone.git

Em seguida, vá para o diretório do projeto:

cd WeClone
  1. Configuração do ambiente
    O Python 3.9 é recomendado para este projeto. uv ambiente de gerenciamento, o comando de instalação é o seguinte:
uv venv .venv --python=3.9
source .venv/bin/activate  # Linux/Mac
.venv\Scripts\activate     # Windows
  1. Instalação de dependências
    Depois de ativar o ambiente, execute-o:
uv pip install --group main -e .

Observação: Isso não inclui a clonagem de voz de xcodec Dependência, pode ser instalado separadamente, se necessário.

  1. Modelos para download
    O modelo ChatGLM3-6B é usado por padrão. Ele pode ser baixado usando o Hugging Face:
git lfs install
git clone https://huggingface.co/THUDM/chatglm3-6b

Se o download estiver lento, use a comunidade Magic Hitch:

export USE_MODELSCOPE_HUB=1  # Windows 用 set
git clone https://www.modelscope.cn/ZhipuAI/chatglm3-6b.git

O modelo Magic Match precisa ser substituído modeling_chatglm.py para a versão Hugging Face.

Preparação de dados

  1. Exportar registros de bate-papo
  • download PyWxDump, descriptografando o banco de dados da Microsoft.
  • Clique em "Chat Backup" e selecione o formato CSV para exportar seus contatos ou chats em grupo.
  • Coloque o wxdump_tmp/export/csv Pasta em ./data/csv.
  • Os dados de exemplo estão no data/example_chat.csv.
  1. Processamento de dados
    Execute o script no formato JSON:
./make_dataset/csv_to_json.py

Filtragem padrão de informações confidenciais, como números de telefones celulares e números de identidade. Ela pode ser encontrada na seção blocked_words.json A adição de uma palavra proibida remove toda a frase que contém a palavra proibida.

Modelagem do ajuste fino

  1. Parâmetros de configuração
  • compilador settings.jsonespecifique o caminho do modelo.
  • adaptar per_device_train_batch_size responder cantando gradient_accumulation_steps Adaptação da memória de vídeo.
  • Ajuste ao volume de dados num_train_epochs(rodadas) e lora_rankevitando o ajuste excessivo.
  1. treinamento com um cartão
python src/train_sft.py

Os autores treinaram com 20.000 dados e a perda caiu para 3,5 com bons resultados.

  1. Treinamento Doka
    Instale o DeepSpeed:
uv pip install deepspeed

Execute o treinamento com várias placas (substitua "Number of graphics cards used"):

deepspeed --num_gpus=使用显卡数量 src/train_sft.py

clonagem de fala

  • Prepare uma mensagem de voz do WeChat de mais de 5 segundos para colocar em WeClone-audio Pasta.
  • Execute os scripts relevantes (requer instalação) xcodec), o som gerado é salvo nessa pasta.
  • A voz mantém a entonação e a emoção, com uma similaridade de até 951 TP3T.

Vinculação do robô do WeChat

  1. Implantação do AstrBot
  • Baixe e instale o AstrBot (compatível com WeChat, QQ e outras plataformas).
  • Configure a plataforma de mensagens (por exemplo, WeChat).
  1. Iniciando o serviço de API
python src/api_service.py

O endereço padrão é http://172.17.0.1:8005/v1.

  1. Configuração do AstrBot
  • Adicione um provedor de serviços e selecione OpenAI para Tipo.
  • API Base URL para endereço local, modelo para gpt-3.5-turbo.
  • Fechar chamada de ferramenta: enviar comando /tool off reminder.
  • Defina uma palavra de prompt do sistema que seja consistente com a usada para o ajuste fino.

Requisitos de hardware

  • O ajuste fino padrão com ChatGLM3-6B e LoRA requer 16 GB de memória de vídeo.
  • Outras opções:
  • QLoRA (precisão de 4 bits): 6 GB (modelo 7B) a 48 GB (modelo 70B).
  • Corte paramétrico completo (16 bits): 60 GB (7 B) a 600 GB (70 B).
  • A GPU é recomendada; a falta de memória de vídeo pode ser ajustada para uma precisão menor ou usar uma placa múltipla.

Dicas e truques

  • A quantidade de dados é de pelo menos 2.000 entradas; quanto maior a qualidade, melhor.
  • As amostras de voz devem ser claras e evitar ruídos de fundo.
  • Modelo de teste disponível web_demo.py talvez test_model.py.

Uma vez feito isso, seu doppelganger digital poderá conversar automaticamente e responder por voz no WeChat com resultados muito próximos aos da pessoa.

 

cenário do aplicativo

  1. Assistente diário
    A divisão digital pode ajudá-lo a responder às mensagens do WeChat, como, por exemplo, responder automaticamente à saudação de um amigo quando você estiver ocupado.
  2. Prática de tecnologia
    Os desenvolvedores podem usá-lo para aprender grandes modelos de linguagem e técnicas de clonagem de fala, e o código é de código aberto para experimentação prática.
  3. Diversão interativa
    Deixe que o sósia digital converse com seus amigos usando sua voz e seu tom para aumentar o entretenimento.

 

QA

  1. O que acontece quando a quantidade de dados é baixa?
    Menos de 2.000 dados podem resultar em modelos imprecisos; recomenda-se preparar mais diálogos e discursos claros.
  2. Um computador comum pode executá-lo?
    Requer uma GPU com 16 GB de memória de vídeo, o que pode não ser possível em um computador comum, portanto, experimente no modo de baixa precisão.
  3. Qual é a semelhança entre os clones de som?
    As vozes geradas com as amostras de 5 segundos tinham uma similaridade de 951 TP3T, com entonação e emoção naturais.
Não pode ser reproduzido sem permissão:Chefe do Círculo de Compartilhamento de IA " WeClone: treinamento de doppelgangers digitais com registros de bate-papo e vozes do WeChat
pt_BRPortuguês do Brasil