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.
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
- 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
- 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
- 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.
- 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
- 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
.
- 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
- Parâmetros de configuração
- compilador
settings.json
especifique o caminho do modelo. - adaptar
per_device_train_batch_size
responder cantandogradient_accumulation_steps
Adaptação da memória de vídeo. - Ajuste ao volume de dados
num_train_epochs
(rodadas) elora_rank
evitando o ajuste excessivo.
- 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.
- 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
- 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).
- Iniciando o serviço de API
python src/api_service.py
O endereço padrão é http://172.17.0.1:8005/v1
.
- 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
talveztest_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
- 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. - 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. - Diversão interativa
Deixe que o sósia digital converse com seus amigos usando sua voz e seu tom para aumentar o entretenimento.
QA
- 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. - 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. - 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.