Modelscope?

O aplicativo Baixiaoying foi lançado oficialmente! Assistentes de IA que sabem como pesquisar e fazer perguntas, procurar BAIXIAO nas principais lojas de aplicativos, bem -vindo ao download e experimentá -lo?
Chinês |
[ 2023.12.29 ] ??? em:
A versão de lançamento e os links de download são mostrados na tabela a seguir:
| Modelo base | Alinhe o modelo | Modelo de alinhamento 4BITS quantização | |
|---|---|---|---|
| 7b | ? | ? | ? |
| 13b | ? | ? | ? |
Testamos extensivamente o modelo em conjuntos de dados autoritários chineses e ingleses e multilíngues em seis campos: general, direito, médico, matemática, código e tradução multilíngue.
No domínio geral, realizamos testes de 5 tiros no conjunto de dados a seguir.
| C-EVAL | Mmlu | Cmmlu | Gaokao | AGIEVAL | Bbh | |
|---|---|---|---|---|---|---|
| 5-shot | 5-shot | 5-shot | 5-shot | 5-shot | 3-shot | |
| GPT-4 | 68.40 | 83.93 | 70.33 | 66.15 | 63.27 | 75.12 |
| GPT-3.5 Turbo | 51.10 | 68.54 | 54.06 | 47.07 | 46.13 | 61.59 |
| Llama-7b | 27.10 | 35.10 | 26.75 | 27.81 | 28.17 | 32.38 |
| Llama2-7b | 28.90 | 45.73 | 31.38 | 25.97 | 26.53 | 39.16 |
| MPT-7B | 27.15 | 27.93 | 26.00 | 26.54 | 24.83 | 35.20 |
| Falcon-7b | 24.23 | 26.03 | 25.66 | 24.24 | 24.10 | 28.77 |
| Chatglm2-6b | 50.20 | 45.90 | 49.00 | 49.44 | 45.28 | 31.65 |
| Baichuan-7b | 42.80 | 42.30 | 44.02 | 36.34 | 34.44 | 32.48 |
| BAICHUAN2-7B-BASE | 54,00 | 54.16 | 57.07 | 47.47 | 42.73 | 41.56 |
| C-EVAL | Mmlu | Cmmlu | Gaokao | AGIEVAL | Bbh | |
|---|---|---|---|---|---|---|
| 5-shot | 5-shot | 5-shot | 5-shot | 5-shot | 3-shot | |
| GPT-4 | 68.40 | 83.93 | 70.33 | 66.15 | 63.27 | 75.12 |
| GPT-3.5 Turbo | 51.10 | 68.54 | 54.06 | 47.07 | 46.13 | 61.59 |
| LLAMA-13B | 28.50 | 46.30 | 31.15 | 28.23 | 28.22 | 37.89 |
| Llama2-13b | 35.80 | 55.09 | 37.99 | 30.83 | 32.29 | 46.98 |
| Vicuna-13b | 32.80 | 52.00 | 36.28 | 30.11 | 31.55 | 43.04 |
| Chinês-alpaca-plus-13b | 38.80 | 43.90 | 33.43 | 34.78 | 35.46 | 28.94 |
| Xverse-13b | 53.70 | 55.21 | 58.44 | 44.69 | 42.54 | 38.06 |
| BAICHUAN-13B-BASE | 52.40 | 51.60 | 55.30 | 49.69 | 43.20 | 43.01 |
| BAICHUAN2-13B-BASE | 58.10 | 59.17 | 61.97 | 54.33 | 48.17 | 48.78 |
No campo da lei, usamos o conjunto de dados JEC-QA. O conjunto de dados JEC-QA é derivado do exame judicial nacional da China. Só mantivemos as perguntas de escolha única. Adotamos um esquema de avaliação semelhante ao C-EVAL.
O campo médico usa disciplinas relacionadas à médica, MedQA e MedMCQA no conjunto de dados de domínio geral (C-EVAL, MMLU, CMMLU). Adotamos um esquema de avaliação semelhante ao C-EVAL.
Realizamos testes de 5 tiros no conjunto de dados acima.
| JEC-QA | CEVAL-MMLU-CMMLU | MedQA-USMLE | Medqa-Mcmle | Medmcqa | |
|---|---|---|---|---|---|
| 5-shot | 5-shot | 5-shot | 5-shot | 5-shot | |
| GPT-4 | 59.32 | 77.16 | 80.28 | 74.58 | 72.51 |
| GPT-3.5 Turbo | 42.31 | 61.17 | 53.81 | 52.92 | 56.25 |
| Llama-7b | 27.45 | 33.34 | 24.12 | 21.72 | 27.45 |
| Llama2-7b | 29.20 | 36.75 | 27.49 | 24.78 | 37.93 |
| MPT-7B | 27.45 | 26.67 | 16.97 | 19.79 | 31.96 |
| Falcon-7b | 23.66 | 25.33 | 21.29 | 18.07 | 33.88 |
| Chatglm2-6b | 40.76 | 44.54 | 26.24 | 45.53 | 30.22 |
| Baichuan-7b | 34.64 | 42.37 | 27.42 | 39.46 | 31.39 |
| BAICHUAN2-7B-BASE | 44.46 | 56.39 | 32.68 | 54.93 | 41.73 |
| JEC-QA | CEVAL-MMLU-CMMLU | MedQA-USMLE | Medqa-Mcmle | Medmcqa | |
|---|---|---|---|---|---|
| 5-shot | 5-shot | 5-shot | 5-shot | 5-shot | |
| GPT-4 | 59.32 | 77.16 | 80.28 | 74.58 | 72.51 |
| GPT-3.5 Turbo | 42.31 | 61.17 | 53.81 | 52.92 | 56.25 |
| LLAMA-13B | 27.54 | 35.14 | 28.83 | 23.38 | 39.52 |
| Llama2-13b | 34.08 | 47.42 | 35.04 | 29.74 | 42.12 |
| Vicuna-13b | 28.38 | 40.99 | 34.80 | 27.67 | 40.66 |
| Chinês-alpaca-plus-13b | 35.32 | 46.31 | 27.49 | 32.66 | 35.87 |
| Xverse-13b | 46.42 | 58.08 | 32.99 | 58,76 | 41.34 |
| BAICHUAN-13B-BASE | 41.34 | 51.77 | 29.07 | 43.67 | 39.60 |
| BAICHUAN2-13B-BASE | 47.40 | 59.33 | 40.38 | 61.62 | 42.86 |
No campo da matemática, usamos a estrutura de avaliação do OpenCompass para testar os conjuntos de dados GSM8K e Math 4-Shot.
O campo de código usa conjuntos de dados Humaneval e MBPP. Utilizamos o OpenCompass para testar o Humaneval 0-Shot e o MBPP DataSet 3-Shot.
| GSM8K | MATEMÁTICA | Humaneval | Mbpp | |
|---|---|---|---|---|
| 4-shot | 4-shot | 0-shot | 3-shot | |
| GPT-4 | 89.99 | 40.20 | 69.51 | 63.60 |
| GPT-3.5 Turbo | 57.77 | 13.96 | 52.44 | 61.40 |
| Llama-7b | 9.78 | 3.02 | 11.59 | 14.00 |
| Llama2-7b | 16.22 | 3.24 | 12.80 | 14.80 |
| MPT-7B | 8.64 | 2.90 | 14.02 | 23.40 |
| Falcon-7b | 5.46 | 1.68 | - | 10.20 |
| Chatglm2-6b | 28.89 | 6.40 | 9.15 | 9.00 |
| Baichuan-7b | 9.17 | 2.54 | 9.20 | 6.60 |
| BAICHUAN2-7B-BASE | 24.49 | 5.58 | 18.29 | 24.20 |
| GSM8K | MATEMÁTICA | Humaneval | Mbpp | |
|---|---|---|---|---|
| 4-shot | 4-shot | 0-shot | 3-shot | |
| GPT-4 | 89.99 | 40.20 | 69.51 | 63.60 |
| GPT-3.5 Turbo | 57.77 | 13.96 | 52.44 | 61.40 |
| LLAMA-13B | 20.55 | 3.68 | 15.24 | 21.40 |
| Llama2-13b | 28.89 | 4.96 | 15.24 | 27.00 |
| Vicuna-13b | 28.13 | 4.36 | 16.46 | 15.00 |
| Chinês-alpaca-plus-13b | 11.98 | 2,50 | 16.46 | 20.00 |
| Xverse-13b | 18.20 | 2.18 | 15.85 | 16.80 |
| BAICHUAN-13B-BASE | 26.76 | 4.84 | 11.59 | 22.80 |
| BAICHUAN2-13B-BASE | 52.77 | 10.08 | 17.07 | 30.20 |
Utilizamos o conjunto de dados FLORES-101 para avaliar a capacidade multilíngue do modelo. Flores-101 cobre 101 idiomas em todo o mundo. Seus dados vêm de vários campos, como notícias, guias de viagem e livros. Selecionamos o idioma oficial da ONU (árabe, chinês, inglês, francês, russo e espanhol), bem como alemão e japonês como idiomas de teste. Utilizamos o OpenCompass para realizar testes de 8 tiros em sete subtarefas em Flores-101, incluindo chinês-inglês, chinês-francês, chinês-espinhão, chinês-árabe, chinês-Rússia, chinês-japan e chinês-alemão.
| CN-en | CN-FR | Cn-es | CN-AR | CN-RU | CN-JP | CN-de | Média | |
|---|---|---|---|---|---|---|---|---|
| GPT-4 | 29.94 | 29.56 | 20.01 | 10.76 | 18.62 | 13.26 | 20.83 | 20.43 |
| GPT-3.5 Turbo | 27.67 | 26.15 | 19.58 | 10.73 | 17.45 | 1.82 | 19.70 | 17.59 |
| Llama-7b | 17.27 | 12.02 | 9.54 | 0,00 | 4.47 | 1.41 | 8.73 | 7.63 |
| Llama2-7b | 25.76 | 15.14 | 11.92 | 0,79 | 4.99 | 2.20 | 10.15 | 10.14 |
| MPT-7B | 20.77 | 9.53 | 8.96 | 0,10 | 3.54 | 2.91 | 6.54 | 7.48 |
| Falcon-7b | 22.13 | 15.67 | 9.28 | 0.11 | 1.35 | 0,41 | 6.41 | 7.91 |
| Chatglm2-6b | 22.28 | 9.42 | 7.77 | 0,64 | 1.78 | 0,26 | 4.61 | 6.68 |
| Baichuan-7b | 25.07 | 16.51 | 12.72 | 0,41 | 6.66 | 2.24 | 9.86 | 10.50 |
| BAICHUAN2-7B-BASE | 27.27 | 20.87 | 16.17 | 1.39 | 11.21 | 3.11 | 12.76 | 13.25 |
| CN-en | CN-FR | Cn-es | CN-AR | CN-RU | CN-JP | CN-de | Média | |
|---|---|---|---|---|---|---|---|---|
| GPT-4 | 29.94 | 29.56 | 20.01 | 10.76 | 18.62 | 13.26 | 20.83 | 20.43 |
| GPT-3.5 Turbo | 27.67 | 26.15 | 19.58 | 10.73 | 17.45 | 1.82 | 19.70 | 17.59 |
| LLAMA-13B | 21.75 | 16.16 | 13.29 | 0,58 | 7.61 | 0,41 | 10.66 | 10.07 |
| Llama2-13b | 25.44 | 19.25 | 17.49 | 1.38 | 10.34 | 0,13 | 11.13 | 12.17 |
| Vicuna-13b | 22.63 | 18.04 | 14.67 | 0,70 | 9.27 | 3.59 | 10.25 | 11.31 |
| Chinês-alpaca-plus-13b | 22.53 | 13.82 | 11.29 | 0,28 | 1.52 | 0,31 | 8.13 | 8.27 |
| Xverse-13b | 29.26 | 24.03 | 16.67 | 2.78 | 11.61 | 3.08 | 14.26 | 14.53 |
| BAICHUAN-13B-BASE | 30.24 | 20.90 | 15.92 | 0,98 | 9.65 | 2.64 | 12.00 | 13.19 |
| BAICHUAN2-13B-BASE | 30.61 | 22.11 | 17.27 | 2.39 | 14.17 | 11.58 | 14.53 | 16.09 |
Os pesos do modelo, os códigos de origem e as configurações necessários para a inferência foram publicados no Hugging Face. Demonstramos uma variedade de maneiras de raciocínio aqui. O programa baixará automaticamente os recursos necessários do Hugging Face.
pip install -r requirements.txt >> > import torch
>> > from transformers import AutoModelForCausalLM , AutoTokenizer
>> > from transformers . generation . utils import GenerationConfig
>> > tokenizer = AutoTokenizer . from_pretrained ( "baichuan-inc/Baichuan2-13B-Chat" , use_fast = False , trust_remote_code = True )
>> > model = AutoModelForCausalLM . from_pretrained ( "baichuan-inc/Baichuan2-13B-Chat" , device_map = "auto" , torch_dtype = torch . bfloat16 , trust_remote_code = True )
>> > model . generation_config = GenerationConfig . from_pretrained ( "baichuan-inc/Baichuan2-13B-Chat" )
>> > messages = []
>> > messages . append ({ "role" : "user" , "content" : "解释一下“温故而知新”" })
>> > response = model . chat ( tokenizer , messages )
>> > print ( response )
"温故而知新"是一句中国古代的成语,出自《论语·为政》篇。这句话的意思是:通过回顾过去,我们可以发现新的知识和理解。换句话说,学习历史和经验可以让我们更好地理解现在和未来。
这句话鼓励我们在学习和生活中不断地回顾和反思过去的经验,从而获得新的启示和成长。通过重温旧的知识和经历,我们可以发现新的观点和理解,从而更好地应对不断变化的世界和挑战。 >> > from transformers import AutoModelForCausalLM , AutoTokenizer
>> > tokenizer = AutoTokenizer . from_pretrained ( "baichuan-inc/Baichuan2-13B-Base" , trust_remote_code = True )
>> > model = AutoModelForCausalLM . from_pretrained ( "baichuan-inc/Baichuan2-13B-Base" , device_map = "auto" , trust_remote_code = True )
>> > inputs = tokenizer ( '登鹳雀楼->王之涣n夜雨寄北->' , return_tensors = 'pt' )
>> > inputs = inputs . to ( 'cuda:0' )
>> > pred = model . generate ( ** inputs , max_new_tokens = 64 , repetition_penalty = 1.1 )
>> > print ( tokenizer . decode ( pred . cpu ()[ 0 ], skip_special_tokens = True ))
登鹳雀楼- >王之涣
夜雨寄北- >李商隐Nos dois códigos acima, o modelo carrega o
device_map='auto'e todas as placas gráficas disponíveis serão usadas. Se você precisar especificar o dispositivo para usar, poderá usar um método comoexport CUDA_VISIBLE_DEVICES=0,1(as placas gráficas 0 e 1 são usadas).
python cli_demo.pyEsta ferramenta de linha de comando foi projetada para cenários de bate -papo, por isso não apoiamos os modelos básicos de chamadas usando esta ferramenta.
Baseando -se no streamlit para executar o seguinte comando, um serviço da web será iniciado localmente e o endereço fornecido pelo console será colocado no navegador para acessar. Esta ferramenta de demonstração da Web foi projetada para cenários de bate -papo, por isso não apoiamos os modelos básicos de chamadas usando esta ferramenta.
streamlit run web_demo.py用户:找到下列数组的中位数[3.1,6.2,1.3,8.4,10.5,11.6,2.1],请用python代码完成以上功能
Baichuan 2:def find_median(numbers):
numbers.sort()
length = len(numbers)
if length % 2 == 0:
return (numbers[length // 2 - 1] + numbers[length // 2]) / 2
else:
return numbers[length // 2]
numbers = [3.1, 6.2, 1.3, 8.4, 10.5, 11.6, 2.1]
print(find_median(numbers))
用户:鸡和兔在一个笼子里,共有26个头,68只脚,那么鸡有多少只,兔有多少只?
Baichuan 2:我们可以用代数方法来解决这个问题。假设鸡的数量为x,兔子的数量为y。根据题目给出的信息,我们可以得到以下两个方程:
1. x + y = 26 (头的总数)
2. 2x + 4y = 68 (脚的总数)
现在我们需要解这个二元一次方程组。首先从第一个方程中解出x:
x = 26 - y
然后将x的表达式代入第二个方程:
2(26 - y) + 4y = 68
52 - 2y + 4y = 68
2y = 16
接下来我们求解y的值:
y = 16 / 2
y = 8
现在我们得到了兔子的数量是8只。将y的值代入x的表达式求得鸡的数量:
x = 26 - 8
x = 18
所以鸡有18只,兔子有8只。
用户:从现在开始,请你将我接下来说的每一句话翻译成英语,准备好了吗?
Baichuan 2:I'm ready to translate every word you say next into English.
用户:你好
Baichuan 2:Hello
用户:我是Baichuan 2,很高兴认识大家
Baichuan 2:I am Baichuan 2, and I am very happy to meet everyone.
用户:希望通过大家的共同努力,早日迎接AGI时代的到来
Baichuan 2:I hope through the joint efforts of all of us, we can welcome the arrival of the AGI era as soon as possible.
用户:以下物理常识题目,哪一个是错误的?A.在自然环境下,声音在固体中传播速度最快。B.牛顿第一定律:一个物体如果不受力作用,将保持静止或匀速直线运动的状态。C.牛顿第三定律:对于每个作用力,都有一个相等而反向的反作用力。D.声音在空气中的传播速度为1000m/s。
Baichuan 2:本题考查物理基本概念和原理的理解和应用能力。
A项:声音的传播需要介质,在固体、液体和气体的三种介质中,声音在固体中的传播速度是最快的,故A正确; B项:牛顿第一定律是惯性定律,其内容是:一个物体如果没有受到外力的作用,要么保持静止状态,要么保持匀速直线运动状态,直到有外力迫使它改变运动状态为止,故B正确; C项:牛顿第三定律的内容是:对于每一个作用力,都有一个大小相等、方向相反的反作用力,这两个力分别作用在两个相互作用的物体上,故C错误; D项:声音在空气中以波的形式传播,其传播速度与介质的温度、湿度等因素有关,一般情况下,声音在空气中的传播速度约为340m/s左右,而不是1000m/s,故D错误。 因此,本题的正确答案是 D 。
用户:I'm Mike 。I am going to have a busy weekend。On Saturday,I am going to learn how to swim。I will go with my father。Then we are going to have lunch in the restaurant。In the afternoon,we are going to the zoo。We are going to see the pandas。On Sunday,I will finish my homework in the morning。In the afternoon,my parents and I are going to visit my grandparents。We will have dinner together。
阅读短文,判断正确和错误!正确请写T,错误请写F:
1.Mike is going to have a busy weekend()
2.Mike is going to learn how to swim with his father()
3.They are going to have lunch at home()
Baichuan 2:1. T(正确的)
2. T(正确的)
3. F(错误的)
Para permitir que diferentes usuários e diferentes plataformas executem o modelo Baichuan 2, realizamos um trabalho quantitativo correspondente para o modelo Baichuan 2 (incluindo Baichuan2-7b-Chat e Baichuan2-13b-Chat) para facilitar os usuários a implantar rapidamente e eficientemente o modelo Baichuan 2 em sua própria plataforma.
O Baichuan 2 adota a abordagem quantitativa convencional da comunidade: Bitsandbytes. Esse método pode garantir que o efeito de quantização não seja basicamente perdido. O BitsandBytes suporta 8BITs e 4BITs quantização, dos quais 4bits suportam os formatos FP4 e NF4.
Com base nesse método de quantização, o Baichuan 2 suporta dois modos: quantização on -line e quantização offline.
Para quantização on-line, suportamos quantize() e cuda() quantização. O código para implementar todo o carregamento do modelo é muito simples.
8bits Quantificação online:
model = AutoModelForCausalLM . from_pretrained ( "baichuan-inc/Baichuan2-7B-Chat" , torch_dtype = torch . float16 , trust_remote_code = True )
model = model . quantize ( 8 ). cuda () 4BITS quantização online:
model = AutoModelForCausalLM . from_pretrained ( "baichuan-inc/Baichuan2-7B-Chat" , torch_dtype = torch . float16 , trust_remote_code = True )
model = model . quantize ( 4 ). cuda () Deve -se notar que, ao usar a interface from_pretrained , os usuários geralmente adicionam device_map="auto" .
Para facilitar o uso dos usuários, fornecemos versão quantizada offline Baichuan2-7b-chat-4bits para os usuários baixarem. É muito simples para o usuário carregar o modelo Baichuan2-7b-Chat-4bits, só é preciso executar:
model = AutoModelForCausalLM . from_pretrained ( "baichuan-inc/Baichuan2-7B-Chat-4bits" , device_map = "auto" , trust_remote_code = True )Para a quantização offline de 8 bits, não fornecemos a versão correspondente, porque a biblioteca de Transformadores de Face Hugging fornece a interface da API correspondente, que pode implementar facilmente o armazenamento e o carregamento do modelo quantitativo de 8 bits. Os usuários podem realizar o modelo de 8bits, economizando e carregando as seguintes maneiras:
# Model saving: model_id is the original model directory, and quant8_saved_dir is the directory where the 8bits quantized model is saved.
model = AutoModelForCausalLM . from_pretrained ( model_id , load_in_8bit = True , device_map = "auto" , trust_remote_code = True )
model . save_pretrained ( quant8_saved_dir )
model = AutoModelForCausalLM . from_pretrained ( quant8_saved_dir , device_map = "auto" , trust_remote_code = True )Comparação do uso de memória de vídeo antes e depois da quantização (GPU MEM em GB):
| Precisão | Baichuan2-7b | Baichuan2-13b |
|---|---|---|
| BF16 / FP16 | 15.3 | 27.5 |
| 8bits | 8.0 | 16.1 |
| 4bits | 5.1 | 8.6 |
Os resultados e versões originais em cada referência após a quantização são mostrados abaixo:
| Modelo 5-shot | C-EVAL | Mmlu | Cmmlu |
|---|---|---|---|
| Baichuan2-13b-chat | 56.74 | 57.32 | 59.68 |
| Baichuan2-13b-chat-4bits | 56.05 | 56.24 | 58.82 |
| Baichuan2-7b-chat | 54.35 | 52.93 | 54.99 |
| Baichuan2-7b-chat-4bits | 53.04 | 51.72 | 52.84 |
C-EVAL é uma avaliação realizada em seu conjunto Val
Como você pode ver, a perda de precisão de 4 bits em relação ao BFLOAT16 é de cerca de 1-2 pontos percentuais.
O modelo Baichuan 2 suporta a inferência da CPU, mas deve -se enfatizar que a velocidade de inferência da CPU é relativamente lenta. O método de carregamento do modelo precisa ser modificado da seguinte forma:
# Taking Baichuan2-7B-Chat as an example
model = AutoModelForCausalLM . from_pretrained ( "baichuan-inc/Baichuan2-7B-Chat" , torch_dtype = torch . float32 , trust_remote_code = True ) Como muitos usuários fizeram muita otimização no Baichuan 1 (Baichuan-7b, Baichuan-13b), como otimização de compilação, quantização, etc., a fim de aplicar esses trabalhos ao Baichuan 2 a zero custo, eles podem executar uma conversão off-line do Baichuan 2 e após a conversão, eles podem ser usados, eles podem ser usados como o Baichuan 2 e após a conversão, eles podem ser usados como o Baichuan 2 e após a conversão. Especificamente, os usuários precisam usar apenas o script a seguir para normalizar a última camada de lm_head no modelo Baichuan 2 offline e substituir lm_head.weight . Após a substituição, você pode compilar e otimizar o modelo convertido como o modelo Baichuan 1.
import torch
import os
ori_model_dir = 'your Baichuan 2 model directory'
# To avoid overwriting the original model, it's best to save the converted model to another directory before replacing it
new_model_dir = 'your normalized lm_head weight Baichuan 2 model directory'
model = torch . load ( os . path . join ( ori_model_dir , 'pytorch_model.bin' ))
lm_head_w = model [ 'lm_head.weight' ]
lm_head_w = torch . nn . functional . normalize ( lm_head_w )
model [ 'lm_head.weight' ] = lm_head_w
torch . save ( model , os . path . join ( new_model_dir , 'pytorch_model.bin' ))git clone https://github.com/baichuan-inc/Baichuan2.git
cd Baichuan2/fine-tune
pip install -r requirements.txtAbaixo, damos um exemplo de treinamento independente para o ajuste fino Baichuan2-7b-Base.
Dados de treinamento: data/belle_chat_ramdon_10k.json , os dados da amostra são amostrados a partir de multiturn_chat_0.8m e a conversão de formato é realizada. Ele mostra principalmente como treinar várias rodadas de dados e não garante o efeito.
hostfile= " "
deepspeed --hostfile= $hostfile fine-tune.py
--report_to " none "
--data_path " data/belle_chat_ramdon_10k.json "
--model_name_or_path " baichuan-inc/Baichuan2-7B-Base "
--output_dir " output "
--model_max_length 512
--num_train_epochs 4
--per_device_train_batch_size 16
--gradient_accumulation_steps 1
--save_strategy epoch
--learning_rate 2e-5
--lr_scheduler_type constant
--adam_beta1 0.9
--adam_beta2 0.98
--adam_epsilon 1e-8
--max_grad_norm 1.0
--weight_decay 1e-4
--warmup_ratio 0.0
--logging_steps 1
--gradient_checkpointing True
--deepspeed ds_config.json
--bf16 True
--tf32 TruePara treinamento em várias máquinas, você só precisa dar o arquivo host, e o conteúdo é semelhante ao seguinte:
ip1 slots=8
ip2 slots=8
ip3 slots=8
ip4 slots=8
....
Ao mesmo tempo, especifique o caminho para o hosftfile no script de treinamento:
hostfile= " /path/to/hostfile "
deepspeed --hostfile= $hostfile fine-tune.py
--report_to " none "
--data_path " data/belle_chat_ramdon_10k.json "
--model_name_or_path " baichuan-inc/Baichuan2-7B-Base "
--output_dir " output "
--model_max_length 512
--num_train_epochs 4
--per_device_train_batch_size 16
--gradient_accumulation_steps 1
--save_strategy epoch
--learning_rate 2e-5
--lr_scheduler_type constant
--adam_beta1 0.9
--adam_beta2 0.98
--adam_epsilon 1e-8
--max_grad_norm 1.0
--weight_decay 1e-4
--warmup_ratio 0.0
--logging_steps 1
--gradient_checkpointing True
--deepspeed ds_config.json
--bf16 True
--tf32 TrueO código já suporta o ajuste fino leve, como o LORA.
--use_lora True A configuração específica do LORA pode ser encontrada no script fine-tune.py .
Após o ajuste fino com a Lora, você pode usar o seguinte comando para carregar o modelo:
from peft import AutoPeftModelForCausalLM
model = AutoPeftModelForCausalLM . from_pretrained ( "output" , trust_remote_code = True )Além de treinar o modelo Baichuan2-7b-BASE com 2,6 trilhões de tokens, também fornecemos outros 11 pontos de verificação intermediários (cada um treinado em cerca de 0,2 a 2,4 trilhões de tokens, respectivamente) para pesquisa e uso da comunidade (endereço de download). A figura a seguir mostra as mudanças de efeito desses pontos de verificação nos três referências de C-EVAL, MMLU e CMMLU:

??
Implante Baichuan2 - 7B/Chat, Baichuan2 - 13b/bate -papo Modelos usando processador escalável Core ™/Xiang® ou com GPUs Ruixuan ™.
Recomenda-se o BIGDL-LLM (CPU, GPU) para obter um melhor desempenho de inferência.
Manual de operação chinesa, incluindo suporte para notebooks
Métodos de carregamento, otimização, economia, etc.
Modelo Tunagem fina: Baichuan 2 (7b) apoiou nativamente o pytorch (2.1.0) + transformadores (4.36.0) + velocidade profunda (0,12.4) + acelerar (0,25.0) modelo fino, que pode ser usado sem adaptação adicional.
Implantação de inferência: Baichuan 2 (7b) apoiou nativamente a inferência de NPU Ascend e pode ser usada sem adaptação adicional.
O Mindformers é um kit de desenvolvimento completo com base na estrutura da Mindspore e suporta treinamento de modelo em larga escala, ajuste fino, avaliação, raciocínio e implantação.
A plataforma de Big Model Shengsi é baseada na estrutura da AI MindSpore Shengsi, no Kit de Desenvolvimento de Modelos de Big Model e no poder de computação de hardware de ascensão, e abre os recursos do Big Model Baichuan2-7b para o público, e todos podem experimentá-lo online.
O ajuste eficiente de lhama apoiou o treinamento e o treinamento contínuo dos modelos Baichuan 2.
O Baichuan2 (7b/13b) suporta o raciocínio do cartão de aceleração do Taichu T100, e o canal de avaliação foi oficialmente aberto ao público.
Declaramos que nossa equipe de desenvolvimento não desenvolveu nenhum aplicativo com base no modelo Baichuan 2, seja no iOS, Android, páginas da Web ou qualquer outra plataforma. Pedimos fortemente a todos os usuários que não usem o modelo Baichuan 2 para realizar qualquer atividade que posta em risco a Seguridade Social Nacional ou ilegal. Além disso, os usuários também são solicitados a não usar o modelo Baichuan 2 para serviços de Internet que não foram revisados e registrados adequadamente. Esperamos que todos os usuários possam cumprir esse princípio e garantir que o desenvolvimento da ciência e da tecnologia possa ser realizado em um ambiente jurídico padronizado e padronizado.
Fizemos tudo o que podemos para garantir a conformidade com os dados usados durante o treinamento do modelo. No entanto, apesar de nossos grandes esforços, ainda existem alguns problemas imprevistos devido à complexidade do modelo e dos dados. Portanto, não assumiremos qualquer responsabilidade por quaisquer problemas decorrentes do uso do modelo de código aberto do Baichuan 2, incluindo, entre outros, questões de segurança de dados, riscos de opinião pública ou quaisquer riscos e problemas decorrentes do enganoso, abuso, disseminação ou uso inadequado do modelo.
A comunidade usa os modelos Baichuan 2 para seguir o Apache 2.0 e o contrato de licença comunitário do Baichuan 2 Model Community. O modelo Baichuan 2 é comercialmente útil.
Se as condições acima forem atendidas, você precisará enviar os materiais de inscrição exigidos pelo Contrato de Licença da Comunidade Modelo Baichuan 2 através do seguinte endereço de email [email protected]. Depois que a revisão for aprovada, o Baichuan concederá a você uma licença comercial de direitos autorais comercial e não transferível, não transferível, não publicável e não publicável.
Para citar nosso trabalho, use a seguinte referência:
@article{baichuan2023baichuan2,
title={Baichuan 2: Open Large-scale Language Models},
author={Baichuan},
journal={arXiv preprint arXiv:2309.10305},
url={https://arxiv.org/abs/2309.10305},
year={2023}
}