중국어 간체 |
PaddleNLP 는 Paddle 딥 러닝 프레임워크를 기반으로 하는 LLM(대형 언어 모델) 개발 키트로, 다양한 하드웨어에서 효율적인 대형 모델 훈련, 무손실 압축 및 고성능 추론을 지원합니다. PaddleNLP는 단순성, 사용 용이성 및 최고의 성능 이라는 특성을 가지고 있으며 개발자가 대형 모델의 효율적인 산업 수준 응용 프로그램을 구현하도록 돕기 위해 최선을 다하고 있습니다.
2024.08.08 "산업 수준의 대규모 언어 모델 개발을 위한 강력한 도구인 PaddleNLP 3.0이 출시되었습니다." 전체 훈련, 압력 및 푸시 프로세스가 통합되어 주류 모델을 완벽하게 포괄합니다. 대형 모델은 자동으로 병렬화되며, 수천억 개의 모델을 훈련하고 푸시하는 전체 프로세스를 즉시 사용할 수 있습니다. 산업 등급의 고성능 미세 조정 및 정렬 솔루션, 최고의 압축 추론 및 다중 하드웨어 적응을 제공합니다. 산업 수준의 지능형 비서, 콘텐츠 생성, 지식 Q&A, 핵심 정보 추출 등의 응용 시나리오를 다룹니다. 생방송 시간 : 8월 22일(목) 19:00. 등록 링크: https://www.wjx.top/vm/Y2f7FFY.aspx?udsid=143844
2024.06.27 PaddleNLP v3.0 베타 : 대형 모델을 수용하고 완전히 업그레이드된 경험을 경험해보세요. 국내 컴퓨팅 칩에 대한 전체 프로세스 액세스를 달성하기 위해 대형 모델 제품군을 통합합니다. 플라잉 패들 4D 병렬 구성, 효율적인 미세 조정 전략, 효율적인 정렬 알고리즘 및 고성능 추론과 같은 대형 모델 산업 수준 애플리케이션 프로세스를 완벽하게 지원합니다. - 매우 수렴적인 RsLoRA+ 알고리즘을 개발했으며, 자동 확장 및 축소 저장 메커니즘 통합 체크포인트와 보편적으로 지원되는 FastFFN 및 FusedQKV는 대규모 모델 교육 및 프로모션을 지원하여 주류 모델을 지속적으로 업데이트하고 효율적인 솔루션을 제공합니다.
2024.04.24 PaddleNLP v2.8 : 자체 개발한 극도의 수렴성을 갖춘 RsLoRA+ 알고리즘은 PEFT 훈련 수렴 속도와 훈련 효과를 크게 향상시키며, RLHF PPO 알고리즘에 고성능 생성 가속을 도입하여 PPO 훈련의 생성 속도 병목 현상을 해소합니다. PPO 교육 성과가 훨씬 앞서 있습니다. FastFFN 및 FusedQKV와 같은 여러 대규모 모델 교육 성능 최적화 방법을 보편적으로 지원하여 대규모 모델 교육을 더 빠르고 안정적으로 만듭니다.
NVIDIA GPU, Kunlun XPU, Shengteng NPU, Suiyuan GCU, Haiguang DCU 및 기타 하드웨어에 대한 대규모 모델 및 자연어 이해 모델 훈련 및 추론을 지원합니다. 제품군 인터페이스는 빠른 하드웨어 전환을 지원하여 하드웨어 전환 R&D 비용을 크게 줄입니다. 현재 지원되는 자연어 이해 모델: 멀티 하드웨어 자연어 이해 모델 목록
순수 데이터 병렬 전략, 그룹화된 매개변수 슬라이싱 데이터 병렬 전략, 텐서 모델 병렬 전략 및 파이프라인 모델 병렬 전략의 4D 고성능 교육을 지원합니다. Trainer는 복잡한 분산 조합으로 인한 사용 비용을 줄이기 위해 분산 전략 구성을 지원합니다. 모델 매개변수 분포에서 동적 확장 및 수축 훈련을 지원하여 하드웨어 전환으로 인한 마이그레이션 비용을 줄입니다.
미세 조정 알고리즘은 제로 채우기 데이터 스트림과 FlashMask 고성능 연산자를 깊이 결합하여 유효하지 않은 훈련 데이터의 채우기 및 계산을 줄이고 미세 조정 훈련의 처리량을 크게 향상시킵니다.
대형 모델 제품군의 고성능 추론 모듈에는 동적 삽입 및 전체 링크 연산자 융합 전략이 내장되어 있어 병렬 추론 속도가 크게 향상됩니다. 기본 구현 세부 사항은 즉시 사용 가능한 고성능 병렬 추론 기능을 달성하기 위해 캡슐화됩니다.
모델 매개변수는 LLaMA 시리즈, Baichuan 시리즈, Bloom 시리즈, ChatGLM 시리즈, Gemma 시리즈, Mistral 시리즈, OPT 시리즈 및 Qwen 시리즈를 지원합니다. 세부 목록 [LLM] 모델 매개변수 지원 목록은 다음과 같습니다.
모델 시리즈 | 모델명 |
---|---|
야마 | 페이스북/llama-7b, 페이스북/llama-13b, 페이스북/llama-30b, 페이스북/llama-65b |
라마2 | 메타-라마/라마-2-7b, 메타-라마/라마-2-7b-chat, 메타-라마/Llama-2-13b, 메타-라마/Llama-2-13b-chat, 메타-라마/Llama- 2-70b, 메타-라마/라마-2-70b-채팅 |
라마3 | 메타-라마/메타-라마-3-8B, 메타-라마/메타-라마-3-8B-Instruct, 메타-라마/메타-라마-3-70B, 메타-라마/메타-라마-3-70B- 지시하다 |
라마3.1 | 메타-라마/메타-라마-3.1-8B, 메타-라마/메타-라마-3.1-8B-Instruct, 메타-라마/메타-라마-3.1-70B, 메타-라마/메타-라마-3.1-70B- 지시, 메타-라마/메타-라마-3.1-405B, 메타-라마/메타-라마-3.1-405B-지시, 메타-라마/라마-가드-3-8B |
라마3.2 | 메타-라마/라마-3.2-1B, 메타-라마/라마-3.2-1B-Instruct, 메타-라마/Llama-3.2-3B, 메타-라마/Llama-3.2-3B-Instruct, 메타-라마/Llama- 가드-3-1B |
바이촨 | baichuan-inc/Baichuan-7B, baichuan-inc/Baichuan-13B-Base, baichuan-inc/Baichuan-13B-Chat |
바이촨2 | baichuan-inc/Baichuan2-7B-Base, baichuan-inc/Baichuan2-7B-Chat, baichuan-inc/Baichuan2-13B-Base, baichuan-inc/Baichuan2-13B-Chat |
꽃 | bigscience/bloom-560m, bigscience/bloom-560m-bf16, bigscience/bloom-1b1, bigscience/bloom-3b, bigscience/bloom-7b1, bigscience/bloomz-560m, bigscience/bloomz-1b1, bigscience/bloomz-3b, bigscience/bloomz-7b1-mt, bigscience/bloomz-7b1-p3, bigscience/bloomz-7b1, bellegroup/belle-7b-2m |
채팅GLM | THUDM/chatglm-6b, THUDM/chatglm-6b-v1.1 |
채팅GLM2 | THUDM/chatglm2-6b |
채팅GLM3 | THUDM/chatglm3-6b |
아체 | google/gemma-7b, google/gemma-7b-it, google/gemma-2b, google/gemma-2b-it |
미스트랄 | 미스트랄라이/미스트랄-7B-Instruct-v0.3, 미스트랄라이/미스트랄-7B-v0.1 |
믹스트랄 | mistralai/Mixtral-8x7B-Instruct-v0.1 |
고르다 | 페이스북/opt-125m, 페이스북/opt-350m, 페이스북/opt-1.3b, 페이스북/opt-2.7b, 페이스북/opt-6.7b, 페이스북/opt-13b, 페이스북/opt-30b, 페이스북/opt-66b , 페이스북/opt-iml-1.3b, opt-iml-max-1.3b |
퀀 | qwen/qwen-7b, qwen/qwen-7b-채팅, qwen/qwen-14b, qwen/qwen-14b-채팅, qwen/qwen-72b, qwen/qwen-72b-채팅, |
Qwen1.5 | Qwen/Qwen1.5-0.5B, Qwen/Qwen1.5-0.5B-Chat, Qwen/Qwen1.5-1.8B, Qwen/Qwen1.5-1.8B-Chat, Qwen/Qwen1.5-4B, Qwen/ Qwen1.5-4B-채팅, Qwen/Qwen1.5-7B, Qwen/Qwen1.5-7B-채팅, Qwen/Qwen1.5-14B, Qwen/Qwen1.5-14B-Chat, Qwen/Qwen1.5-32B, Qwen/Qwen1.5-32B-Chat, Qwen/Qwen1.5-72B, Qwen/Qwen1.5- 72B-채팅, Qwen/Qwen1.5-110B, Qwen/Qwen1.5-110B-채팅, Qwen/Qwen1.5-MoE-A2.7B, Qwen/Qwen1.5-MoE-A2.7B-채팅 |
Qwen2 | Qwen/Qwen2-0.5B, Qwen/Qwen2-0.5B-지시, Qwen/Qwen2-1.5B, Qwen/Qwen2-1.5B-지시, Qwen/Qwen2-7B, Qwen/Qwen2-7B-지시, Qwen/Qwen2- 72B, Qwen/Qwen2-72B-지시, Qwen/Qwen2-57B-A14B, Qwen/Qwen2-57B-A14B-지시 |
Qwen2-수학 | Qwen/Qwen2-Math-1.5B, Qwen/Qwen2-Math-1.5B-Instruct, Qwen/Qwen2-Math-7B, Qwen/Qwen2-Math-7B-Instruct, Qwen/Qwen2-Math-72B, Qwen/Qwen2- Math-72B-지시, Qwen/Qwen2-Math-RM-72B |
Qwen2.5 | Qwen/Qwen2.5-0.5B, Qwen/Qwen2.5-0.5B-지시, Qwen/Qwen2.5-1.5B, Qwen/Qwen2.5-1.5B-지시, Qwen/Qwen2.5-3B, Qwen/ Qwen2.5-3B-지시, Qwen/Qwen2.5-7B, Qwen/Qwen2.5-7B-지시, Qwen/Qwen2.5-14B, Qwen/Qwen2.5-14B-지시, Qwen/Qwen2.5-32B, Qwen/Qwen2.5-32B-지시, Qwen/Qwen2.5-72B, Qwen/Qwen2.5- 72B-지시하다 |
Qwen2.5-수학 | Qwen/Qwen2.5-Math-1.5B, Qwen/Qwen2.5-Math-1.5B-Instruct, Qwen/Qwen2.5-Math-7B, Qwen/Qwen2.5-Math-7B-Instruct, Qwen/Qwen2. 5-Math-72B, Qwen/Qwen2.5-Math-72B-지시, Qwen/Qwen2.5-Math-RM-72B |
Qwen2.5-코더 | Qwen/Qwen2.5-Coder-1.5B, Qwen/Qwen2.5-Coder-1.5B-Instruct, Qwen/Qwen2.5-Coder-7B, Qwen/Qwen2.5-Coder-7B-Instruct |
2위안 | IEITYuan/Yuan2-2B, IEITYuan/Yuan2-51B, IEITYuan/Yuan2-102B |
4D 병렬성 및 운영자 최적화는 LLaMA 시리즈, Baichuan 시리즈, Bloom 시리즈, ChatGLM 시리즈, Gemma 시리즈, Mistral 시리즈, OPT 시리즈 및 Qwen 시리즈를 지원했습니다. [LLM] 모델 4D 병렬성 및 운영자 지원 목록은 다음과 같습니다.
모델명/병렬 기능 지원 | 데이터 병렬성 | 텐서 모델 병렬성 | 매개변수 샤딩 병렬성 | 파이프라인 병렬성 | |||
---|---|---|---|---|---|---|---|
기본 능력 | 시퀀스 병렬성 | 1 단계 | 2단계 | 3단계 | |||
야마 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
퀀 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Qwen1.5 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Qwen2 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
믹스트랄(moe) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ? |
미스트랄 | ✅ | ✅ | ? | ✅ | ✅ | ✅ | ? |
바이촨 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
바이촨2 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
채팅GLM | ✅ | ✅ | ? | ✅ | ✅ | ✅ | ? |
채팅GLM2 | ✅ | ? | ? | ✅ | ✅ | ✅ | ? |
채팅GLM3 | ✅ | ? | ? | ✅ | ✅ | ✅ | ? |
꽃 | ✅ | ✅ | ? | ✅ | ✅ | ✅ | ? |
GPT-2/GPT-3 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
고르다 | ✅ | ✅ | ? | ✅ | ✅ | ✅ | ? |
아체 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
2위안 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ? |
대형 모델 사전 훈련, 미세 조정(SFT, PEFT 기술 포함), 정렬 및 정량화가 LLaMA 시리즈, Baichuan 시리즈, Bloom 시리즈, ChatGLM 시리즈, Mistral 시리즈, OPT 시리즈 및 Qwen 시리즈, [LLM] 모델 사전 학습을 지원했습니다. 훈련, 미세 조정, 정렬 및 양자화 지원 목록은 다음과 같습니다.
모델 | 사전 학습 | SFT | 로라 | 플래시마스크 | 접두사 튜닝 | DPO/심PO/ORPO | RLHF | 양자화 |
---|---|---|---|---|---|---|---|---|
야마 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
퀀 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ? | ? |
믹스트랄 | ✅ | ✅ | ✅ | ? | ? | ✅ | ? | ? |
미스트랄 | ✅ | ✅ | ✅ | ? | ✅ | ✅ | ? | ? |
바이촨/바이촨2 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ? | ✅ |
채팅GLM-6B | ✅ | ✅ | ✅ | ? | ✅ | ? | ? | ✅ |
채팅GLM2/채팅GLM3 | ✅ | ✅ | ✅ | ? | ✅ | ✅ | ? | ✅ |
꽃 | ✅ | ✅ | ✅ | ? | ✅ | ? | ? | ✅ |
GPT-3 | ✅ | ✅ | ? | ? | ? | ? | ? | ? |
고르다 | ✅ | ✅ | ✅ | ? | ? | ? | ? | ? |
아체 | ✅ | ✅ | ✅ | ? | ? | ✅ | ? | ? |
원 | ✅ | ✅ | ✅ | ? | ? | ✅ | ? | ? |
대형 모델 추론은 이미 LLaMA 시리즈, Qwen 시리즈, Mistral 시리즈, ChatGLM 시리즈, Bloom 시리즈 및 Baichuan 시리즈를 지원하고 Weight Only INT8 및 INT4 추론을 지원하며 INT8 및 FP8 정량 추론을 위한 WAC(가중치, 활성화, 캐시 KV)를 지원합니다. LLM] 모델 추론 지원 목록은 다음과 같습니다.
모델명/양자화 유형 지원 | FP16/BF16 | 겨울8 | 윈트4 | INT8-A8W8 | FP8-A8W8 | INT8-A8W8C8 |
---|---|---|---|---|---|---|
야마 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
퀀 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
퀀모에 | ✅ | ✅ | ✅ | ? | ? | ? |
믹스트랄 | ✅ | ✅ | ✅ | ? | ? | ? |
채팅GLM | ✅ | ✅ | ✅ | ? | ? | ? |
꽃 | ✅ | ✅ | ✅ | ? | ? | ? |
바이 추안 | ✅ | ✅ | ✅ | ✅ | ✅ | ? |
파이썬 >= 3.8
패들패들 >= 3.0.0b0
PaddlePaddle을 설치하지 않은 경우 PaddlePaddle 공식 홈페이지를 참고하여 설치하시기 바랍니다.
pip install --upgrade paddlenlp==3.0.0b2
또는 다음 명령을 통해 최신 개발 분기 코드를 설치할 수 있습니다.
pip install --pre --upgrade paddlenlp -f https://www.paddlepaddle.org.cn/whl/paddlenlp.html
PaddlePaddle 및 PaddleNLP 설치에 대한 자세한 튜토리얼은 설치를 참조하세요.
PaddleNLP는 모델과 토크나이저를 빠르게 로드할 수 있는 편리하고 사용하기 쉬운 자동 API를 제공합니다. 다음은 Qwen/Qwen2-0.5B
모델을 사용한 텍스트 생성의 예입니다.
>>> paddlenlp.transformers import AutoTokenizer, AutoModelForCausalLM>>> tokenizer = AutoTokenizer.from_pretrained("Qwen/Qwen2-0.5B")>>> model = AutoModelForCausalLM.from_pretrained("Qwen/Qwen2-0.5B", dtype=" float16")>>> input_features = tokenizer("안녕하세요! 자기소개를 부탁드립니다.", return_tensors="pd")>>> 출력 = model.generate(**input_features, max_length=128)>>> print(tokenizer.batch_decode(outputs[0], Skip_special_tokens=True)) ['저는 날씨, 뉴스, 역사, 문화, 과학, 교육, 엔터테인먼트 등 다양한 질문에 답할 수 있는 AI 언어 모델입니다. 꼭 알아야 할 것이 있나요? ']
git clone https://github.com/PaddlePaddle/PaddleNLP.git && cd PaddleNLP # PaddleNLP를 복제했거나 다운로드한 경우 mkdir -p llm/data && cd llm/data를 건너뛸 수 있습니다. wget https://bj.bcebos.com/paddlenlp/models/transformers/llama/data/llama_openwebtext_100k.bin wget https://bj.bcebos.com/padaddlenlp/models/transformers/llama/data/llama_openwebtext_100k.idxcd .. # 폴더를 PaddleNLP/llmpython으로 변경 -u -m paddle.distributed.launch --gpus "0,1, 2,3,4,5,6,7" run_pretrain.py ./config/llama/pretrain_argument.json
git clone https://github.com/PaddlePaddle/PaddleNLP.git && cd PaddleNLP # PaddleNLP를 복제했거나 다운로드한 경우 mkdir -p llm/data && cd llm/data를 건너뛸 수 있습니다. wget https://bj.bcebos.com/padaddlenlp/datasets/examples/AdvertiseGen.tar.gz && tar -zxvf AdvertiseGen.tar.gzcd .. # 폴더를 PaddleNLP/llmpython -u -m paddle.distributed.launch로 변경 - -gpus "0,1,2,3,4,5,6,7" run_finetune.py ./config/llama/sft_argument.json
대형 모델 프로세스의 전체 단계를 보려면 플라잉 패들 대형 모델 키트 소개를 참조하세요.
더 많은 PaddleNLP 콘텐츠를 보려면 다음을 참조하세요.
사전 훈련된 고품질 모델의 엔드투엔드 전체 프로세스 사용을 포함하여 선택된 모델 라이브러리입니다.
PaddleNLP를 사용하여 기본 기술, 시스템 애플리케이션 및 확장 애플리케이션을 포함한 다양한 NLP 기술 문제를 해결하는 방법을 배우는 여러 시나리오 예제입니다.
무료 컴퓨팅 플랫폼 AI Studio에서 PaddleNLP를 빠르게 배울 수 있는 대화형 튜토리얼입니다.
WeChat에서 QR 코드를 스캔하고 설문지를 작성하여 커뮤니케이션 그룹에 참여하고 많은 커뮤니티 개발자 및 공식 팀과 심도 있는 토론을 해보세요.
PaddleNLP가 귀하의 연구에 도움이 된다면 자유롭게 인용해주세요.
@misc{=paddlenlp,title={PaddleNLP: 사용하기 쉬운 고성능 NLP 라이브러리},author={PaddleNLP 기여자},howpublished = {url{https://github.com/PaddlePaddle/PaddleNLP}}, 연도={2021}}
우리는 Hugging Face의 Transformers?의 사전 훈련된 모델 사용에 대한 뛰어난 설계를 통해 배웠으며 Hugging Face의 작성자와 오픈 소스 커뮤니티에 감사를 표하고 싶습니다.
PaddleNLP는 Apache-2.0 오픈 소스 라이선스를 따릅니다.