GPT2- 차이나
설명
- Bert Tokenizer 또는 BPE Tokenizer를 사용하는 GPT2 교육 코드의 중국어 버전. Huggingface Team Transformers의 매우 멋진 저장소를 기반으로합니다. 시, 뉴스, 소설 또는 일반 언어 모델을 쓸 수 있습니다. char 레벨, 워드 레벨 및 BPE 레벨을 지원합니다. 대형 훈련 코퍼스를 지원하십시오.
- 중국 GPT2 교육 코드는 BERT의 토큰 화기 또는 문장의 BPE 모델을 사용합니다 (Kangzhonghua의 기여 덕분에 BPE 모델을 구현하려면 Train.py 코드를 약간 수정해야합니다). 시, 뉴스, 소설을 쓰거나 공통 언어 모델을 훈련시킬 수 있습니다. 단어 단위, 단어 분사 모드 또는 BPE 모드를 지원합니다 (약간 수정 된 Train.py 코드가 필요함). 대형 코퍼스 훈련을 지원합니다.
업데이트 04.11.2024
- 이 프로젝트에주의를 기울여 주셔서 대단히 감사합니다. Chatgpt가 출시 된 이후,이 프로젝트는 다시 관심을 끌었습니다. 이 프로젝트 자체는 내가 혼자서 Pytorch를 배울 수있는 교육 프로그램이며, 장기 유지 보수 및 업데이트를 할 의도가 없습니다. Big Model LLM에 관심이 있다면 저에게 이메일을 보내 ([email protected])로 이메일을 보내 그룹에 가입하여 의사 소통하거나 논의 할 수 있습니다.
업데이트 02.06.2021
이 프로젝트는 일반 중국 GPT-2 미리 훈련 된 모델, 일반 중국 GPT-2 미리 훈련 된 소규모 모델, 중국 가사 GPT-2 미리 훈련 된 모델 및 고전적인 중국 GPT-2 미리 훈련 된 모델을 추가했습니다. 이 모델은 UER-PY 프로젝트에 의해 교육을 받았으며이를 사용할 수 있습니다. 또한이 모델은 Huggingface 모델 허브에 업로드됩니다. 이 모델에 대한 자세한 내용은 GPT2-Chinese-CluecorpusSmall, GPT2-Distil-Chinese-CluecorpusSmall, GPT2- 중국-리크 및 GPT2- 중국인을 참조하십시오.
모든 모델을 사용하여 생성 할 때 다음과 같은 입력 된 텍스트 전에 시작 기호를 추가해야합니다. "가장 아름다운 것은 비오는 날이 아니라, 당신에게서 탈출 한 처마"에 들어가려면, 올바른 형식은 "[CLS] 가장 아름다운 것은 비오는 날이 아니라, 당신에게서 탈출 한 처마입니다.
업데이트 11.03.2020
이 프로젝트는 고대시 GPT-2 미리 훈련 된 모델과 Couplet GPT-2 사전 훈련 된 모델을 추가했습니다. 이 모델은 UER-PY 프로젝트에 의해 교육을 받았으며이를 사용할 수 있습니다. 또한이 모델은 Huggingface 모델 허브에 업로드됩니다. 이 모델에 대한 자세한 내용은 GPT2-Chinese-Poem 및 GPT2-Chinese-Couplet을 참조하십시오.
고대시 모델을 사용하여 생성 할 때는 다음과 같은 입력 된 텍스트 전에 시작 기호를 추가해야합니다.
Couplet 모델 교육에 사용되는 코퍼스 형식은 "상위 커플 롤러 커플 렛"입니다. Couplet 모델을 사용하여 생성 할 때 "Danfeng River Lengren Chu Go-"를 입력하려면 시작 문자를 추가해야합니다. 올바른 형식은 "[CLS] Danfeng River Lengren Chu Go-"입니다.
뉴스 08.11.2020
- CDIAL-GPT (이 코드로로드 될 수 있음)가 게시되었습니다. 이 프로젝트에는 엄격하게 정리 된 대규모 오픈 도메인 중국 대화 데이터 세트가 포함되어 있습니다. 이 프로젝트에는 또한이 데이터 세트와 생성 된 샘플에 대해 교육 된 GPT 대화 미리 훈련 된 모델도 포함되어 있습니다. 모두 방문을 환영합니다.
뉴스 12.9.2019
- 새로운 프로젝트 GPT2-chitchat은 부분적 으로이 프로젝트의 코드를 기반으로 릴리스되었습니다. 여기에는 GPT2 대화 모델을위한 코드 및 교육 모델이 포함되어 있으며 샘플을 생성합니다. 모두 방문을 환영합니다.
뉴스 12.7.2019
- 새로운 Project Decoders-Chinese-TF2.0은 GPT2에 대한 중국 교육을 지원하는데, 이는 사용하기가 간단하고 다양한 문제를 쉽게 원인이되지 않습니다. 여전히 테스트 단계에 있으며 모든 사람들이 의견을 제시 할 수 있습니다.
뉴스 11.9
- GPT2-ML (이 프로젝트와 직접 연관성이 없음)이 출시되었으며 1.5B 중국 GPT2 모델이 포함되어 있습니다. 관심이 있거나 필요한 경우이 프로젝트에서 지원하는 Pytorch 형식으로 전환하여 추가 교육 또는 세대 테스트를 수행 할 수 있습니다.
10.25 업데이트
- 이 프로젝트의 첫 번째 미리 훈련 된 모델이 발표되었으며 산문 세대 모델입니다. 자세한 내용은 readme 모델 공유 섹션을 확인하십시오.
프로젝트 상태
- 이 프로젝트 발표 당시 중국 GPT2 자원은 거의 0이었고 상황은 다릅니다. 둘째, 프로젝트 기능은 기본적으로 안정적 이므로이 프로젝트는 일시적으로 중지되었습니다. 이 코드를 작성하려는 원래 의도는 Pytorch를 사용하는 연습이었습니다. 나중 단계에서 약간의 일을하더라도 여전히 많은 미성숙 한 측면이 있었으므로 이해하십시오.
사용 방법
- 프로젝트 루트 디렉토리에서 데이터 폴더를 만듭니다. Train.json이라는 이름으로 교육용 코퍼스를 데이터 디렉토리에 넣으십시오. Train.json은 JSON 목록이며 목록의 각 요소는 훈련 할 기사의 텍스트 내용입니다 (파일 링크가 아님) .
- Train.py 파일을 실행하고 확인 -aw를 확인하여 데이터를 자동으로 전처리하십시오.
- 전처리가 완료되면 교육이 자동으로 수행됩니다.
텍스트를 생성하십시오
python ./generate.py --length=50 --nsamples=4 --prefix=xxx --fast_pattern --save_samples --save_samples_path=/mnt/xx
- -FAST_PATTERN (LEECP8에 의해 기여) : 생성 된 길이 매개 변수가 비교적 작고 속도가 기본적으로 다르지 않으면 개인적으로 길이 = 250을 테스트했습니다. 2 초 더 빠르므로-fast_pattern이 추가되지 않으면 기본적으로 사용되지 않습니다.
- ---save_samples : 기본적으로 출력 샘플은 콘솔에 직접 인쇄됩니다. 이 매개 변수를 전달하면 루트 디렉토리의 샘플 에 저장됩니다.
- -save_samples_path : 저장된 디렉토리를 직접 지정할 수 있습니다. 기본적으로 다단계 디렉토리를 재귀 적으로 만들 수 있습니다. 파일 이름을 전달할 수 없습니다. 파일 이름은 기본적으로 samples.txt 입니다.
파일 구조
- 생성.
- Train_Single.py는 개별 요소의 큰 목록 (예 : 하늘에 책을 훈련하는 등)에 사용할 수있는 Train.py의 연장입니다.
- Eval.Py는 생성 된 모델의 PPL 점수를 평가하는 데 사용됩니다.
- generate_texts.py는 generate.py의 확장입니다. 목록의 시작 키워드로 여러 문장을 생성하고 파일로 출력 할 수 있습니다.
- Train.json은 참조를위한 훈련 샘플의 형식 예입니다.
- 캐시 폴더에는 몇 가지 BERT 어휘가 포함되어 있습니다. make_vocab.py는 train.json corpus 파일에서 어휘를 만드는 데 도움이되는 스크립트입니다. vocab.txt는 원래 Bert Vocab, vocab_all.txt가 추가 고대 어휘를 추가했으며 vocab_small.txt는 작은 어휘입니다.
- 토큰 화 폴더는 기본 버트 토큰 화기, Bert Tokenizer 및 BPE 토큰 화기를 포함하여 선택할 수있는 세 가지 유형의 토큰 화제입니다.
- 스크립트에는 샘플 교육 및 생성 스크립트가 포함됩니다
알아채다
- 이 프로젝트는 Bert 's Tokenizer를 사용하여 중국어를 처리합니다.
- Tokenizer 분사 버전을 사용하지 않고 사전에 단어를 분류 할 필요가 없다면 Tokenizer를 통해 나누는 데 도움이됩니다.
- Tokenizer 분사 버전을 사용하는 경우 캐시 폴더의 make_vocab.py 파일을 사용하여 코퍼스의 어휘 목록을 작성하는 것이 가장 좋습니다.
- 모델은 그 자체로 계산해야합니다. 사전 훈련을 완료 한 경우 자유롭게 의사 소통을하십시오.
- 메모리가 매우 크거나 코퍼스가 작 으면 Train.py의 빌드 파일에서 해당 코드를 변경하고 분할하지 않고 코퍼스를 직접 전처리 할 수 있습니다.
- BPE Tokenizer를 사용하는 경우 자신의 중국어 단어 목록을 만들어야합니다.
재료
- 여기와 여기에서 다운로드 할 수 있습니다.
- Doupo Sky Corpus는 여기에서 다운로드 할 수 있습니다.
FP16 및 구배 축적지지
- Train.py 파일에 FP16과 그라디언트 축적 지원을 추가했습니다. Apex를 설치하고 FP16이 무엇인지 알고 있으면 변수 FP16 = True를 변경하여 활성화 할 수 있습니다. 그러나 현재 FP16은 알려지지 않은 이유로 수렴하지 않을 수 있습니다.
저자에게 연락하십시오
인용
@misc{GPT2-Chinese,
author = {Zeyao Du},
title = {GPT2-Chinese: Tools for training GPT2 model in Chinese language},
year = {2019},
publisher = {GitHub},
journal = {GitHub repository},
howpublished = {url{https://github.com/Morizeyao/GPT2-Chinese}},
}
모델 공유
| 모델 이름 | 모델 소개 | 공유 | 링크 주소 1 | 링크 주소 2 |
|---|
| 산문 모델 | 130MB의 유명한 산문, 정서적 산문 및 산문시 훈련을 사용하십시오. | 후키 | Baidu netdisk net fpyu】 | gdrive |
| 시 모델 | 180MB에서 약 80 만 명의 고대시를 사용한 훈련 결과. | HHOU435 | Baidu Netdisk net 7fev】 | gdrive |
| 커플 모델 | 약 700,000 커플의 40MB를 사용한 훈련 수입. | HHOU435 | Baidu NetDisk net I5N0】 | gdrive |
| 일반 중국 모델 | Cluecorpussmall Corpus 교육을 사용하여 얻은 결과. | HHOU435 | Baidu Netdisk [N3S8] | gdrive |
| 일반 중국 소규모 모델 | Cluecorpussmall Corpus 교육을 사용하여 얻은 결과. | HHOU435 | Baidu NetDisk [RPJK] | gdrive |
| 중국 가사 모델 | 훈련 결과는 140MB의 약 150,000 개의 중국 가사를 사용하여 얻었습니다. | HHOU435 | Baidu NetDisk net 0QNN】 | gdrive |
| 고전적인 중국 모델 | 1.8GB를 사용하여 약 3 백만 개의 고전적인 중국 훈련 조각을 얻었습니다. | HHOU435 | Baidu Netdisk [EK2Z] | gdrive |
다음은 열정적이고 관대 한 Git 친구들의 교육에서 얻은 모델 파일이며, 모든 친구에게 사용됩니다. 동시에 모든 파트너는 여기에서 훈련 한 모델을 공개 할 수 있습니다.
데모
- 이 창고의 수정 된 코드를 기반으로 사용자 Jameshujy가 훈련 한 모델은 규제 구절 및 Quatrains의 배경으로 사용됩니다. Nine Songs Poetry Generator의 새로운 버전이 출시되었습니다.
- Leemengtaiwan이 제공 한이 회사는 GPT-2에 대한 직접 소개와 자체 정보 메커니즘을 시각화하는 방법을 제공하는 기사를 제공합니다. Colab 노트북 및 모델은 모든 사용자가 한 번에 새로운 예제를 생성 할 수 있도록 제공됩니다.
샘플을 생성하십시오
-다음은 Hughqiu가 기여한 문학 에세이 세대의 예이며, 모델은 모델 공유 목록에서 공유되었습니다. 코퍼스 130MB, 배치 크기 16, 깊이 10 층에서 10 라운드의 훈련. 


- 다음은 doupo cangqiong의 샘플 생성입니다. 약 50m 파라미터를 갖는 GPT2는 32batch 크기의 16MB doupo cangqiong 소설 컨텐츠에 대해 훈련되었습니다. 여기 [Sep]은 새로운 라인을 의미합니다.

- 다음은 고대시의 세대 샘플로, 사용자 Jameshujy가 계산하고 기여합니다.


- 다음은 고대시 생성 후 샘플 세대로, 사용자 Jameshujy가 계산하고 기여합니다.



- 다음은 생성 된 스크립트의 샘플 텍스트로, 사용자 Chiangandy가 계산하고 기여합니다.
[startText] 사랑 게임의 음모는 피아노의 아버지와 딸 사이의 귀여운 사랑에 대한 이야기, 인생의 현실과 현실의 가치를 가진 청중, 일련의 사랑을 얻습니다. 1980 년대 주식 기록 매체는 네티즌이 공유했습니다. 상하이 Huaihe River의 큰 나라 인 2014 년 주요 제작자 Chen Layun의 브랜드 디렉터의 형제였습니다. 최전선 회사의 청소년은 경력을 가지고 있지 않았지만 Lan Zhengshi는 그것을 이해하기를 거부했습니다. Lan Yue의 도움 개념의 출현은 분명한 오해를 시작했으며 사업은 사랑의 강이되었습니다. 우발적 인 TV 시리즈에서 TV 시리즈는 운명을 바꿨습니다. 그들 중 세 명은 자동차 사고로 그들의 창조물에 배정되었습니다. 그들은 업계의 오해와 낮은 키 인재에 대해 물었다. Chen Zhao와 Tang Shishiyan은 완전히 다른 "2014 관계"를 시작했습니다. 두 사람은 상호 성격을 가졌으며 상호 치료를 받았습니다. 비록 90 년대 이후 세대 인 베이징 Huaqiao University와 Tang Ru와 Sheng과 같은 뛰어난 젊은이들이 기록한 작은 기숙사 여행 이었지만 사람들의 삶은 어떻게 그들의 소원에 반대하고 함께 창조 되었습니까? 그리고 왜 그들은 서로의 성공과 관심을 가지고 있었습니까? [endText]
[StartText] Learning Love는 주로 두 쌍의 Xiaoman 이야기를 들려줍니다. 말도 안되는 시험을 마치고 마침내 세 자녀를 선택하고 4 명의 자녀를 만들기 위해 사업을 시작했으며 대도시에서 성공적인 사업을 시작했습니다. 두 사업은 베이징에 합류했습니다. 일정 기간이 지난 후, 그들은 혼란과 차이로 인해 다른 것들을 얻었고 마침내 그들의 꿈에 대한 진정한 사랑을 얻었습니다. 스폰서 이상, TV 시리즈, 드라마 등과 같은 주요 기업가 인물의 개회식은 베이징에서 열렸습니다. 드라마는 하이난에서 3 명의 신규 이민자의 TV 관점을 기반으로합니다. 그것은 베이징과 코미디 세대에서 비 지체를 강화한 몇몇 젊은이들의 이야기를 들려줍니다. 중국의 도시화 인 베이징에서 베이징까지 독특한 이중 시대의 젊은이들과 함께 중국의 대도시는 개발이 중단되었습니다. 언어 도시의 변화와 함께 점진적인 라이프 스타일은 그들 자신의 방향으로 간단한 저속성을 무대에 올렸습니다. 현대 시대에 촬영됩니다. 이 도시에있는 방법? 차분한 도시는 도시의 스타일입니다. Zhang Jiahe는 작업 창출을 지원하며, 이는 공항 드라마 승무원 회의를 만들어야한다는 점입니다. 체스와 문화로 변신하는 사람들은 매우 독특하고 감각적이며, 얽혀 있고, 재미 있고, 아름다운 북동부와 본토에서 왔으며, 두 소녀는 음소거 소녀라고 부릅니다. 인터 짜는 사람들은 농담을했고 인상적인 기질로 인해 사람들이 매우 코미디처럼 보였습니다. 그들이 아는 것은 "북동부"외국 가족 지지자였으며, 그녀는 드라마를 읽는 데 잘 어울 렸습니다. 그 후, Qi Fei, Qi Fei, Fan er, Chu Yuezi 및 Bai Tianjie가 그를 사랑했던 사랑을 표현했습니다. 두 세대 사이의 우정은 쾌활하고 멋진 표현의 조합이없는 것 같습니다. [endText]
- 다음은 Leemengtaiwan이 제공 한 Jin Yong과 Wu Qi 소설의 세대의 예입니다. 모델 크기는 약 82m이고 언어 자료는 50MB이고 배치 크기는 16입니다. GPT-2를 소개하는 기사와 자체 변환 메커니즘을 시각화하는 방법을 제공합니다. Colab 노트북 및 모델은 모든 사용자가 한 번에 새로운 예제를 생성 할 수 있도록 제공됩니다.



