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

기능 목록
- 채팅 로그 교육대규모 언어 모델을 미세 조정하여 Microsoft 채팅 대화 내용을 통해 사용자 음성을 모방합니다.
- 고품질 음성 복제0.5B 파라메트릭 모델과 5초 음성 샘플을 사용하여 최대 951 TP3T의 유사도를 가진 사운드를 생성합니다.
- 위챗 로봇 바인딩디지털 분할을 위챗에 연결하여 자동 문자 및 음성 답장을 지원하세요.
- 데이터 전처리 도구채팅 로그를 트레이닝 데이터로 변환하는 스크립트를 제공하여 민감한 정보를 기본적으로 필터링합니다.
- 모델 개인화 최적화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 모델이 사용됩니다. 허깅 페이스를 사용하여 다운로드할 수 있습니다:
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
허깅 페이스 버전의 경우
데이터 준비
- 채팅 로그 내보내기
- 다운로드
PyWxDump
를 클릭해 Microsoft 데이터베이스를 해독합니다. - '채팅 백업'을 클릭하고 CSV 형식을 선택하여 연락처 또는 그룹 채팅을 내보내세요.
- 내보낸
wxdump_tmp/export/csv
폴더를./data/csv
. - 예제 데이터는
data/example_chat.csv
.
- 데이터 처리
스크립트를 JSON 형식으로 실행합니다:
./make_dataset/csv_to_json.py
휴대폰 번호 및 ID 번호와 같은 민감한 정보에 대한 기본 필터링. 이 정보는 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의 유사도로 억양과 감정을 유지합니다.
바인딩 위챗 로봇
- 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의 기본 미세 조정에는 16GB의 비디오 메모리가 필요합니다.
- 기타 옵션:
- QLoRA(4비트 정밀도): 6GB(7B 모델)~48GB(70B 모델).
- 전체 파라메트릭 트림(16비트): 60GB(7B)~600GB(70B).
- GPU를 권장하며, 비디오 메모리가 부족하면 정밀도를 낮추거나 멀티 카드를 사용할 수 있습니다.
팁 및 유용한 정보
- 데이터의 양은 최소 2,000개 이상이며, 품질이 높을수록 좋습니다.
- 음성 샘플은 선명해야 하며 배경 소음을 피해야 합니다.
- 테스트 모델 사용 가능
web_demo.py
어쩌면test_model.py
.
완료되면 디지털 도플갱어가 자동으로 채팅을 하고 WeChat에서 음성으로 답장할 수 있으며, 그 사람과 매우 가까운 결과를 얻을 수 있습니다.
애플리케이션 시나리오
- 데일리 어시스턴트
디지털 분할은 바쁠 때 친구의 인사말에 자동으로 응답하는 등 WeChat 메시지에 응답하는 데 도움이 될 수 있습니다. - 기술 실무
개발자는 이를 사용하여 대규모 언어 모델과 음성 복제 기술을 학습할 수 있으며, 코드는 실습을 위한 오픈 소스로 제공됩니다. - 재미있는 인터랙티브
디지털 도플갱어가 내 목소리와 어조로 친구들과 채팅을 하며 즐거움을 더할 수 있습니다.
QA
- 데이터 양이 부족하면 어떻게 되나요?
2000개 미만의 데이터는 부정확한 모델로 이어질 수 있으므로 더 많은 대화와 명확한 음성을 준비하는 것이 좋습니다. - 일반 컴퓨터에서 실행할 수 있나요?
16GB의 비디오 메모리가 있는 GPU가 필요하며, 일반 컴퓨터에서는 불가능할 수 있으므로 저정밀 모드에서 사용해 보세요. - 사운드 클론은 얼마나 비슷한가요?
5초 샘플로 생성된 음성은 95%의 유사도를 보였으며, 자연스러운 억양과 감정을 가지고 있었습니다.
© 저작권 정책
기사 저작권 AI 공유 서클 모두 무단 복제하지 마세요.
관련 문서
댓글 없음...