?

Die Baixiaoying -App wurde offiziell gestartet! AI -Assistenten, die wissen, wie man sucht und Fragen stellt, nach Baixiao in großen Anwendungsgeschäften suchen, willkommen herunterladen und erleben?
Chinesisch |
[2023.12.29] ??? Wir haben die Baichuan2-13b-Chat V2- Version veröffentlicht. In:
Die Release -Version und Download -Links sind in der folgenden Tabelle angezeigt:
| Basismodell | Das Modell ausrichten | Ausrichtungsmodell 4bit Quantisierung | |
|---|---|---|---|
| 7b | ? Baichuan2-7b-Base | ? Baichuan2-7b-Chat | ? |
| 13b | ? Baichuan2-13b-Base | ? Baichuan2-13b-Chat | ? |
Wir haben das Modell über chinesische und englische und mehrsprachige maßgebliche Datensätze in sechs Feldern ausführlich getestet: allgemein, Recht, medizinisch, Mathematik, Code und mehrsprachige Übersetzung.
In der allgemeinen Domäne haben wir 5-Shot-Tests im folgenden Datensatz durchgeführt.
| 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 |
| Lama-7b | 27.10 | 35.10 | 26.75 | 27.81 | 28.17 | 32.38 |
| LAMA2-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 |
| LAMA-13B | 28.50 | 46.30 | 31.15 | 28.23 | 28.22 | 37.89 |
| LAMA2-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 |
| Chinese-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 |
Im Rechtsbereich haben wir den JEC-QA-Datensatz verwendet. Der JEC-QA-Datensatz stammt aus der China National Justicial Examination. Wir haben nur die Fragen der einzelnen Wahl beibehalten. Wir haben ein ähnliches Bewertungsschema als C-Eval übernommen.
Das medizinische Feld verwendet medizinische Disziplinen, MedQA und MedMCQA im allgemeinen Domain-Datensatz (C-Eval, MMLU, CMMLU). Wir haben ein ähnliches Bewertungsschema als C-Eval übernommen.
Wir haben 5-Shot-Tests auf dem obigen Datensatz durchgeführt.
| 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 |
| Lama-7b | 27.45 | 33.34 | 24.12 | 21.72 | 27.45 |
| LAMA2-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 |
| LAMA-13B | 27.54 | 35.14 | 28.83 | 23.38 | 39,52 |
| LAMA2-13B | 34.08 | 47,42 | 35.04 | 29.74 | 42.12 |
| Vicuna-13b | 28.38 | 40.99 | 34,80 | 27.67 | 40.66 |
| Chinese-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 |
Im Bereich der Mathematik verwendeten wir das OpenCompass-Bewertungsframework, um den 4-Shot von GSM8K- und Mathematikdatensätzen zu testen.
Das Codefeld verwendet Humaneal- und MBPP -Datensätze. Wir haben OpenCompass verwendet, um Humaneval 0-Shot- und MBPP-Datensatz 3-Shot zu testen.
| GSM8K | MATHE | Humaneral | 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 |
| Lama-7b | 9.78 | 3.02 | 11.59 | 14.00 |
| LAMA2-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 | MATHE | Humaneral | 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 |
| LAMA-13B | 20.55 | 3.68 | 15.24 | 21.40 |
| LAMA2-13B | 28.89 | 4.96 | 15.24 | 27.00 |
| Vicuna-13b | 28.13 | 4.36 | 16.46 | 15.00 |
| Chinese-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 |
Wir haben den Flores-101-Datensatz verwendet, um die mehrsprachige Fähigkeit des Modells zu bewerten. Flores-101 deckt 101 Sprachen auf der ganzen Welt ab. Die Daten stammen aus verschiedenen Bereichen wie Nachrichten, Reiseleitfäden und Büchern. Wir haben die offizielle UN -Sprache (Arabisch, Chinesisch, Englisch, Französisch, Russisch und Spanisch) sowie Deutsch und Japanisch als Testsprachen ausgewählt. Wir haben OpenCompass verwendet, um 8-Schuss-Tests an sieben Unteraufgaben in Flores-101 durchzuführen, darunter chinesisch-englisch, chinesisch-französisch, chinesisch, chinesisch-arab, chinesisch-russischen, chinesisch-japan und chinesisch-kern.
| Cn-en | CN-FR | CN-ES | CN-AR | CN-ru | CN-JP | CN-de | Durchschnitt | |
|---|---|---|---|---|---|---|---|---|
| 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 |
| Lama-7b | 17.27 | 12.02 | 9.54 | 0,00 | 4.47 | 1.41 | 8.73 | 7.63 |
| LAMA2-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 | Durchschnitt | |
|---|---|---|---|---|---|---|---|---|
| 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 |
| LAMA-13B | 21.75 | 16.16 | 13.29 | 0,58 | 7.61 | 0,41 | 10.66 | 10.07 |
| LAMA2-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 |
| Chinese-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 |
Die Modellgewichte, Quellcodes und Konfigurationen, die für die Inferenz erforderlich sind, wurden in Hugging Face veröffentlicht. Wir demonstrieren hier eine Vielzahl von Argumentation. Das Programm lädt die erforderlichen Ressourcen automatisch vom Umarmungsgesicht herunter.
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 ))
登鹳雀楼- >王之涣
夜雨寄北- >李商隐In den beiden oben genannten Codes lädt das Modell die angegebenen
device_map='auto'und alle verfügbaren Grafikkarten werden verwendet. Wenn Sie das zu verwendende Gerät angeben müssen, können Sie eine Methode wieexport CUDA_VISIBLE_DEVICES=0,1verwenden (die Grafikkarten 0 und 1 werden verwendet).
python cli_demo.pyDieses Befehlszeilen -Tool ist für Chat -Szenarien konzipiert, sodass wir keine Aufruf -Basismodelle mit diesem Tool unterstützen.
Wenn Sie sich auf Stromleiter verlassen, um den folgenden Befehl auszuführen, wird ein Webdienst lokal gestartet, und die von der Konsole angegebene Adresse wird in den Browser gegeben, um zugreifen zu können. Dieses Web -Demo -Tool ist für Chat -Szenarien konzipiert, sodass wir keine Aufruf -Basismodelle mit diesem Tool unterstützen.
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(错误的)
Um verschiedenen Benutzern und Plattformen das Baichuan 2-Modell auszuführen, haben wir die entsprechende quantitative Arbeit für das Baichuan 2-Modell (einschließlich Baichuan2-7b-Chat und Baichuan2-13b-Chat) erledigt, um den Benutzern das Baichuan 2-Modell auf eigene Plattform schnell und effizient einzusetzen.
Baichuan 2 übernimmt den quantitativen Ansatz der Community -Mainstream: BitsandBytes. Diese Methode kann sicherstellen, dass der Quantisierungseffekt im Grunde nicht verloren geht. BitsandBytes unterstützt 8Bit und 4bits Quantisierung, von denen 4bits FP4- und NF4 -Formate unterstützt.
Basierend auf dieser Quantisierungsmethode unterstützt Baichuan 2 zwei Modi: Online -Quantisierung und Offline -Quantisierung.
Für die Online-Quantisierung unterstützen wir quantize() und cuda() Quantization. Der Code zur Implementierung des gesamten Modells ist sehr einfach.
8bit Online -Quantifizierung:
model = AutoModelForCausalLM . from_pretrained ( "baichuan-inc/Baichuan2-7B-Chat" , torch_dtype = torch . float16 , trust_remote_code = True )
model = model . quantize ( 8 ). cuda () 4bit Online Quantisierung:
model = AutoModelForCausalLM . from_pretrained ( "baichuan-inc/Baichuan2-7B-Chat" , torch_dtype = torch . float16 , trust_remote_code = True )
model = model . quantize ( 4 ). cuda () Es ist zu beachten, dass Benutzer bei der Verwendung der from_pretrained -Schnittstelle im Allgemeinen device_map="auto" hinzufügen.
Um die Verwendung der Benutzer zu erleichtern, bieten wir den Benutzern die offline quantisierte Version Baichuan2-7b-CHAT-4bits zum Herunterladen an. Für den Benutzer ist es sehr einfach, das Baichuan2-7b-Chat-4bit-Modell zu laden, muss nur ausgeführt werden:
model = AutoModelForCausalLM . from_pretrained ( "baichuan-inc/Baichuan2-7B-Chat-4bits" , device_map = "auto" , trust_remote_code = True )Für 8Bits -Offline -Quantisierung stellen wir die entsprechende Version nicht zur Verfügung, da die Bibliothek der umarmenden Gesichtstransformatoren die entsprechende API -Schnittstelle bereitstellt, mit der das Speicher und das Laden des 8Bits quantitativen Modells problemlos implementiert werden können. Benutzer können das 8Bit -Modell speichern und laden: auf folgende Weise:
# 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 )Vergleich der Verwendung von Video -Speicher vor und nach der Quantisierung (GPU -MEM in GB):
| Präzision | Baichuan2-7b | Baichuan2-13b |
|---|---|---|
| BF16 / FP16 | 15.3 | 27.5 |
| 8bit | 8.0 | 16.1 |
| 4bit | 5.1 | 8.6 |
Die Ergebnisse und Originalversionen bei jedem Benchmark nach der Quantisierung sind nachstehend aufgeführt:
| Modell 5-Shot | C-Eval | MMLU | CMMLU |
|---|---|---|---|
| Baichuan2-13b-Chat | 56,74 | 57.32 | 59,68 |
| Baichuan2-13b-chat-4bit | 56.05 | 56,24 | 58.82 |
| Baichuan2-7b-Chat | 54,35 | 52,93 | 54.99 |
| Baichuan2-7b-Chat-4bit | 53.04 | 51.72 | 52,84 |
C-Eval ist eine Bewertung, die an seinem Val-Set durchgeführt wird
Wie Sie sehen können, beträgt der Genauigkeitsverlust von 4bit im Verhältnis zu BFLOAT16 etwa 1-2 Prozentpunkte.
Das Baichuan 2 -Modell unterstützt die CPU -Inferenz, sollte jedoch betont werden, dass die CPU -Inferenzgeschwindigkeit relativ langsam ist. Die Modelllastmethode muss wie folgt geändert werden:
# Taking Baichuan2-7B-Chat as an example
model = AutoModelForCausalLM . from_pretrained ( "baichuan-inc/Baichuan2-7B-Chat" , torch_dtype = torch . float32 , trust_remote_code = True ) Da viele Benutzer eine Menge Optimierungsarbeiten an Baichuan 1 (Baichuan-7b, Baichuan-13b) wie Kompilierungsoptimierung, Quantisierung usw. durchgeführt haben, um diese Arbeiten auf Baichuan 2 zu null Kosten anzuwenden, können Benutzer eine Offline-Konvertierung des Baichuan-2-Modells durchführen, und sie können nach dem Konvertieren als Baichuan-1-Modell verwendet werden. Insbesondere müssen Benutzer das folgende Skript nur verwenden, um die letzte Ebene von LM_HEAD im Baichuan 2 -Modell offline zu normalisieren und lm_head.weight zu ersetzen. Nach dem Ersatz können Sie das konvertierte Modell wie das Baichuan 1 -Modell kompilieren und optimieren.
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.txtIm Folgenden geben wir ein eigenständiges Trainingsbeispiel für die Feinabstimmung von Baichuan2-7b-Base.
Trainingsdaten: data/belle_chat_ramdon_10k.json , die Beispieldaten werden aus multiturn_chat_0.8m abgetastet und die Formatkonvertierung erfolgt. Es zeigt hauptsächlich, wie Sie mehrere Datenrunden trainieren können, und garantiert den Effekt nicht.
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 TrueFür Multi-Machine-Training müssen Sie nur das Hostfile angeben, und der Inhalt ähnelt dem folgenden:
ip1 slots=8
ip2 slots=8
ip3 slots=8
ip4 slots=8
....
Geben Sie gleichzeitig den Pfad zum HosftFile im Trainingsskript an:
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 TrueDer Code unterstützt bereits leichte Feinabstimmungen wie Lora.
--use_lora True Die spezifische Konfiguration von LORA finden Sie im fine-tune.py -Skript.
Nach der Feinabstimmung mit Lora können Sie den folgenden Befehl verwenden, um das Modell zu laden:
from peft import AutoPeftModelForCausalLM
model = AutoPeftModelForCausalLM . from_pretrained ( "output" , trust_remote_code = True )Zusätzlich zum Training des Baichuan2-7b-Base-Modells mit 2,6 Billionen Token bieten wir auch weitere 11 Zwischenkontrollpunkte (jeweils etwa 0,2 bis 2,4 Billionen Token) für die Community-Forschung (Download-Adresse). Die folgende Abbildung zeigt die Effektänderungen dieser Kontrollpunkte auf den drei Benchmarks von C-Eval, MMLU und CMMLU:

