WeClone: WeChat 채팅 로그와 음성으로 디지털 도플갱어 훈련하기

최신 AI 리소스4 개월 전에 게시 됨 AI 공유 서클
2.7K 00

일반 소개

WeClone은 사용자가 대규모 언어 모델 및 음성 합성 기술과 결합된 WeChat 채팅 로그와 음성 메시지를 사용하여 개인화된 디지털 도플갱어를 만들 수 있는 오픈 소스 프로젝트입니다. 이 프로젝트는 사용자의 채팅 습관을 분석하여 모델을 학습시키고, 적은 수의 음성 샘플로 사실적인 음성 클론을 생성할 수도 있습니다. 최종적으로 디지털 도플갱어를 WeChat 봇에 연결하여 텍스트와 음성에 자동 응답할 수 있습니다. 이 도구는 WeChat에서 인공지능 비서를 사용하거나 인공지능 기술을 배우고자 하는 사람들에게 적합합니다. 이 코드는 완전히 공개되어 있으며 많은 기술 애호가와 개발자들의 참여를 이끌어내고 있습니다.

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

 

기능 목록

  • 채팅 로그 교육대규모 언어 모델을 미세 조정하여 Microsoft 채팅 대화 내용을 통해 사용자 음성을 모방합니다.
  • 고품질 음성 복제0.5B 파라메트릭 모델과 5초 음성 샘플을 사용하여 최대 951 TP3T의 유사도를 가진 사운드를 생성합니다.
  • 위챗 로봇 바인딩디지털 분할을 위챗에 연결하여 자동 문자 및 음성 답장을 지원하세요.
  • 데이터 전처리 도구채팅 로그를 트레이닝 데이터로 변환하는 스크립트를 제공하여 민감한 정보를 기본적으로 필터링합니다.
  • 모델 개인화 최적화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 모델이 사용됩니다. 허깅 페이스를 사용하여 다운로드할 수 있습니다:
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

매직 매치 모델을 교체해야 합니다. 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

휴대폰 번호 및 ID 번호와 같은 민감한 정보에 대한 기본 필터링. 이 정보는 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의 유사도로 억양과 감정을 유지합니다.

바인딩 위챗 로봇

  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의 기본 미세 조정에는 16GB의 비디오 메모리가 필요합니다.
  • 기타 옵션:
  • QLoRA(4비트 정밀도): 6GB(7B 모델)~48GB(70B 모델).
  • 전체 파라메트릭 트림(16비트): 60GB(7B)~600GB(70B).
  • GPU를 권장하며, 비디오 메모리가 부족하면 정밀도를 낮추거나 멀티 카드를 사용할 수 있습니다.

팁 및 유용한 정보

  • 데이터의 양은 최소 2,000개 이상이며, 품질이 높을수록 좋습니다.
  • 음성 샘플은 선명해야 하며 배경 소음을 피해야 합니다.
  • 테스트 모델 사용 가능 web_demo.py 어쩌면 test_model.py.

완료되면 디지털 도플갱어가 자동으로 채팅을 하고 WeChat에서 음성으로 답장할 수 있으며, 그 사람과 매우 가까운 결과를 얻을 수 있습니다.

 

애플리케이션 시나리오

  1. 데일리 어시스턴트
    디지털 분할은 바쁠 때 친구의 인사말에 자동으로 응답하는 등 WeChat 메시지에 응답하는 데 도움이 될 수 있습니다.
  2. 기술 실무
    개발자는 이를 사용하여 대규모 언어 모델과 음성 복제 기술을 학습할 수 있으며, 코드는 실습을 위한 오픈 소스로 제공됩니다.
  3. 재미있는 인터랙티브
    디지털 도플갱어가 내 목소리와 어조로 친구들과 채팅을 하며 즐거움을 더할 수 있습니다.

 

QA

  1. 데이터 양이 부족하면 어떻게 되나요?
    2000개 미만의 데이터는 부정확한 모델로 이어질 수 있으므로 더 많은 대화와 명확한 음성을 준비하는 것이 좋습니다.
  2. 일반 컴퓨터에서 실행할 수 있나요?
    16GB의 비디오 메모리가 있는 GPU가 필요하며, 일반 컴퓨터에서는 불가능할 수 있으므로 저정밀 모드에서 사용해 보세요.
  3. 사운드 클론은 얼마나 비슷한가요?
    5초 샘플로 생성된 음성은 95%의 유사도를 보였으며, 자연스러운 억양과 감정을 가지고 있었습니다.
© 저작권 정책

관련 문서

댓글 없음

댓글에 참여하려면 로그인해야 합니다!
지금 로그인
없음
댓글 없음...