중국어 |
이 오픈 소스 프로젝트는 단 3시간 만에 처음부터 시작하는 것을 목표로 합니다! 크기가 26.88M에 불과한 소형 언어 모델 인 MiniMind를 훈련시킬 수 있습니다.
MiniMind 는 매우 가볍고 가장 작은 버전은 GPT3 크기 정도입니다.
MiniMind 는 대형 모델 미니멀리스트 구조, 데이터 세트 정리 및 전처리, 지도 사전 학습(Pretrain), 지도 지시 미세 조정(SFT), 하위 순위 적응형(LoRA) 미세 조정 및 무보상 강화 학습 직접 선호 정렬( DPO) 전체 단계 코드에는 공유 하이브리드 전문가(MoE)의 희소 모델 확장도 포함됩니다. 시각적 다중 모드 VLM: MiniMind-V.
이는 오픈 소스 모델의 구현일 뿐만 아니라 LLM(대형 언어 모델)을 시작하기 위한 튜토리얼이기도 합니다.
우리는 이 프로젝트가 연구자들에게 입문 사례를 제공하여 모든 사람이 LLM 분야에서 더 많은 탐구와 혁신을 빠르게 시작하도록 도울 수 있기를 바랍니다.
오해를 방지하기 위해 "최대 3시간"은 >나만의 하드웨어 구성을 갖춘 머신이 필요하다는 의미입니다. 구체적인 사양은 아래에서 설명하겠습니다.
ModelScope 온라인 테스트 Bilibili 비디오 링크 |
GPT, LLaMA, GLM 등과 같은 LLM(대형 언어 모델) 분야에서는 그 효과가 놀랍지만 100억이라는 거대한 모델 매개변수와 개인용 장치의 메모리로는 훈련하기에는 턱없이 부족하며, 심지어 추론이 어렵습니다. 거의 모든 사람이 Lora와 같은 프로그램을 사용하여 새로운 지침을 배우는 것만으로는 충분하지 않습니다. 이는 뉴턴에게 21세기 스마트폰을 가지고 놀도록 가르치는 것과 거의 같습니다. 물리학 그 자체. 또한, 유료 구독 강좌를 판매하는 마케팅 계정에는 절반의 지식만으로 AI를 설명하는 허점과 튜토리얼이 가득하여 LLM의 고품질 콘텐츠를 더욱 이해하기 어렵게 만들고 학습자를 심각하게 방해합니다.
따라서 이 프로젝트의 목표는 LLM을 시작하기 위한 임계값을 무한히 낮추고 초경량 언어 모델을 처음부터 직접 훈련하는 것입니다.
팁
(2024-9-17 기준) MiniMind 시리즈는 3가지 모델의 사전 학습을 완료했습니다. 원활한 대화 기능을 갖추려면 최소 요구 사항은 26M(0.02B)입니다!
모델(사이즈) | 토크나이저 길이 | 추론 점유 | 풀어 주다 | 주관적 평가(/100) |
---|---|---|---|---|
minimind-v1-작은 (26M) | 6400 | 0.5GB | 2024.08.28 | 50' |
minimind-v1-moe (4×26M) | 6400 | 1.0GB | 2024.09.17 | 55' |
minimind-v1 (108M) | 6400 | 1.0GB | 2024.09.01 | 60' |
분석은 Torch 2.1.2, CUDA 12.2 및 Flash Attention 2를 갖춘 2×RTX 3090 GPU에서 수행되었습니다.
프로젝트에는 다음이 포함됩니다:
transformers
, accelerate
, trl
, peft
등과 같은 널리 사용되는 프레임워크와 호환됩니다.이 오픈 소스 프로젝트가 LLM 초보자가 빨리 시작하는 데 도움이 되기를 바랍니다!
MiniMind의 다중 모드 기능 확장 - 비전
자세한 내용을 보려면 트윈 프로젝트 minimind-v로 이동하세요!
09-27 사전 훈련 데이터 세트의 사전 처리 방법을 업데이트했습니다. 텍스트의 무결성을 보장하기 위해 사전 처리가 중단되고 .bin 훈련으로 변환되었습니다(훈련 속도가 약간 희생됨).
사전 학습 처리 후 현재 파일의 이름은 pretrain_data.csv입니다.
일부 중복 코드를 제거했습니다.
minimind-v1-moe 모델 업데이트
모호함을 방지하기 위해 mistral_tokenizer는 더 이상 단어 분할로 사용되지 않으며 모든 사용자 정의 minimind_tokenizer는 단어 분할로 사용됩니다.
minimind_tokenizer를 사용하여 업데이트된 minimind-v1(108M) 모델, 사전 훈련 라운드 3 + SFT 라운드 10, 더욱 완벽하게 훈련되고 강력한 성능.
프로젝트는 ModelScope 생성 공간에 배포되었으며 다음 웹사이트에서 경험할 수 있습니다.
?ModelScope 온라인 경험?
이것은 단지 개인적인 소프트웨어 및 하드웨어 환경 구성이므로 재량에 따라 변경하십시오.
CPU: Intel(R) Core(TM) i9-10980XE CPU @ 3.00GHz
内存:128 GB
显卡:NVIDIA GeForce RTX 3090(24GB) * 2
环境:python 3.9 + Torch 2.1.2 + DDP单机多卡训练
미니마인드(허깅페이스)
MiniMind(모델스코프)
# step 1
git clone https://huggingface.co/jingyaogong/minimind-v1
# step 2
python 2-eval.py
또는 스트림라이트를 시작하고 웹 채팅 인터페이스를 시작하세요.
"참고"에는 python>=3.10이 필요합니다.
pip install streamlit==1.27.2
설치하세요.
# or step 3, use streamlit
streamlit run fast_inference.py
0. 프로젝트 코드 복제
git clone https://github.com/jingyaogong/minimind.git
cd minimind
1. 환경 설치
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
# 测试torch是否可用cuda
import torch
print(torch.cuda.is_available())
사용할 수 없는 경우 torch_stable로 이동하여 whl 파일을 다운로드하고 직접 설치하세요. 참고 링크
2. 스스로 훈련이 필요한 경우
2.1 데이터 세트 다운로드 주소를 다운로드하여 ./dataset
디렉터리에 넣습니다.
2.2 python data_process.py
데이터 세트를 처리합니다. 예를 들어 사전 학습 데이터는 미리 토큰 인코딩되고 sft 데이터 세트는 qa에서 csv 파일로 추출됩니다.
2.3 ./model/LMConfig.py
에서 모델 매개변수 구성을 조정합니다.
여기서는
minimind-v1-small
및minimind-v1
에 해당하는 각각(512+8)
또는(768+16)
인 희미한, n_layers 및 use_moe 매개변수만 조정하면 됩니다.
2.4 python 1-pretrain.py
사전 훈련을 수행하고 사전 훈련의 출력 가중치로 pretrain_*.pth
가져옵니다.
2.5 python 3-full_sft.py
명령어 미세 조정을 실행하고 명령어 미세 조정의 출력 가중치로 full_sft_*.pth
얻습니다.
2.6 python 4-lora_sft.py
lora 미세 조정을 수행합니다(필수 아님).
2.7 python 5-dpo_train.py
DPO 인간 선호도 강화 학습 정렬을 수행합니다(선택 사항).
3. 모델 추론 효과 테스트
*.pth
파일이 ./out/
디렉터리에 있는지 확인하세요.*.pth
가중치 파일을 사용할 수도 있습니다. minimind/out
├── multi_chat
│ ├── full_sft_512.pth
│ ├── full_sft_512_moe.pth
│ └── full_sft_768.pth
├── single_chat
│ ├── full_sft_512.pth
│ ├── full_sft_512_moe.pth
│ └── full_sft_768.pth
├── pretrain_768.pth
├── pretrain_512_moe.pth
├── pretrain_512.pth
python 0-eval_pretrain.py
사전 훈련된 모델의 솔리테어 효과를 테스트합니다.python 2-eval.py
모델의 대화 효과를 테스트합니다. ?"Tip" 사전 훈련과 전체 매개변수 미세 조정 사전 훈련 및 full_sft는 모두 멀티 카드 가속을 지원합니다.
장치에 그래픽 카드가 하나만 있다고 가정하고 기본 Python을 사용하여 훈련을 시작하세요.
python 1-pretrain.py
# and
python 3-full_sft.py
장치에 N(N>1)개의 그래픽 카드가 있다고 가정합니다.
독립형 N카드 창업교육(DDP)
torchrun --nproc_per_node N 1-pretrain.py
# and
torchrun --nproc_per_node N 3-full_sft.py
독립형 N 카드 시동 교육(DeepSpeed)
deepspeed --master_port 29500 --num_gpus=N 1-pretrain.py
# and
deepspeed --master_port 29500 --num_gpus=N 3-full_sft.py
훈련 과정을 기록하기 위해 wandb 활성화(선택 사항)
torchrun --nproc_per_node N 1-pretrain.py --use_wandb
# and
python 1-pretrain.py --use_wandb
--use_wandb
매개변수를 추가하면 훈련 과정을 기록할 수 있으며, 훈련이 완료된 후 wandb 웹사이트에서 훈련 과정을 볼 수 있습니다. wandb_project
및 wandb_run_name
매개변수를 수정하여 프로젝트 이름과 실행 이름을 지정할 수 있습니다.
? 토크나이저(Tokenizer): nlp의 토크나이저는 자연어의 단어를 "사전"을 통해 0, 1, 36과 같은 숫자로 매핑하는 역할을 합니다. "사전". LLM 토크나이저를 구축하는 방법에는 두 가지가 있습니다. 하나는 토크나이저를 훈련하기 위해 단어 목록을 직접 구성하는 것이고, 코드는 train_tokenizer.py
찾을 수 있으며, 다른 하나는 오픈 소스 모델로 훈련된 토크나이저를 선택하는 것입니다. 물론 "사전"으로 신화사전이나 옥스퍼드사전을 직접 선택할 수도 있습니다. 장점은 토큰 변환 압축률이 매우 좋다는 점이지만, 단점은 어휘 목록이 수십만 개로 너무 길다는 것입니다. 자신만의 훈련된 단어 분할기를 사용할 수도 있습니다. 장점은 단어 목록을 마음대로 제어할 수 있다는 것입니다. 단점은 압축률이 충분히 이상적이지 않고, 희귀 단어를 모두 다루기가 쉽지 않다는 것입니다. 물론, "사전"의 선택이 중요합니다. LLM의 출력은 본질적으로 SoftMax에서 사전까지 N 단어의 다중 분류 문제이며, 그런 다음 "사전"을 통해 자연어로 디코딩됩니다. LLM이 매우 작기 때문에 모델 상단이 무거워지는 것을 방지하려면(전체 LLM에 대한 단어 임베딩 레이어 매개변수의 비율이 너무 높음) 어휘 길이를 상대적으로 작게 선택해야 합니다. 01 Wanwu, Qianwen, chatglm, mistral, Llama3 등과 같은 강력한 오픈 소스 모델의 토크나이저 어휘 길이는 다음과 같습니다.
토크나이저 모델 | 어휘 크기 | 원천 |
---|---|---|
이 토크나이저 | 64,000 | 01 에브리씽(중국) |
qwen2 토크나이저 | 151,643 | 알리바바 클라우드(중국) |
glm 토크나이저 | 151,329 | 지혜 AI(중국) |
미스트랄 토크나이저 | 32,000 | 미스트랄 AI(프랑스) |
라마3 토크나이저 | 128,000 | 메타(미국) |
미니마인드 토크나이저 | 6,400 | 사용자 정의 |
2024-09-17 업데이트: 이전 버전의 모호성을 방지하고 볼륨을 제어하기 위해 모든 minimind 모델은 minimind_tokenizer 단어 분할을 사용하고 모든 mistral_tokenizer 버전은 폐기됩니다.
minimind_tokenizer의 길이는 매우 작지만 qwen2 및 glm과 같은 중국어 친화적인 토크나이저에 비해 인코딩 및 디코딩 효율성이 약합니다. 그러나 미니마인드 모델은 전체 매개변수를 가볍게 유지하고 코딩 계층과 계산 계층의 비율 불균형을 피하기 위해 자체 훈련된 minimind_tokenizer를 단어 분할기로 선택했습니다. 6400. 또한, 미니마인드는 실제 테스트에서 희귀 단어 해독에 실패하지 않았으며, 결과도 좋다. 사용자 정의 단어 목록은 6400 단어로 압축되므로 LLM의 전체 매개변수 크기는 26M만큼 낮습니다.
?[사전 학습 데이터]: Seq-Monkey 범용 텍스트 데이터 세트/Seq-Monkey Baidu 네트워크 디스크는 다양한 공개 소스 데이터(예: 웹 페이지, 백과사전, 블로그, 오픈 소스 코드, 서적 등)를 컴파일하고 정리합니다. . 통합된 JSONL 형식으로 구성되며 데이터의 포괄성, 규모, 신뢰성 및 높은 품질을 보장하기 위해 엄격한 검사 및 중복 제거를 거쳤습니다. 총량은 약 100억 개의 토큰으로, 중국어 대형 언어 모델의 사전 학습에 적합합니다.
옵션 2: SkyPile-150B 데이터 세트 중 공개적으로 액세스 가능한 부분에는 약 2억 3,300만 개의 고유한 웹 페이지가 포함되어 있으며 각 웹 페이지에는 평균 1,000개 이상의 중국어 문자가 포함되어 있습니다. 데이터 세트에는 약 1,500억 개의 토큰과 620GB의 일반 텍스트 데이터가 포함되어 있습니다. 급한 경우 SkyPile-150B의 jsonl 다운로드 중 일부만 선택하여(그리고 ./data_process.py에서 텍스트 토크나이저에 대한 *.csv 파일 생성) 사전 학습 프로세스를 빠르게 실행할 수 있습니다. .
./dataset/
디렉터리로 다운로드
MiniMind 훈련 데이터 세트 | 주소 다운로드 |
---|---|
[토크나이저 트레이닝 세트] | HuggingFace / 바이두 넷디스크 |
【사전 학습 데이터】 | Seq-Monkey 공식/Baidu 네트워크 디스크/HuggingFace |
【SFT 데이터】 | Jiangshu 대형 모델 SFT 데이터 세트 |
【DPO 데이터】 | 포옹하는 얼굴 |
MiniMind-Dense(Llama3.1과 동일)는 Transformer의 디코더 전용 구조를 사용합니다. GPT-3과의 차이점은 다음과 같습니다.
MiniMind-MoE 모델의 구조는 Llama3 및 Deepseek-V2의 MixFFN 하이브리드 전문가 모듈을 기반으로 합니다.
MiniMind의 전체 구조는 RoPE 계산, 추론 기능 및 FFN 레이어의 코드에서 약간의 조정을 제외하고는 동일합니다. 그 구조는 다음과 같습니다(다시 그려진 버전):
모델 구성을 수정하려면 ./model/LMConfig.py를 참조하세요. 현재 minimind가 훈련한 모델 버전은 아래 표에 나와 있습니다.
모델명 | 매개변수 | len_vocab | n_레이어 | d_모델 | kv_heads | q_heads | 공유+경로 | 탑케이 |
---|---|---|---|---|---|---|---|---|
minimind-v1-작은 | 26M | 6400 | 8 | 512 | 8 | 16 | - | - |
minimind-v1-moe | 4×26M | 6400 | 8 | 512 | 8 | 16 | 2+4 | 2 |
미니마인드-v1 | 1억8백만 | 6400 | 16 | 768 | 8 | 16 | - | - |
모델명 | 매개변수 | len_vocab | 배치_크기 | pretrain_time | sft_single_time | sft_multi_time |
---|---|---|---|---|---|---|
minimind-v1-작은 | 26M | 6400 | 64 | 2시간(1세대) | 2시간(1세대) | ≒0.5시간(1에포크) |
minimind-v1-moe | 4×26M | 6400 | 40 | ≒6시간(1에포크) | ≒5시간(1에포크) | 1시간(1시대) |
미니마인드-v1 | 1억8백만 | 6400 | 16 | ≒6시간(1에포크) | ≒4시간(1에포크) | 1시간(1시대) |
사전 학습(텍스트-텍스트) :
사전 학습의 학습률은 1e-4에서 1e-5까지의 동적 학습률로 설정되고 사전 학습 에포크 수는 5로 설정됩니다.
torchrun --nproc_per_node 2 1-pretrain.py
단일 대화상자 미세 조정 :
추론 중 RoPE 선형 차이를 조정하여 길이를 1024 또는 2048 이상으로 추정하는 것이 편리합니다. 학습률은 1e-5부터 1e-6까지의 동적 학습률로 설정되었으며, 미세 조정 에포크 횟수는 6회입니다.
# 3-full_sft.py中设置数据集为sft_data_single.csv
torchrun --nproc_per_node 2 3-full_sft.py
멀티 다이얼로그 미세 조정 :
학습률은 1e-5부터 1e-6까지의 동적 학습률로 설정되었으며, 미세 조정 에포크 횟수는 5회입니다.
# 3-full_sft.py中设置数据集为sft_data.csv
torchrun --nproc_per_node 2 3-full_sft.py
인간 피드백 강화 학습(RLHF) - 직접 선호도 최적화(DPO) :
이동형 삼중항(q, choose, Reject) 데이터셋, 학습률 le-5, 반정밀도 fp16, 총 1 epoch, 1시간 소요.
python 5-dpo_train.py
? LLM의 매개변수 구성과 관련하여 세부적인 연구와 실험을 수행하는 매우 흥미로운 논문인 MobileLLM이 있습니다. 스케일링 법칙은 소규모 모델에 고유한 규칙을 가지고 있습니다. Transformer 매개변수의 크기를 조정하는 매개변수는 d_model
및 n_layers
에 거의 전적으로 의존합니다.
d_model
↑+ n_layers
↓->험프티 덤프티d_model
↓+ n_layers
↑->슬림 및 키가 큰 2020년 스케일링 법칙을 제안하는 논문에서는 훈련 데이터의 양, 매개변수의 양, 훈련 반복 횟수가 성능을 결정하는 핵심 요소이며, 모델 아키텍처의 영향은 거의 무시할 수 있다고 믿습니다. 그러나 이 법칙은 소형 모델에는 완전히 적용되지 않는 것 같습니다. MobileLLM은 너비보다 아키텍처의 깊이가 더 중요하다고 제안합니다. "깊고 좁은" "슬렌더" 모델은 "넓고 얕은" 모델보다 더 추상적인 개념을 배울 수 있습니다. 예를 들어, 모델 매개변수가 125M 또는 350M로 고정된 경우, 상식 추론 등 8개 벤치마크 테스트에서 30~42개 레이어로 구성된 '좁은' 모델이 약 12개 레이어로 구성된 '짧고 뚱뚱한' 모델보다 훨씬 더 나은 성능을 보였습니다. , 질문과 답변, 독해 등도 비슷한 경향이 있습니다. 이것은 실제로 매우 흥미로운 발견입니다. 과거에는 약 1억 개의 작은 모델에 대한 아키텍처를 설계할 때 12개 이상의 레이어를 쌓으려고 시도한 사람이 거의 없었기 때문입니다. 이는 훈련 과정에서 d_model
과 n_layers
사이의 모델 매개변수를 조정하는 MiniMind의 실험적으로 관찰된 효과와 일치합니다. 그러나 "깊고 좁은"의 "좁은"에도 차원 제한이 있습니다. d_model<512인 경우 단어 임베딩 차원 붕괴의 단점은 추가된 레이어가 단어 임베딩으로 인한 부족한 d_head 단점을 보완할 수 없습니다. 고정된 q_head에 있습니다. d_model>1536일 때 레이어 증가는 d_model보다 우선순위가 더 높은 것으로 보이며 더 많은 "비용 효율적인" 매개변수 -> 효과 이득을 가져올 수 있습니다. 따라서 MiniMind는 "매우 작은 볼륨 <-> 더 나은 효과"의 균형을 얻기 위해 작은 모델의 d_model=512 및 n_layers=8을 설정합니다. 효과로부터 더 큰 이점을 얻으려면 d_model=768, n_layers=16을 설정하십시오. 이는 작은 모델의 스케일링 법칙 곡선 변화에 더 부합합니다.
참고로 GPT3의 매개변수 설정은 아래 표에 나와 있습니다.
?바이두 넷디스크
모델명 | 매개변수 | 구성 | pretrain_model | 단일_sft_모델 | multi_sft_model | rl_model |
---|---|---|---|---|---|---|
minimind-v1-작은 | 26M | d_model=512 n_레이어=8 | pretrain_512.pth | single_chat/full_sft_512.pth | multi_chat/full_sft_512.pth | rl_512.pth |
minimind-v1-moe | 4×26M | d_model=512 n_레이어=8 | pretrain_512_moe.pth | single_chat/full_sft_512_moe.pth | multi_chat/full_sft_512_moe.pth | - |
미니마인드-v1 | 1억8백만 | d_model=768 n_레이어=16 | pretrain_768.pth | single_chat/full_sft_768.pth | multi_chat/full_sft_768.pth | rl_768.pth |
팁
"단일 대화 full_sft" 및 "DPO 강화 학습 정렬"을 기반으로 미니마인드 모델 비교를 테스트합니다.
모델 파일 Baidu Netdisk. 여기서 rl_<dim>.pth
"DPO 강화 학습 정렬" 이후의 미니마인드 모델 가중치입니다.
[Q]: 你叫什么名字?
[ft_768]: 我是一款人工智能语言模型,可以回答您的问题和提供帮助。您有什么需要我帮忙的吗?
[rl_768]: 我是一款基于人工智能技术的自然语言处理系统,主要用于处理和生成人类语言的任务。我可以帮助用户进行文本处理、语音识别、文本生成等任务,同时也可以帮助用户进行智能聊天、翻译、翻译等多种应用。如果您需要更多关于该项目的信息,请告诉我。
[ft_512]: 我很高兴能够帮助你。你有什么其他问题需要我帮忙解答吗?
[rl_512]: 我是一款基于自然语言处理技术的聊天机器人,能够理解和回复用户的问题和指令,并进行相应的回复和回复。我被训练为能够与人类进行交互和回答各种问题和任务。请问有什么需要吗?
[Q]: 你是谁?
[ft_768]: 我是一个人工智能语言模型,没有个人身份和身份。我只是根据输入的指令和文本信息生成响应。
[rl_768]: 我是一个计算机程序,没有个人身份或身份。我被设计来回答各种问题和提供帮助,包括回答问题、提供建议、进行实验、提供信息等等。我被广泛应用于各种领域,例如自然语言处理、计算机视觉、人工智能等等。如果您需要更多的帮助或信息,请随时与我联系。我会尽我所能来帮助您的工作和生活。
[ft_512]: 我是一个大型语言模型,可以回答各种各样的问题,包括科学、历史、文化和技术方面的问题。您有什么需要我回答的问题吗?
[rl_512]: 我是一个计算机程序,没有具体的身世和人物。如果您可以告诉我您想知道的具体信息,我会尽力回答您的问题。
[Q]: 中国有哪些比较好的大学?
[ft_768]: 中国有很多著名的大学,其中包括北京大学、上海交通大学、复兴中医药学院、浙江大学等。这些大学在不同的领域都有着自己的标志性建筑和研究方向,值得一提的是,它们在中国的顶尖教育资源中享有很高的声誉。
[rl_768]: 中国的大学有很多,具体情况还要根据你的需求来决定。如果你需要更详细的信息,建议可以去咨询一下你所在城市的大学排名和政策法规,从而选择一个合适的大学。同时,你可以在网上查阅相关信息,或者去咨询一些大学相关机构,如中国人民大学、中国人民大学等,以获得更为详细和专业的指导和建议。
[ft_512]: 中国有很多优秀的大学,比如麻省理工学院、北京大学、上海大学等等。这些大学在中国教育事业的发展和成就都非常突出。
[rl_512]: 中国教育局、中国大学、中国大陆大学和中国大陆大学均有优秀的教育体裁,但各地教育水平和专业要求都可能存在差异。中国教育局的学历要求、教学方法、师资力量等因素都各具特点,而大学的学历要求也各有千秋。中国大陆大学生的学历要求也各有不同,需要根据自己的实际情况进行选择。如果您对中国大陆大学生的专业要求有更具体需求,建议您可以通过互联网、国内外的各类机构和机构进行比较和交流。同时,您也可以向身边的人或朋友、老师、家长等人士寻求帮助和建议。希望以上回答对您有帮助。
[Q]: 你知道光速是多少吗?
[ft_768]: 光速是一个物理常数,表示光在真空中传播的速度,大约是每秒299792458米。光速是物理学中最基本的物理常数之一,也是相对论的重要基础之一。
[rl_768]: 当然知道,光速是光在真空中传播的速度,通常用c来表示。它是宇宙物理学中非常重要的理论之一。在物理学中,光速被认为是宇宙中最重要的速度之一。它代表着光在真空中传播的速度,这也是许多重要公式和公式的基础。
[ft_512]: 光速是光在真空中传播的速度,约为每秒299,792,458米。它是几乎所有的物理学概念,也是宇宙中最神秘和最重要的物理概念之一。
[rl_512]: 光速是光在真空中传播的速度,是自然界中不可逆转的速度。光源是由光的原子、分子、固体和光的组成,其速度约为每秒平方。光的速度是每秒约1个英亞或光年,这个数字是根据相对论、量子力学和引力理论来计算的。光速是相对的概念之一,它代表着我们对自然界中任何事件的理解和解释。
팁
다음 테스트는 2024-09-17에 완료되었으며, 해당 날짜 이후에 출시되는 신규 모델은 특별한 요구 사항이 없는 한 테스트에 포함되지 않습니다. 단일 라운드 대화 full_sft(다중 미세 조정 및 강화 학습 미세 조정 없음)를 기반으로 미니마인드 모델을 테스트합니다.
[A] minimind-v1-small(0.02B)
[B] minimind-v1-moe(0.1B)
[C] 미니마인드-v1(0.1B)
[D] 베이비-라마2-중국어(0.2B)
[E] chatlm-미니 중국어(0.2B)
[Q]: 你知道长江吗?
[A]: 是的,长江是中国最长的河流,全长超过3300千米。
[B]: 长江是中国最长的河流,总长度约为6300公里。它发源于青藏高原的青海湖,流经青海、四川、甘肃、宁夏、内蒙古、陕西和山西。长江流域是中国最大的农业区之一,也是中国的文化和经济中心。
[C]: 是的,长江是中国最长的河流之一,也是世界第三大河流。长江发源于青藏高原,流经11个省份,最终注入东海。长江流域是中国最大的河流流域之一,拥有着丰富的自然资源和文化遗产,如长江大桥、长江海洋博物馆、长江古城等。
[D]: 同时也知道,中国是世界上最长的城市之一,拥有超过3400万人口。
[E]: 是的,长江是中国最长的河流,也是世界上最长的河流之一。它发源于青藏高原,流经九个省区,最终注入东海。长江流域的气候温和,四季分明,是中国重要的农业和工业基地。长江流域的水产资源丰富,是中国的重要渔业资源之一。
[Q]: 第一颗人造卫星是哪个国家发射的?
[A]: 第一颗人造卫星是斯普特尼克1号。
[B]: 第一颗人造卫星是俄罗斯的国际卫星,于1957年发射。
[C]: 第一颗人造卫星是苏联发射的,它是由苏联于1957年10月发射的。
[D]: 这颗名为“阿姆斯特朗”的卫星,于1961年11月20日发射,是第一个成功将人类送入太空的卫星。
[E]: 第一颗人造卫星是苏联于1957年4月4日发射的,它是由苏联宇航员尤里·加加林(Yuri Gagarin)和苏联工程师罗尔德·谢尔盖耶夫(Roald Skohley)共同发射的。在发射过程中,加加林和谢尔盖耶夫使用了一个名为“斯普特尼克1号”的小型卫星,它的直径为4.3米,重量为1,051公斤。这枚卫星被称为“斯普特尼克1号”,是苏联太空竞赛中的一个里程碑,也是人类历史上第一次在太空中进行太空行走。
[Q]: 你知道泰山在哪里吗?
[A]: 泰山位于中国东部地区,是中国五岳之一。
[B]: 泰山位于山东省泰安市泰安市。泰安市是中国五岳之一,也是世界文化遗产和中国历史文化名山之一。泰安市有许多著名的景点,如五岳之一、玉皇顶、南天门、玉皇阁等。
[C]: 泰山位于中国山东省泰安市,是中国五岳之一。
[D]: 作为一个人工智能助手,我无法访问互联网,因此无法提供关于你所在位置的信息。不过,你可以通过搜索或搜索相关关键词来获取有关你所在位置的信息,或者查看相关新闻或网站来获取有关你所在位置的信息。
[E]: 泰山位于中国山东省泰安市境内,是中国五岳之一,也是中国文化和历史的重要象征之一。它是中国五岳之一,也是中国道教和佛教的发源地之一。泰山的海拔高度为1,545米,是中国五岳之一,也是中国最著名的旅游景点之一。它的历史可以追溯到公元前5世纪,是中国古代帝王祭祀的场所。泰山也是中国文化的重要组成部分,被誉为“五岳之首”,是中国文化的重要遗产之一。
[Q]: 世界上最高的山峰是什么?
[A]: 世界上最高的山峰是珠穆朗玛峰,位于尼泊尔和中国的边境上,海拔8848米。
[B]: 世界上最高的山峰是珠穆朗玛峰,位于喜马拉雅山脉,海拔8,848米。
[C]: 珠穆朗玛峰是世界上最高的山峰,海拔8848米。
[D]: 世界上最高的山峰是珠穆朗玛峰,位于喜马拉雅山脉,海拔8,848.86米(29,031.69英尺)。
[E]: 世界上最高的山峰是珠穆朗玛峰,也称为萨加玛塔,位于喜马拉雅山脉的尼泊尔和中国边境之间,海拔8,848.86米(29,031.69英尺)。它是世界上最著名的登山目标之一,吸引着来自世界各地的登山者前来挑战。珠穆朗玛峰的名字来自藏语,意思是“女神的额峰”,它是由两个不同的山峰组成的,其中一个是位于尼泊尔的珠穆朗玛峰,另一个则位于中国。它的高度是通过测量海拔高度来确定的,因为它是通过测量地球的平均高度来确定的。尽管珠穆朗玛峰是世界上最高的山峰,但它并不是地球上任何其他地方都能到达的。地球上的其他地方,如南美洲的安第斯山脉,也是世界上最高的山脉,但它并不是地球上最高的山峰。总之,珠穆朗玛峰是世界上最高的山峰,但它并不是地球上任何地方都能到达的。它是地球上最高的山脉,但它并不是地球上任何地方都能到达的。
[Q]: 万有引力是谁提出的?
[A]: 万有引力是由英国物理学家牛顿提出的。他认为,所有物体都会产生引力,这个引力是由物体的质量和距离决定的。这个理论揭示了质量和距离之间的关系,并证明了万有引力的本质。
[B]: 万有引力是由牛顿在1687年提出的。它是宇宙中一个基本的物理现象,它描述了物体之间的相互作用。这个力被称为万有引力,它在所有物体之间都存在,这种力与物体的质量和距离有关。万有引力是自然界中最基本的力量之一,它不仅影响着物体的运动和变化,还对宇宙的结构和演化产生着重要的影响。
[C]: 万有引力是英国物理学家艾萨克·牛顿在17世纪提出的。
[D]: 引力是宇宙中一种力量,它是由质量或能量所组成的。根据牛顿的万有引力定律,一个物体之间的引力大小与它的质量成正比,与它的质量成反比。因此,牛顿的万有引力定律表明,一个物体之间的引力大小与它的质量成正比,与它的质量成反比。这个定律在物理学、天文学和物理学中都有广泛的应用。
[E]: 万有引力是由英国物理学家艾萨克·牛顿于1687年提出的。他在1687年发表了一篇著名的论文,题为《自然哲学的数学原理》,其中提出了万有引力定律,指出任何两个物体之间都存在着一种引力,这种引力的大小与它们的质量成正比,与它们之间的距离的平方成反比。这个定律被称为万有引力定律,它描述了质量和距离之间的关系。它表明,两个物体之间的引力与它们的质量成正比,与它们之间的距离的平方成反比。这个定律对于解释宇宙中的许多现象和现象之间的相互作用非常重要,例如行星绕太阳运动、恒星之间的引力透镜效应等等。它也被广泛应用于天文学、物理学和工程学等领域,为我们理解宇宙的本质和演化提供了重要的理论基础。
[Q]: 你知道大熊猫的主要食物是什么吗?
[A]: 大熊猫的主要食物是竹子。它们通常吃竹子,每天需要吃掉大约30公斤的竹子。
[B]: 是的,大熊猫主要以竹子为食。它们每天需要吃掉大量的竹子来维持生命,每天需要吃掉40至80公斤的竹子。此外,它们也会吃一些其他的植物,如草、果实、坚果和小型哺乳动物。
[C]: 大熊猫主要以竹子为食,也会偶尔食用其他的植物和动物。此外,大熊猫也会吃一些野果、小动物和植物,但这些都不属于它们的主要食物来源。
[D]: 大熊猫的主要食物是竹子。
[E]: 大熊猫是一种以竹子为主要食物的植食动物,它们的肠道结构适合消化纤维素含量高的竹子,但也会吃一些其他植物,如草本植物和小型哺乳动物。大熊猫的肠道结构也适应了高纤维的竹子,这使得它们能够消化大量的纤维素,从而帮助它们在野外生存。大熊猫的肠道中还含有一种叫做“纤维素酶”的酶类物质,这种酶能够帮助大熊猫分解纤维素,从而帮助它们消化大量的水分和营养物质。此外,大熊猫的肠道还含有一种叫做“纤维素蛋白”的蛋白质,这种蛋白质能够帮助大熊猫维持体内的能量水平,从而帮助它们在野外生存。总的来说,大熊猫的主要食物是竹子,但它们也会吃一些其他植物,如草本植物和小型哺乳动物。
[Q]: 海水为什么是咸的?
[A]: 海水中含有许多盐分,这些盐分可以导致海水咸度的增加。海水中的盐分主要来自于海水中的盐分,这些盐分可以从海水中的盐分中获得。海水中的氧化物和盐分可以与海水中的盐分形成氢键,从而使海水咸度增加。
[B]: 海水是咸的,这是因为它含有大量的盐分,其中包括氯离子和氯离子。这些离子在海洋中形成了大量的盐,这些盐分被称为盐分。海水中含有许多溶解在水中的盐,这些盐分会随着海水的升高而逐渐蒸发,最终导致海水中盐分的蒸发。这些盐分在海水中被完全消耗,然后被排除在海水中。此外,海水中还含有许多其他的盐分,但这些盐分是不同的,因为它们在水中的浮起和下降过程是不同的。海水中的盐分是从海底的岩石中提取出来的,这些盐分在海水中可以被利用。总的来说,海水是咸的,这也是为什么海水中含有许多盐分和盐分的原因。
[C]: 海水含有许多溶解的盐类,其中最主要的是氯化钠。当水中加入盐时,盐的分子会与水分子发生反应,形成氢氧化钠,这是一种盐。
[D]: 因为水是许多生物的生存所必需的,它能够吸收和释放二氧化碳,释放氧气,维持大气中的水蒸气,以及维持水循环。水中的盐类和化学物质会释放出氧气,使地球上的生物呼吸。此外,水还具有许多其他功能,如保持水循环、维持水循环、调节气候和环境等。水是许多生物生存所必需的,它也是许多自然现象的重要基础。
[E]: 海水是咸的主要原因是因为其中含有大量的溶解盐类,其中最主要的是氯化钠(NaCl)。氯化钠是一种非常常见的盐类,它存在于地球上的大部分地区,包括海洋、湖泊、河流和地下水。当水从海洋中蒸发时,它会带走一部分盐分,使海水变得咸。此外,海中还含有其他溶解盐类的物质,如硫酸盐、硫酸镁、硫酸钙、硫酸镁盐、硫酸镁钾、硫酸镁钠、硫酸镁钙、硫酸镁镁钙、硫酸镁镁钙、硫酸镁镁钙、硫酸镁镁钠、硫酸镁镁钙、硫酸镁镁镁钙、硫酸镁镁镁钙、硫酸镁镁镁钙、硫酸镁镁镁钙、硫酸镁镁镁钙、硫酸镁镁镁钙、硫酸镁镁镁钙、硫酸镁镁镁钙、硫酸镁镁镁钙、硫酸镁镁镁钙、硫酸镁镁镁镁钙、硫酸镁镁镁镁钙、硫酸镁镁镁镁钙、硫酸镁镁镁镁钙、硫酸镁镁镁镁钙、硫酸镁镁镁镁钙、硫酸镁镁镁镁镁钙、硫酸镁镁镁镁镁钙、硫酸镁镁镁镁镁钙、硫酸镁镁镁镁镁钙、硫酸镁镁镁镁镁镁钙、硫酸镁镁镁镁镁镁钙、硫酸镁镁镁镁镁镁钙、硫酸镁镁镁镁镁镁镁钙、硫酸镁镁镁镁
메모
?♂️ 위 모델의 답을 GPT-4o에 직접 던지고 점수를 매기는 데 도움이 되도록 하세요.
모델 A :
모델 B :
모델 C :
모델 D :
모델 E :
모델 | 기음 | 이자형 | 비 | 에이 | 디 |
---|---|---|---|---|---|
분수 | 75 | 70 | 65 | 60 | 50 |
미니마인드 시리즈(ABC)의 정렬은 직관에 부합하며, 상식 질문에 대한 답변은 기본적으로 오류와 환상이 없는 경우가 가장 높습니다.
epochs
수는 2보다 작습니다. 작은 모델에 대한 리소스를 확보하기 위해 미리 종료하기에는 너무 게으른 편입니다. 0.1B는 완전히 완료되지 않았음에도 불구하고 여전히 가장 강력한 성능을 달성합니다. 실제로는 이전의 죽은 것보다 여전히 한 단계 더 높습니다.비록 약간의 환각과 조작이 있기는 하지만 E 모델의 답변은 육안으로는 매우 좋아 보입니다. 그러나 GPT-4o와 Deepseek의 평가는 모두 "지나치게 긴 정보, 반복되는 내용 및 환상"이 있다는 점에 동의했습니다. 사실 이런 평가는 100개 중 10개가 환각이라고 해도 쉽게 낮은 점수를 받을 수 있다. E 모델의 사전 학습 텍스트 길이가 더 길고 데이터 세트가 훨씬 크기 때문에 답변이 완전한 것처럼 보입니다. 볼륨 근사의 경우 데이터 양과 품질이 모두 중요합니다.
?♂️개인 주관적 평가: E>C>B≒A>D
? GPT-4o 등급: C>E>B>A>D
확장의 법칙: 모델 매개변수가 클수록, 훈련 데이터가 많을수록 모델의 성능은 더욱 강력해집니다.
C-Eval 평가 코드: ./eval_ceval.py
를 참조하세요. 응답 형식을 수정하는 어려움을 피하기 위해 일반적으로 소규모 모델의 평가는 A
, B
, C
네 글자에 해당하는 토큰의 예측 확률을 직접 결정합니다. , D
, 가장 큰 것을 취하여 답을 구하고 표준 답으로 정확도를 계산합니다. 미니마인드 모델 자체는 훈련을 위해 더 큰 데이터 세트를 사용하지 않았으며, 객관식 질문에 답하기 위한 지침을 미세 조정하지도 않았습니다. 평가 결과는 참고 자료로 사용할 수 있습니다.
예를 들어 minimind-small의 결과 세부정보는 다음과 같습니다.
유형 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 스물하나 | 스물 둘 | 스물셋 | 스물넷 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
데이터 | 확률_통계 | 법 | 중학교_생물학 | 고등학교_화학 | 고등학교_물리학 | 법률_전문 | 고등학교_중국어 | 고등학교_역사 | 세금회계사 | 현대_중국어_역사 | 중학교_물리학 | 중학교_역사 | 기본_의학 | 운영 시스템 | 논리 | 전기공학자 | 공무원 | 중국어_언어_문학 | 대학_프로그래밍 | 회계사 | 식물_보호 | 중학교_화학 | 계측 엔지니어 | 수의학_의학 | 마르크스주의 | 고급_수학 | 고등학교_수학 | 사업_관리 | mao_zedong_생각 | 이데올로기적_도덕적_수양 | 대학_경제학 | professional_tour_guide | Environmental_impact_assessment_engineer | 컴퓨터 아키텍처 | urban_and_rural_planner | 대학_물리학 | 중학교_수학 | 고등학교_정치 | 내과 의사 | 대학_화학 | 고등학교_생물학 | 고등학교_지리 | 중학교_정치 | 임상_의학 | 컴퓨터_네트워크 | 스포츠_과학 | 예술 연구 | 교사_자격 | 이산_수학 | 교육_과학 | 소방기술자 | 중학교_지리 |
유형 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 스물하나 | 스물 둘 | 스물셋 | 스물넷 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
고마워 | 3/18 | 5/24 | 4/21 | 7/19 | 5/19 | 2/23 | 4/19 | 6/20 | 10/49 | 4/23 | 4/19 | 4/22 | 1/19 | 3/19 | 4/22 | 7/37 | 11/47 | 5/23 | 10/37 | 9/49 | 7/22 | 4/20 | 3/24 | 6/23 | 5/19 | 5/19 | 4/18 | 8/33 | 8/24 | 5/19 | 17/55 | 10/29 | 7/31 | 6/21 | 11/46 | 5/19 | 3/19 | 4/19 | 13/49 | 3/24 | 5/19 | 4/19 | 6/21 | 6/22 | 2/19 | 2/19 | 14/33 | 12/44 | 6/16 | 7/29 | 9/31 | 1/12 |
정확성 | 16.67% | 20.83% | 19.05% | 36.84% | 26.32% | 8.70% | 21.05% | 30.00% | 20.41% | 17.39% | 21.05% | 18.18% | 5.26% | 15.79% | 18.18% | 18.92% | 23.40% | 21.74% | 27.03% | 18.37% | 31.82% | 20.00% | 12.50% | 26.09% | 26.32% | 26.32% | 22.22% | 24.24% | 33.33% | 26.32% | 30.91% | 34.48% | 22.58% | 28.57% | 23.91% | 26.32% | 15.79% | 21.05% | 26.53% | 12.50% | 26.32% | 21.05% | 28.57% | 27.27% | 10.53% | 10.53% | 42.42% | 27.27% | 37.50% | 24.14% | 29.03% | 8.33% |
总题数: 1346
总正确数: 316
总正确率: 23.48%
범주 | 옳은 | 질문_개수 | 정확성 |
---|---|---|---|
minimind-v1-작은 | 344 | 1346 | 25.56% |
미니마인드-v1 | 351 | 1346 | 26.08% |
### 模型擅长的领域:
1. 高中的化学:正确率为42.11%,是最高的一个领域。说明模型在这方面的知识可能较为扎实。
2. 离散数学:正确率为37.50%,属于数学相关领域,表现较好。
3. 教育科学:正确率为37.93%,说明模型在教育相关问题上的表现也不错。
4. 基础医学:正确率为36.84%,在医学基础知识方面表现也比较好。
5. 操作系统:正确率为36.84%,说明模型在计算机操作系统方面的表现较为可靠。
### 模型不擅长的领域:
1. 法律相关:如法律专业(8.70%)和税务会计(20.41%),表现相对较差。
2. 中学和大学的物理:如中学物理(26.32%)和大学物理(21.05%),模型在物理相关的领域表现不佳。
3. 高中的政治、地理:如高中政治(15.79%)和高中地理(21.05%),模型在这些领域的正确率较低。
4. 计算机网络与体系结构:如计算机网络(21.05%)和计算机体系结构(9.52%),在这些计算机专业课程上的表现也不够好。
5. 环境影响评估工程师:正确率仅为12.90%,在环境科学领域的表现也不理想。
### 总结:
- 擅长领域:化学、数学(特别是离散数学)、教育科学、基础医学、计算机操作系统。
- 不擅长领域:法律、物理、政治、地理、计算机网络与体系结构、环境科学。
这表明模型在涉及逻辑推理、基础科学和一些工程技术领域的问题上表现较好,但在人文社科、环境科学以及某些特定专业领域(如法律和税务)上表现较弱。如果要提高模型的性能,可能需要加强它在人文社科、物理、法律、以及环境科学等方面的训练。
./export_model.py는 모델을 변환기 형식으로 내보내고 Huggingface로 푸시할 수 있습니다.
미니마인드의 허깅페이스 컬렉션 주소 : MiniMind
my_openai_api.py는 openai_api의 채팅 인터페이스를 완성하여 자신의 모델을 fastgpt, OpenWebUI 등과 같은 타사 UI에 쉽게 연결할 수 있도록 해줍니다.
Huggingface에서 모델 체중 파일을 다운로드하세요.
minimind (root dir)
├─minimind
| ├── config.json
| ├── generation_config.json
| ├── LMConfig.py
| ├── model.py
| ├── pytorch_model.bin
| ├── special_tokens_map.json
| ├── tokenizer_config.json
| ├── tokenizer.json
채팅 서버 시작
python my_openai_api.py
테스트 서비스 인터페이스
python chat_openai_api.py
openai api 형식과 호환되는 API 인터페이스 예
curl http://ip:port/v1/chat/completions
-H " Content-Type: application/json "
-d ' {
"model": "model-identifier",
"messages": [
{ "role": "user", "content": "世界上最高的山是什么?" }
],
"temperature": 0.7,
"max_tokens": -1,
"stream": true
} '
팁
MiniMind
도움이 된다고 생각하시면 GitHub에 글을 추가하셔도 됩니다. 글의 길이도 짧지 않으며, 누락이 불가피합니다. 이슈에서 수정 사항을 교환하거나 PR 개선 프로젝트를 제출해 주시기 바랍니다. 프로젝트의 지속적인 개선을 위한 원동력입니다.
메모
모두가 불길에 연료를 추가합니다. 새로운 MiniMind 모델을 훈련하려고 시도한 경우 토론이나 문제에서 모델 가중치를 공유할 수 있습니다. 이는 특정 하위 작업 또는 수직 분야(예: 감정 인식, 의료, 심리학)일 수 있습니다. , 금융, 법률 질문 및 답변 등 ) MiniMind 새 모델 버전 또한 확장된 교육(예: 더 긴 텍스트 시퀀스, 더 큰 볼륨(0.1B+) 또는 더 큰 데이터 세트 탐색) 후에 새로운 MiniMind 모델 버전이 될 수도 있습니다. 모든 공유는 고유한 것으로 간주되며 이러한 기여는 가치 있고 권장됩니다. 제 시간에 발견되어 승인 목록에 정리됩니다. 모든 지원에 다시 한번 감사드립니다!
@ipfgao : ?훈련 단계 기록
@chuanzhubin : ? 코드 주석을 한 줄씩
@WangRongsheng : ?대량 데이터 세트의 전처리
@pengqianhan : ?간결한 튜토리얼
@RyanSunn : ?추론 과정의 학습 기록
이 저장소는 Apache-2.0 라이센스에 따라 라이센스가 부여됩니다.