?

¡La aplicación Baixiaoying se ha lanzado oficialmente! Asistentes de IA que saben cómo buscar y hacer preguntas, buscan Baixiao en las principales tiendas de aplicaciones, ¿bienvenidos a descargarlo y experimentarlo?
Chino |
[ 2023.12.29 ]? en:
La versión de lanzamiento y los enlaces de descarga se muestran en la siguiente tabla:
| Modelo base | Alinear el modelo | Modelo de alineación 4Bits Quantization | |
|---|---|---|---|
| 7b | ? | ? | ? |
| 13B | ? | ? | ? |
Probamos ampliamente el modelo en conjuntos de datos autorizados chinos e ingleses y multilingües en seis campos: traducción general, general, médica, matemática, código y multilingüe.
En el dominio general realizamos pruebas de 5 disparos en el siguiente conjunto de datos.
| C-Eval | MMLU | Cmmlu | Gaokao | Agente | 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 | Agente | 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 |
| Chino-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 |
En el campo de la ley utilizamos el conjunto de datos JEC-QA. El conjunto de datos JEC-QA se deriva del examen judicial nacional de China. Solo conservamos las preguntas de elección única. Adoptamos un esquema de evaluación similar como C-EVAL.
El campo médico utiliza disciplinas médicas, MEDQA y MEDMCQA en el conjunto de datos de dominio general (C-EVAL, MMLU, CMMLU). Adoptamos un esquema de evaluación similar como C-EVAL.
Realizamos pruebas de 5 disparos en el conjunto de datos anterior.
| 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 |
| Chino-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 |
En el campo de las matemáticas, utilizamos el marco de evaluación OpenCompass para probar los conjuntos de datos GSM8K y Math.
El campo de código utiliza conjuntos de datos Humaneval y MBPP. Utilizamos OpenCompass para probar el conjunto de datos Humaneval 0-SHOT y MBPP.
| GSM8K | MATEMÁTICAS | Humanal | 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ÁTICAS | Humanal | 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 |
| Chino-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 el conjunto de datos Flores-101 para evaluar la capacidad multilingüe del modelo. Flores-101 cubre 101 idiomas en todo el mundo. Sus datos provienen de varios campos, como noticias, guías de viaje y libros. Seleccionamos el idioma oficial de la ONU (árabe, chino, inglés, francés, ruso y español), así como alemán y japoneses como idiomas de prueba. Utilizamos OpenCompass para realizar pruebas de 8 disparos en siete subtareas en Flores-101, incluidos inglés-inglés, chino-francés, español chino, árabe chino, rusia china, chino-japón y alemania china.
| CN-en | CN-FR | CN-ES | CN-AR | CN-RU | CN-JP | CN-de | Promedio | |
|---|---|---|---|---|---|---|---|---|
| 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 | Promedio | |
|---|---|---|---|---|---|---|---|---|
| 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 |
| Chino-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 |
Los pesos del modelo, los códigos de origen y las configuraciones requeridas para la inferencia se han publicado en Hugging Face. Demostramos una variedad de formas de razonamiento aquí. El programa descargará automáticamente los recursos requeridos de abrazar la cara.
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 ))
登鹳雀楼- >王之涣
夜雨寄北- >李商隐En los dos códigos anteriores, el modelo carga el
device_map='auto'y se utilizarán todas las tarjetas gráficas disponibles. Si necesita especificar el dispositivo para usar, puede usar un método comoexport CUDA_VISIBLE_DEVICES=0,1(se utilizan las tarjetas gráficas 0 y 1).
python cli_demo.pyEsta herramienta de línea de comandos está diseñada para escenarios de chat, por lo que no admitimos llamar a modelos base utilizando esta herramienta.
Confiando en Strewlit para ejecutar el siguiente comando, se iniciará un servicio web localmente y la dirección dada por la consola se colocará en el navegador para acceder. Esta herramienta de demostración web está diseñada para escenarios de chat, por lo que no admitimos llamar a modelos base utilizando esta herramienta.
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 usuarios y diferentes plataformas ejecuten el modelo Baichuan 2, hemos realizado el trabajo cuantitativo correspondiente para el modelo Baichuan 2 (incluido Baichuan2-7b-Chat y Baichuan2-13b-Chat) para facilitar a los usuarios a implementar rápida y eficientemente el modelo Baichuan 2 en su propia plataforma.
Baichuan 2 adopta el enfoque cuantitativo principal de la comunidad: bitsandbytes. Este método puede garantizar que el efecto de cuantización básicamente no se haya perdido. Bitsandbytes admite la cuantificación de 8bits y 4bits, de las cuales 4bits admite formatos FP4 y NF4.
Según este método de cuantización, Baichuan 2 admite dos modos: cuantización en línea y cuantización fuera de línea.
Para la cuantificación en línea, admitimos quantize() cuantificación de cuda() y 4bits. El código para implementar todo el modelo de carga es muy simple.
8bits cuantificación en línea:
model = AutoModelForCausalLM . from_pretrained ( "baichuan-inc/Baichuan2-7B-Chat" , torch_dtype = torch . float16 , trust_remote_code = True )
model = model . quantize ( 8 ). cuda () 4bits cuantificación en línea:
model = AutoModelForCausalLM . from_pretrained ( "baichuan-inc/Baichuan2-7B-Chat" , torch_dtype = torch . float16 , trust_remote_code = True )
model = model . quantize ( 4 ). cuda () Cabe señalar que cuando se usa la interfaz from_pretrained , los usuarios generalmente agregarán device_map="auto" .
Para facilitar el uso de los usuarios, proporcionamos la versión cuantificada fuera de línea Baichuan2-7b-chat-4bits para que los usuarios los descarguen. Es muy simple para el usuario cargar el modelo Baichuan2-7B-Chat-4Bits, solo necesita ser ejecutado:
model = AutoModelForCausalLM . from_pretrained ( "baichuan-inc/Baichuan2-7B-Chat-4bits" , device_map = "auto" , trust_remote_code = True )Para la cuantización fuera de línea de 8bits, no proporcionamos la versión correspondiente, porque la biblioteca de transformadores faciales de abrazos proporciona la interfaz API correspondiente, que puede implementar fácilmente el almacenamiento y la carga del modelo cuantitativo 8bits. Los usuarios pueden darse cuenta del ahorro y carga del modelo 8bits de las siguientes maneras:
# 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 )Comparación del uso de la memoria de video antes y después de la cuantización (GPU MEM en GB):
| Precisión | Baichuan2-7b | Baichuan2-13b |
|---|---|---|
| BF16 / FP16 | 15.3 | 27.5 |
| 8 besty | 8.0 | 16.1 |
| 4 Bitores | 5.1 | 8.6 |
Los resultados y las versiones originales en cada punto de referencia después de la cuantización se muestran a continuación:
| Modelo 5 | 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 es una evaluación realizada en su conjunto VAL
Como puede ver, la pérdida de precisión de 4bits en relación con BFLOAT16 es de aproximadamente 1-2 puntos porcentuales.
El modelo Baichuan 2 admite la inferencia de la CPU, pero debe enfatizarse que la velocidad de inferencia de la CPU es relativamente lenta. El método de carga del modelo debe modificarse de la siguiente manera:
# Taking Baichuan2-7B-Chat as an example
model = AutoModelForCausalLM . from_pretrained ( "baichuan-inc/Baichuan2-7B-Chat" , torch_dtype = torch . float32 , trust_remote_code = True ) Dado que muchos usuarios han realizado mucho trabajo de optimización en Baichuan 1 (Baichuan-7b, Baichuan-13b), como la optimización de la compilación, la cuantización, etc., para aplicar este trabajo a Baichuan 2 a un costo cero, los usuarios pueden realizar una conversión fuera de línea del modelo Baichuan 2, y después de la conversión, se pueden utilizar como un modelo Baichuan 1. Específicamente, los usuarios solo necesitan usar el siguiente script para normalizar la última capa de lm_head en el modelo Baichuan 2 fuera de línea y reemplazar lm_head.weight . Después del reemplazo, puede compilar y optimizar el modelo convertido como el 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.txtA continuación damos un ejemplo de entrenamiento independiente para ajustar la base Baichuan2-7B.
Datos de capacitación: data/belle_chat_ramdon_10k.json , los datos de muestra se muestrean desde multiturn_chat_0.8m, y se realiza la conversión de formato. Muestra principalmente cómo entrenar múltiples rondas de datos y no garantiza el efecto.
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 la capacitación en múltiples máquinas, solo necesita dar el archivo host, y el contenido es similar al siguiente:
ip1 slots=8
ip2 slots=8
ip3 slots=8
ip4 slots=8
....
Al mismo tiempo, especifique la ruta al hosftfile en el script de entrenamiento:
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 TrueEl código ya es compatible con el ajuste ligero como Lora.
--use_lora True La configuración específica de Lora se puede encontrar en el script fine-tune.py .
Después de ajustar con Lora, puede usar el siguiente comando para cargar el modelo:
from peft import AutoPeftModelForCausalLM
model = AutoPeftModelForCausalLM . from_pretrained ( "output" , trust_remote_code = True )Además de capacitar al modelo Baichuan2-7B-base con 2.6 billones de tokens, también proporcionamos otros 11 puntos de control intermedios (cada uno capacitado alrededor de 0.2 a 2.4 billones de tokens respectivamente) para la investigación comunitaria (dirección de descarga). La siguiente figura muestra los cambios de efecto de estos puntos de control en los tres puntos de referencia de C-EVAL, MMLU y CMMLU:

