WeClone: обучение цифровых двойников с помощью журналов чатов WeChat и голосов

Общее введение

WeClone - это проект с открытым исходным кодом, который позволяет пользователям создавать персонализированных цифровых двойников, используя журналы чатов WeChat и голосовые сообщения в сочетании с большими языковыми моделями и технологией синтеза речи. Проект может анализировать привычки пользователя в чате для обучения модели, а также генерировать реалистичные голосовые клоны с помощью небольшого количества образцов голоса. В конечном итоге цифровой двойник может быть привязан к боту WeChat, что позволит автоматически отвечать на текст и голос. Этот инструмент подойдет тем, кто хочет использовать ИИ-помощника в WeChat или изучать технологии ИИ. Код является полностью публичным и привлек к участию множество энтузиастов и разработчиков.

WeClone:用微信聊天记录和语音训练数字分身

 

Список функций

  • Обучение ведению журнала чата: Тонкая настройка макроязыковых моделей для имитации пользовательской речи с помощью транскриптов микроканальных чатов.
  • Высококачественное клонирование речи: Генерируйте звуки со сходством до 951 TP3T, используя параметрическую модель 0,5B и 5-секундный образец речи.
  • Робот-переплетчик WeChat: Подключите цифровой сплит к WeChat для поддержки автоматических текстовых и голосовых ответов.
  • Инструменты для предварительной обработки данных: Предоставьте скрипты для преобразования журналов чата в учебные данные, фильтруя конфиденциальную информацию по умолчанию.
  • Оптимизация персонализации модели: Поддерживает технологию тонкой настройки LoRA, позволяющую сделать модель более совместимой с языком пользователя.

 

Использование помощи

WeClone требует некоторых технических навыков, таких как Python и Git, но вот подробное пошаговое руководство, которое поможет вам начать работу, от установки до использования.

Процесс установки

  1. проект клонирования
    Откройте терминал и введите:
git clone https://github.com/xming521/WeClone.git

Затем перейдите в каталог проекта:

cd WeClone
  1. Настройка среды
    Для этого проекта рекомендуется использовать Python 3.9. uv Среда управления, команда установки выглядит следующим образом:
uv venv .venv --python=3.9
source .venv/bin/activate  # Linux/Mac
.venv\Scripts\activate     # Windows
  1. Установка зависимостей
    После активации среды запустите ее:
uv pip install --group main -e .

Примечание: сюда не входит голосовое клонирование xcodec Зависимость, при необходимости может быть установлена отдельно.

  1. Скачать модели
    По умолчанию используется модель ChatGLM3-6B. Ее можно загрузить с помощью программы Hugging Face:
git lfs install
git clone https://huggingface.co/THUDM/chatglm3-6b

Если загрузка идет медленно, воспользуйтесь сообществом Magic Hitch:

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

Модель Magic Match нуждается в замене modeling_chatglm.py для версии с обнимающимся лицом.

Подготовка данных

  1. Экспорт журналов чата
  • загрузка PyWxDumpрасшифровка базы данных microsoft.
  • Нажмите "Резервное копирование чата" и выберите формат CSV для экспорта контактов или групповых чатов.
  • Поместите экспортированный wxdump_tmp/export/csv Папка в ./data/csv.
  • Данные для примера находятся в data/example_chat.csv.
  1. Обработка данных
    Переведите сценарий в формат JSON:
./make_dataset/csv_to_json.py

Фильтрация по умолчанию конфиденциальной информации, такой как номера мобильных телефонов и идентификационные номера. Его можно найти в разделе blocked_words.json При добавлении запрещенного слова удаляется все предложение, содержащее запрещенное слово.

Тонкая настройка моделирования

  1. Параметры конфигурации
  • компилятор settings.jsonУкажите путь к модели.
  • адаптировать per_device_train_batch_size ответить пением gradient_accumulation_steps Адаптация видеопамяти.
  • Приспособление к объему данных num_train_epochs(раунды) и lora_rankчто позволяет избежать чрезмерной подгонки.
  1. обучение по одной карте
python src/train_sft.py

Авторы провели обучение на 20 000 данных, и потери снизились до 3,5, что дало хорошие результаты.

  1. Дока-тренинг
    Установите DeepSpeed:
uv pip install deepspeed

Запустите обучение для нескольких видеокарт (замените "Количество используемых видеокарт"):

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

клонирование речи

  • Подготовьте 5+ секундное голосовое сообщение для WeChat, чтобы поместить его в WeClone-audio Папка.
  • Запустите соответствующие скрипты (требуется установка) xcodec), созданный звук будет сохранен в этой папке.
  • Голос сохраняет интонации и эмоции, схожесть до 951 TP3T.

Робот для привязки WeChat

  1. Развертывание AstrBot
  • Скачайте и установите AstrBot (поддерживает WeChat, QQ и другие платформы).
  • Настройте платформу для обмена сообщениями (например, WeChat).
  1. Запуск службы API
python src/api_service.py

По умолчанию используется адрес http://172.17.0.1:8005/v1.

  1. Настройка AstrBot
  • Добавьте поставщика услуг и выберите OpenAI в качестве типа.
  • API Базовый URL для локального адреса, модель для gpt-3.5-turbo.
  • Закрыть вызов инструмента: отправить команду /tool off reminder.
  • Установите слово системной подсказки, соответствующее тому, которое используется для тонкой настройки.

требования к оборудованию

  • Тонкая настройка по умолчанию с ChatGLM3-6B и LoRA требует 16 ГБ видеопамяти.
  • Другие варианты:
  • QLoRA (4-битная точность): от 6 ГБ (модель 7B) до 48 ГБ (модель 70B).
  • Полная параметрическая обрезка (16 бит): от 60 ГБ (7 Б) до 600 ГБ (70 Б).
  • Рекомендуется использовать графический процессор, недостаток видеопамяти можно скорректировать в сторону понижения точности или использовать мультикарту.

Советы и рекомендации

  • Объем данных - не менее 2 000 записей, чем выше качество, тем лучше.
  • Образцы речи должны быть четкими и не содержать фоновых шумов.
  • Доступна тестовая модель web_demo.py возможно test_model.py.

После этого ваш цифровой двойник сможет автоматически общаться и отвечать голосом в WeChat с результатами, очень близкими к реальному человеку.

 

сценарий применения

  1. Ежедневный помощник
    Цифровой сплит может помочь вам отвечать на сообщения WeChat, например, автоматически отвечать на приветствие друга, когда вы заняты.
  2. Технологическая практика
    Разработчики могут использовать его для изучения больших языковых моделей и методов клонирования речи, а код открыт для практических экспериментов.
  3. Веселый интерактив
    Пусть цифровой двойник общается с вашими друзьями вашим голосом и интонациями, чтобы добавить развлечений.

 

QA

  1. Что происходит, когда объем данных невелик?
    Менее 2000 данных могут привести к неточным моделям, поэтому рекомендуется подготовить больше диалогов и четкой речи.
  2. Можно ли запустить его на обычном компьютере?
    Требуется графический процессор с 16 Гб видеопамяти, что может быть невозможно на обычном компьютере, поэтому попробуйте его в режиме низкой точности.
  3. Насколько похожи звуковые клоны?
    Голоса, сгенерированные с помощью 5-секундных образцов, имели сходство 951 TP3T, с естественными интонациями и эмоциями.
© заявление об авторских правах

Похожие статьи

Нет комментариев

Вы должны войти в систему, чтобы участвовать в комментариях!
Войти сейчас
нет
Нет комментариев...