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

Список функций
- Обучение ведению журнала чата: Тонкая настройка макроязыковых моделей для имитации пользовательской речи с помощью транскриптов микроканальных чатов.
- Высококачественное клонирование речи: Генерируйте звуки со сходством до 951 TP3T, используя параметрическую модель 0,5B и 5-секундный образец речи.
- Робот-переплетчик WeChat: Подключите цифровой сплит к WeChat для поддержки автоматических текстовых и голосовых ответов.
- Инструменты для предварительной обработки данных: Предоставьте скрипты для преобразования журналов чата в учебные данные, фильтруя конфиденциальную информацию по умолчанию.
- Оптимизация персонализации модели: Поддерживает технологию тонкой настройки LoRA, позволяющую сделать модель более совместимой с языком пользователя.
Использование помощи
WeClone требует некоторых технических навыков, таких как Python и Git, но вот подробное пошаговое руководство, которое поможет вам начать работу, от установки до использования.
Процесс установки
- проект клонирования
Откройте терминал и введите:
git clone https://github.com/xming521/WeClone.git
Затем перейдите в каталог проекта:
cd WeClone
- Настройка среды
Для этого проекта рекомендуется использовать Python 3.9.uv
Среда управления, команда установки выглядит следующим образом:
uv venv .venv --python=3.9
source .venv/bin/activate # Linux/Mac
.venv\Scripts\activate # Windows
- Установка зависимостей
После активации среды запустите ее:
uv pip install --group main -e .
Примечание: сюда не входит голосовое клонирование xcodec
Зависимость, при необходимости может быть установлена отдельно.
- Скачать модели
По умолчанию используется модель 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
для версии с обнимающимся лицом.
Подготовка данных
- Экспорт журналов чата
- загрузка
PyWxDump
расшифровка базы данных microsoft. - Нажмите "Резервное копирование чата" и выберите формат CSV для экспорта контактов или групповых чатов.
- Поместите экспортированный
wxdump_tmp/export/csv
Папка в./data/csv
. - Данные для примера находятся в
data/example_chat.csv
.
- Обработка данных
Переведите сценарий в формат JSON:
./make_dataset/csv_to_json.py
Фильтрация по умолчанию конфиденциальной информации, такой как номера мобильных телефонов и идентификационные номера. Его можно найти в разделе blocked_words.json
При добавлении запрещенного слова удаляется все предложение, содержащее запрещенное слово.
Тонкая настройка моделирования
- Параметры конфигурации
- компилятор
settings.json
Укажите путь к модели. - адаптировать
per_device_train_batch_size
ответить пениемgradient_accumulation_steps
Адаптация видеопамяти. - Приспособление к объему данных
num_train_epochs
(раунды) иlora_rank
что позволяет избежать чрезмерной подгонки.
- обучение по одной карте
python src/train_sft.py
Авторы провели обучение на 20 000 данных, и потери снизились до 3,5, что дало хорошие результаты.
- Дока-тренинг
Установите DeepSpeed:
uv pip install deepspeed
Запустите обучение для нескольких видеокарт (замените "Количество используемых видеокарт"):
deepspeed --num_gpus=使用显卡数量 src/train_sft.py
клонирование речи
- Подготовьте 5+ секундное голосовое сообщение для WeChat, чтобы поместить его в
WeClone-audio
Папка. - Запустите соответствующие скрипты (требуется установка)
xcodec
), созданный звук будет сохранен в этой папке. - Голос сохраняет интонации и эмоции, схожесть до 951 TP3T.
Робот для привязки WeChat
- Развертывание AstrBot
- Скачайте и установите AstrBot (поддерживает WeChat, QQ и другие платформы).
- Настройте платформу для обмена сообщениями (например, WeChat).
- Запуск службы API
python src/api_service.py
По умолчанию используется адрес http://172.17.0.1:8005/v1
.
- Настройка 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 с результатами, очень близкими к реальному человеку.
сценарий применения
- Ежедневный помощник
Цифровой сплит может помочь вам отвечать на сообщения WeChat, например, автоматически отвечать на приветствие друга, когда вы заняты. - Технологическая практика
Разработчики могут использовать его для изучения больших языковых моделей и методов клонирования речи, а код открыт для практических экспериментов. - Веселый интерактив
Пусть цифровой двойник общается с вашими друзьями вашим голосом и интонациями, чтобы добавить развлечений.
QA
- Что происходит, когда объем данных невелик?
Менее 2000 данных могут привести к неточным моделям, поэтому рекомендуется подготовить больше диалогов и четкой речи. - Можно ли запустить его на обычном компьютере?
Требуется графический процессор с 16 Гб видеопамяти, что может быть невозможно на обычном компьютере, поэтому попробуйте его в режиме низкой точности. - Насколько похожи звуковые клоны?
Голоса, сгенерированные с помощью 5-секундных образцов, имели сходство 951 TP3T, с естественными интонациями и эмоциями.
© заявление об авторских правах
Авторское право на статью Круг обмена ИИ Пожалуйста, не воспроизводите без разрешения.
Похожие статьи
Нет комментариев...