?
Implementar Baichuan2 - 7B/CHAT, Baichuan2 - 13B/Modelos de chat utilizando el procesador escalable Core ™/Xiang® o con GPU Ruixuan ™.
Se recomienda BigDL-LLM (CPU, GPU) para lograr un mejor rendimiento de inferencia.
Manual operativo chino, incluido el soporte de cuaderno
Carga, optimización, métodos de ahorro, etc.
Modelo de ajuste fino: Baichuan 2 (7b) ha soportado de forma nativa Pytorch (2.1.0) + Transformadores (4.36.0) + Speed de profundidad (0.12.4) + Acelerar (0.25.0) Modelo Fine-ajust, que se puede usar sin adaptación adicional.
Despliegue de inferencia: Baichuan 2 (7b) ha admitido de forma nativa la inferencia de ASCEND NPU y puede usarse sin una adaptación adicional.
MindFormers es un kit de desarrollo completo basado en el marco Mindspore y admite la capacitación de modelos a gran escala, ajuste, evaluación, razonamiento y implementación de Baichuan2-7b / 13b se ha integrado en este kit para admitir a los usuarios a ajustar y implementar modelos.
La plataforma Shengsi Big Model se basa en el marco Shengsi Mindspore AI, el kit de desarrollo de modelos Big Model de Mindformers y la alimentación de la computación de hardware Ascend, y abre las capacidades de modelo Baichuan2-7B Big Big Model al público, y todos pueden experimentarlo en línea.
El ajuste de eficiencia de LLAMA ha apoyado la capacitación continua y continua de los modelos Baichuan 2.
Baichuan2 (7b/13b) admite el razonamiento de la tarjeta de aceleración Taichu T100, y el canal de prueba se ha abierto oficialmente al público.
Por la presente declaramos que nuestro equipo de desarrollo no ha desarrollado ninguna aplicación basada en el modelo Baichuan 2, ya sea en iOS, Android, páginas web o cualquier otra plataforma. Llamamos firmemente a todos los usuarios que no usen el modelo Baichuan 2 para realizar cualquier actividad que ponga en peligro el Seguro Social Nacional o ilegal. Además, también se les pide a los usuarios que no usen el modelo Baichuan 2 para servicios de Internet que no han sido revisados y registrados de manera adecuada. Esperamos que todos los usuarios puedan cumplir con este principio y garantizar que el desarrollo de la ciencia y la tecnología se pueda llevar a cabo en un entorno estandarizado y legal.
Hemos hecho todo lo posible para garantizar el cumplimiento de los datos utilizados durante la capacitación del modelo. Sin embargo, a pesar de nuestros grandes esfuerzos, todavía hay algunos problemas imprevistos debido a la complejidad del modelo y los datos. Por lo tanto, no asumiremos ninguna responsabilidad por ningún problema que surja del uso del modelo de código abierto de Baichuan 2, incluidos, entre otros, problemas de seguridad de datos, riesgos de opinión pública o ningún riesgo y problema que surja del engañoso, el abuso, la difusión o el uso inadecuado del modelo.
La comunidad utiliza modelos Baichuan 2 para seguir a Apache 2.0 y el Acuerdo de Licencia de la Comunidad Modelo de Baichuan 2. El modelo Baichuan 2 es comercialmente útil.
Si se cumplen las condiciones anteriores, debe enviar los materiales de solicitud requeridos por el Acuerdo de Licencia de la Comunidad Modelo de Baichuan 2 a través de la siguiente dirección de correo electrónico [email protected]. Después de que se apruebe la revisión, Baichuan le otorgará una licencia de derechos de autor comercial no exclusiva, global, no transferible, no publicable y revocable.
Para citar nuestro trabajo, utilice la siguiente referencia:
@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}
}