???
Bereitstellen Sie Baichuan2 - 7b/Chat, Baichuan2 - 13b/Chat -Modelle mit Core ™/xiang® skalierbarem Prozessor oder mit Ruixuan ™ GPUs.
Bigdl-Llm (CPU, GPU) wird empfohlen, um eine bessere Inferenzleistung zu erzielen.
Chinesisches Betriebshandbuch, einschließlich Notizbuchunterstützung
Laden, Optimierung, Speichern von Methoden usw.
Modellfeinabwinne: Baichuan 2 (7b) hat Pytorch (2,1,0) + Transformatoren (4,36,0) + DeepSpeed (0,12.4) + Modell Feinabstimmung (0,12,4) + beschleunigt, die ohne zusätzliche Anpassung verwendet werden kann.
Inferenzeinsatz: Baichuan 2 (7b) hat nativ auf Ascend NPU -Inferenz unterstützt und kann ohne zusätzliche Anpassung verwendet werden.
Mindformers ist ein Full-Process-Entwicklungs-Kit, das auf dem MindSpore-Framework basiert, und unterstützt ein großes Modelltraining, die Feinabstimmung, die Bewertung, die Begründung und die Bereitstellung.
Die Big Model-Plattform Shengsie Big Model basiert auf dem Shengsii Mindspore AI-Framework, den Mindformers Big Model Development Kit und dem Ascend Hardware Computing Power und eröffnet die Baichuan2-7b Big Model-Funktionen für die Öffentlichkeit, und jeder ist herzlich eingeladen, sie online zu erleben.
Lama-effizientes Abtuning hat die Feinabstimmung und das fortgesetzte Training von Baichuan 2-Modellen unterstützt.
Baichuan2 (7b/13b) unterstützt Taichu T100 Beschleunigungskartenkarten, und der Prozesskanal wurde offiziell an die Öffentlichkeit geöffnet.
Wir erklären hiermit, dass unser Entwicklungsteam keine Apps entwickelt hat, die auf dem Baichuan 2 -Modell basieren, sei es auf iOS, Android, Webseiten oder einer anderen Plattform. Wir fordern alle Benutzer nachdrücklich auf, das Baichuan 2 -Modell nicht zu verwenden, um Aktivitäten durchzuführen, die die nationale soziale Sicherheit oder illegal gefährden. Darüber hinaus werden Benutzer auch gebeten, das Baichuan 2 -Modell für Internetdienste nicht zu verwenden, die nicht ordnungsgemäß überprüft und registriert wurden. Wir hoffen, dass alle Benutzer dieses Prinzip einhalten und sicherstellen können, dass die Entwicklung von Wissenschaft und Technologie in einem standardisierten und rechtlichen Umfeld durchgeführt werden kann.
Wir haben alles getan, was wir können, um die Einhaltung der während des Modelltrainings verwendeten Daten zu gewährleisten. Trotz unserer großen Bemühungen gibt es aufgrund der Komplexität des Modells und der Daten immer noch einige unvorhergesehene Probleme. Daher werden wir keine Verantwortung für Probleme übernehmen, die sich aus der Verwendung des Open -Source -Modells von Baichuan 2 ergeben, einschließlich, aber nicht beschränkt auf Probleme mit der Datensicherheit, Risiken der öffentlichen Meinung oder etwaiger Risiken und Probleme, die sich aus irreführenden, Missbrauch, Verbreitung oder unsachgemäßer Verwendung des Modells ergeben.
Die Community verwendet Baichuan 2 -Modelle, um Apache 2.0 und die Baichuan 2 Model Community -Lizenzvereinbarung zu befolgen. Das Baichuan 2 -Modell ist kommerziell nützlich.
Wenn die oben genannten Bedingungen erfüllt sind, müssen Sie die vom Baichuan 2 Model Community-Lizenzvertrag erforderlichen Bewerbungsmaterialien über die folgende E-Mail-Adresse [email protected] einreichen. Nachdem die Überprüfung genehmigt wurde, wird Baichuan Ihnen hiermit eine nicht exklusive, globale, nicht übertragbare, nicht veröffentliche, widerrufliche Commercial Copyright-Lizenz gewähren.
Um unsere Arbeit zu zitieren, verwenden Sie bitte die folgende Referenz:
@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}
}