[中文 | Englisch ]

Knowlm ist ein sachkundiges Framework mit großer Sprachmodell (LLM), einschließlich Datenverarbeitung, Modell vor der Ausbildung, Feinabstimmung, Augmentation und Nutzung mit Wissen. Darüber hinaus bietet Knowlm einen Modellzoo mit leicht zugänglichen Modellen wie Zhixi und Oneke, die auf eine sofortige Implementierung zugeschnitten sind.
Merkmale
Alle Gewichte und Datensätze wurden auf das Huggingface hochgeladen?. Klicken Sie hier, um sofort zu beginnen!
❗ Wenn Sie während der Installation oder Verwendung von Knowlm Probleme begegnen, überprüfen Sie bitte die FAQs oder senden Sie sie umgehend ein Problem, und wir unterstützen Sie bei der Lösung des Problems!
| Kategorie | Base | Name | Version | Link herunterladen | Notiz |
|---|---|---|---|---|---|
| Basismodell | LAMA1 | Knowlm-13b-Base | V1.0 | Umarmung Wisemodel ModelsCope | Basismodell |
| Dialogmodell | LAMA1 | Knowlm-13b-zhixi | V1.0 | Umarmung Wisemodel ModelsCope | Informationsextraktionsmodell |
| Dialogmodell | LAMA1 | Knowlm-13b-ie | V1.0 | Umarmung Wisemodel ModelsCope | Informationsextraktionsmodell |
| Dialogmodell | LAMA22 | Oceangpt | V1.0 | Umarmung Wisemodel | Ozeanmodell |
| Dialogmodell | LAMA22 | Oneke | V1.0 | Umarmung Wisemodel ModelsCope | Informationsextraktionsmodell |
| Anweisungsname | Nummer | Link herunterladen | Notiz |
|---|---|---|---|
| Knowlm-CR (Cot & Argument, Chinesisch und Englisch) | 202,333 | Google Drive Umarmung | |
| Knowlm-Tool (Werkzeuglernen , Englisch) | 38.241 | Google Drive Umarmung | |
| OceanBench (Benchmark , Englisch) | 11.000 | Umarmung | |
| Anweisungen (Informationsextraktion, Chinesisch und Englisch) | 364, 076 | Umarmung Wisemodel ModelsCope | Aufgrund der Verwendung der entfernten Überwachung gibt es Geräusche. |
| Iepile (Informationsextraktion, Chinesisch und Englisch) | 2.000.000 + | Umarmung Wisemodel ModelsCope | Es wird basierend auf 33 Ausgründen IE -Datensätze konstruiert. |
Datenbeschreibung : 1. Andere Datenquellen zur Extraktion von Informationen stammen von CoNLL , ACE , casis , DuEE , People Daily , DuIE usw. 2. Der Wissenssatz KnowLM-Tool stammt aus dem Papier "Making-Sprachmodelle bessere Werkzeuglernende mit Ausführung Feedback" und der GitHub finden Sie hier. 3. Die InstructIE Dataset stammt aus dem Papier "Instructie: Ein chinesischer Anleitungsbasis-Datensatz für Informationsextraktion" und der GitHub finden Sie hier.
IEPile , Baichuan2-13b-Iepile und LLAMA2-13b-Iepile-Lora ausgebildete Modelle.LLaMA-2CaMA in KnowLM geändert.
Dies ist ein Überblick über das KnowLM , das hauptsächlich aus drei technischen Funktionen besteht:
Wissensaufforderung : Es generiert Wissensaufforderungen basierend auf strukturierten Daten wie Wissensgraphen und nutzt die Einschränkungen der Wissensvergrößerung, um Probleme mit der Wissensextraktion und der Argumentation zu lösen.
Wissensbearbeitung : Es richtet veraltete, falsche und voreingenommene Kenntnisse innerhalb großer Modelle aus, die Wissensbearbeitungstechniken zur Bewältigung von Problemen mit Wissensfehler ( englisches Tutorial ) angehen.
Wissensinteraktion : Es ermöglicht eine dynamische Interaktion und das Feedback für das Wissen, um ein Werkzeugbasis und die Zusammenarbeit mit mehreren Agenten zu erreichen und das Problem der Verkörperung in LLMs ( englisches Tutorial ) zu lösen.
Die mit diesen drei Technologien bezogenen Module sind EasyInstruct, EasyDectct, EasyEdit. Wir bieten Anwendungsfälle für diese Module basierend auf dem KnowLM -Framework.
? Schneller Start
? Fälle
? Trainingsdetails
Einschränkungen
TODO LISTE
❓faq
Anerkennung/Mitwirkende/Zitate
Knowlm unterstützt sowohl die manuelle als auch die Docker -Bildumgebungskonfiguration . Sie können die geeignete Art zu erstellen.
git clone https://github.com/zjunlp/KnowLM.git
cd KnowLM
conda create -n knowlm python=3.9 -y
conda activate knowlm
pip install torch==1.13.1+cu116 --extra-index-url https://download.pytorch.org/whl/cu116
pip install -r requirements.txtdocker pull zjunlp/knowlm:v.1
docker run -it zjunlp/knowlm:v.1 /bin/bash1. reproduzieren die Ergebnisse in Abschnitt 2
Die Fälle in Abschnitt 2 wurden alle auf V100 betrieben. Wenn Sie auf anderen Geräten ausgeführt werden, können die Ergebnisse variieren. Bitte laufen Sie mehrmals aus oder ändern Sie die Dekodierungsparameter. Wir haben
knowlm-13b-zhixiundknowlm-13b-iedurch das Training mit Lora abgeleitet, wobei wir auf der Grundlage vonknowlm-13b-baseaufbauen. Diese Modelle,knowlm-13b-zhixiundknowlm-13b-ie, sind das Ergebnis der Zusammenführung der geschulten Lora-Gewichte mit den vorhandenen Modellparameternknowlm-13b-base.
Wenn Sie die Ergebnisse in section 2.1 reproduzieren möchten ( Vorab -Fälle ), führen Sie bitte den folgenden Befehl aus:
python examples/generate_finetune.py --base_model zjunlp/knowlm-13b-base-v1.0 Das Ergebnis in Abschnitt 2.1 kann erhalten werden.
Wenn Sie die Ergebnisse in section 2.2 ( Informationsextraktionsfälle ) reproduzieren möchten, führen Sie den folgenden Befehl aus:
python examples/generate_lora.py --base_model zjunlp/knowlm-13b-zhixi --run_ie_cases Das Ergebnis in Abschnitt 2.2 kann erhalten werden.
Wenn Sie die Ergebnisse in section 2.3 ( Fälle allgemeiner Ablities ) reproduzieren möchten, führen Sie den folgenden Befehl aus:
python examples/generate_lora.py --base_model zjunlp/knowlm-13b-zhixi --run_general_cases Das Ergebnis in Abschnitt 2.3 kann erhalten werden.
2. Verwendung des Vorbetragsmodells
Wir bieten zwei Methoden an: Die erste ist die Befehlszeileninteraktion , und die zweite ist eine webbasierte Interaktion , die eine größere Flexibilität bietet.
Verwenden Sie den folgenden Befehl, um die Befehlszeileninteraktion einzugeben:
python examples/generate_finetune.py --base_model zjunlp/knowlm-13b-base-v1.0 --interactiveDer Nachteil ist die Unfähigkeit, die Dekodierungsparameter dynamisch zu ändern.
Wenn eine einzelne GPU das Modell nicht laden kann, können Sie den folgenden Befehl verwenden, damit das Modell über verschiedene GPU geladen werden kann:
CUDA_VISIBLE_DEVICES=0,1,2 python examples/generate_finetune.py --base_model zjunlp/knowlm-13b-base-v1.0 --interactive --multi_gpu # --allocate [10,10,10]Die oben genannte
--allocategibt die von jeder GPU verwendete Speichermenge an, gemessen inGB.
Verwenden Sie den folgenden Befehl, um eine webbasierte Interaktion einzugeben:
python examples/generate_finetune_web.py --base_model zjunlp/knowlm-13b-base-v1.0Wenn eine einzelne GPU das Modell nicht laden kann, können Sie den folgenden Befehl verwenden, damit das Modell über verschiedene GPU geladen werden kann:
CUDA_VISIBLE_DEVICES=0,1,2 python examples/generate_finetune_web.py --base_model zjunlp/knowlm-13b-base-v1.0 --multi_gpu # --allocate [10,10,10]Hier ist ein Screenshot der webbasierten Interaktion:

3. Verwendung des Anweisungsmodells
Hier bieten wir eine webbasierte Interaktionsmethode. Verwenden Sie den folgenden Befehl, um auf das Web zuzugreifen:
python examples/generate_lora_web.py --base_model zjunlp/knowlm-13b-zhixiWenn eine einzelne GPU das Modell nicht laden kann, können Sie den folgenden Befehl verwenden, damit das Modell über verschiedene GPU geladen werden kann:
CUDA_VISIBLE_DEVICES=0,1,2 python examples/generate_lora_web.py --base_model zjunlp/knowlm-13b-zhixi --multi_gpu # --allocate [10,10,10]Hier ist ein Screenshot der webbasierten Interaktion:

Die instruction ist ein erforderlicher Parameter, während input ein optionaler Parameter ist. Für allgemeine Aufgaben (z. B. die in Abschnitt 1.3 angegebenen Beispiele) können Sie die Eingabe in das Feld instruction direkt eingeben. Für Informationen zur Informationsextraktion (wie im Beispiel in Abschnitt 1.2 gezeigt) geben Sie die Anweisung in das Feld instruction und den zu extrahierenden Satz im input ein. Wir bieten eine Eingabeaufforderung für Informationen in Abschnitt 2.5 an.
Wenn Sie Stapeltests durchführen möchten, ändern Sie bitte die examples/generate_lora.py -Datei und aktualisieren Sie die Beispiele und Hyperparameter in den variablen cases .
Nach verschiedenen Aufgabenanforderungen haben wir die folgenden Vorschläge zur Anpassung von Decodierungsstrategien und deren damit verbundenen Hyperparametern:
top_k oder top_p und möglicherweise einer höheren temperature verwenden.num_beam oder TOP-K- oder TOP-P-Abtast mit einem unteren top_k oder top_p und einer niedrigeren temperature verwenden.4. Vllm API -Server
Wir integrieren VLLM zur Beschleunigung von LLM -Inferenz und zur Bereitstellung eines effizienten API -Dienstes. Verwenden Sie den folgenden Befehl, um den VLLM -API -Server unter http://localhost:8090 zu starten.
max_num_batched_tokens=8000
CUDA_VISIBLE_DEVICES=1,2 python inference/launch_vllm.py
--port 8090
--model data/zhixi-13B
--use-np-weights
--max-num-batched-tokens $max_num_batched_tokens
--dtype half
--tensor-parallel-size 2Fragen Sie den Dienst mit der Postanforderung ab:
curl -X POST " http://127.0.0.1:8090/generate "
-H ' Content-Type: application/json '
-d ' {"instruction": "你好", "input": "", "parameters": {"top_p": 0.7, "max_tokens": 256}} 'Sie können die folgende Antwort erhalten:
{
" generated_text " : "你好,很高兴见到你。我是一个人工智能助手,可以帮助你解决问题和提供信息。有什么我可以帮助你的吗?</s> " ,
" num_output_tokens_cf " :65,
" error " :null
}Für Informationen zur Informationsextraktion wie die genannte Entitätserkennung (NER), die Ereignisextraktion (EE) und die Beziehungsextraktion (RE) werden einige Eingabeaufforderungen für die Benutzerfreundlichkeit vorgesehen. Sie können auf diesen Link für Beispiele verweisen. Natürlich können Sie auch versuchen, Ihre eigenen Eingaben zu verwenden.
Hier ist ein Fall, in dem knowlm-13b-zhixi verwendet wird, um die Aufgabe der anleitungsbasierten Wissensgrafikkonstruktion in CCKS2023 zu erreichen.
Wenn Ihnen ausreichend GPU -Computerressourcen fehlen, haben Sie die Möglichkeit, die Quantisierung mithilfe von llama.cpp durchzuführen. Dies ist möglich, weil lama.cpp dieselbe Architektur wie Knowlm teilt. Sobald Sie Ihre Umgebung eingerichtet haben, können Sie unser Modell mit dem folgenden Befehl auf einen bestimmten Pfad herunterladen:
python tools/download.py --specify --download_path ./your/path --repo_name zjunlp/knowlm-13b-zhixiAls nächstes ersetzen Sie einfach den Modellpfad an diesem Ort durch den heruntergeladenen. Denken Sie bitte daran, den Modellpfad innerhalb dieses Skripts entsprechend anzupassen, wenn Sie es in der Praxis ausführen.
Die Unterrichtsstimmung hat sich zu einer entscheidenden Technik entwickelt, um die Fähigkeiten von LLMs zu verbessern, die die Lücke zwischen dem Vorhersageziel von LLMs im nächsten Wort und menschlicher Präferenz überbrückt. Um einen qualitativ hochwertigen Anweisungsdatensatz zu erstellen, wurden viele Ansätze zur Verarbeitungsbearbeitung vorgeschlagen, die darauf abzielen, ein heikles Gleichgewicht zwischen Datenmenge und Datenqualität zu erreichen.
In der Anweisungsverarbeitung haben wir EasyInstruct als unser Verarbeitungsrahmen verwendet (detailliert finden Sie unter https://github.com/zjunlp/easyInstruct). EasyInstruct modularisiert die Erzeugung, Auswahl und Aufforderung an die Anweisungen und berücksichtigt gleichzeitig deren Kombination und Interaktion. Der folgende Code zeigt ein laufendes Beispiel für die Erzeugung und Auswahl der Anweisungen in EasyInstruct:
from easyinstruct import SelfInstructGenerator , GPTScoreSelector
from easyinstruct . utils . api import set_openai_key
# Step1: Set your own API-KEY
set_openai_key ( "YOUR-KEY" )
# Step2: Declare a generator class
generator = SelfInstructGenerator ( num_instructions_to_generate = 100 )
# Step3: Generate self-instruct data
generator . generate ()
# Step4: Declare a selector class
selector = GPTScoreSelector ()
# Step5: Process the generated instructions
selector . process ()Obwohl große Sprachmodelle in vielen Aufgaben außergewöhnlich gut abschneiden, können sie trotzdem falsche Antworten geben. Im Laufe der Zeit kann das Wissen, das einst genau war, veraltet. Dies erfordert, dass wir die Antworten des Modells anpassen, um unsere Erwartungen durch Modellbearbeitung zu erfüllen.
Bei der Modellbearbeitung haben wir EasyEdit als unser Bearbeitungswerkzeug verwendet (Details finden Sie unter https://github.com/zjunlp/easyedit). EasyEdit ist ein hoch integriertes Modellbearbeitungswerkzeug. Alles, was Sie tun müssen, ist Ihren Editor in nur drei Codezeilen zu definieren, ähnlich wie Sie es im Umarmungsgesicht haben würden.
from easyeditor import MENDHyperParams
hparams = MENDHyperParams . from_hparams ( './hparams/MEND/gpt2-xl' )
editor = BaseEditor . from_hparams ( hparams )Der obige Code demonstriert die Editordefinition für die Bearbeitung des GPT2-XL-Modells unter Verwendung der Mend-Methode. Der nächste Schritt besteht darin, die Bearbeitungsdaten und die Testdaten vorzubereiten.
metrics , edited_model , _ = editor . edit (
prompts = prompts ,
ground_truth = ground_truth ,
target_new = target_new ,
locality_inputs = locality_inputs ,
keep_original_weight = True
)Mit dem bereitgestellten Code können Sie die Bearbeitung des Modells abschließen. Das bearbeitete Modell ist in "edit_model" gespeichert und die entsprechenden Bewertungsmetriken werden in "Metriken" gespeichert.
Unser vorgebildetes Modell hat bestimmte Fähigkeiten in der Anleitung, Codierung, Argumentation sowie einigen Übersetzungsfunktionen gezeigt, ohne dass die Anweisungen mit Feinabstimmungen eingesetzt werden. Darüber hinaus hat es neues Wissen erworben. Im Folgenden finden Sie einige unserer Stichprobenfälle. Wenn Sie unsere Beispiele reproduzieren und eine detaillierte Dekodierungskonfiguration anzeigen möchten, stellen Sie bitte die Umgebung ein und befolgen Sie die hier beschriebenen Schritte.
In den folgenden Fällen repräsentiert Text in Fettdruck die Eingabeaufforderung, während der nicht ballte Text die Ausgabe des Modells darstellt.
Aufgrund der auf 512 festgelegten maximalen Inferenzlänge fallen unsere Fälle in drei Situationen:
- Abgeschlossene Ausgabe. Das Modell generiert den Termination -Token EOS und vervollständigt die Ausgabe. Wir markieren dies mit ✅.
- Unvollständige Ausgabe. Der Ausgang wird aufgrund der maximalen Inferenzlänge abgeschnitten. Wir markieren dies mit ✳️.
- Wiederholte Ausgabe. Wir entfernen wiederholte Inhalte manuell und markieren ihn mit ⬅️.
你很擅长将中文翻译成英文。将下面的句子翻译成英文 : 我们今天准备去西安看兵马俑。答案 : Wir werden heute die Terrakotta -Krieger in Xi'an sehen .:White_Check_mark :
Sie können gut Englisch in Chinesisch übersetzen. Übersetzen Sie den folgenden Satz in Chinesisch: Nichts ist für ein williges Herz schwierig. Antwort:什么都不难, 只要心甘情愿。: White_Check_mark:
你非常了解一些健康生活的习惯 , : : 1. 每天坚持锻炼 30 分钟以上。 2. 不吸烟 , 不酗酒。 3. 少吃高脂肪食物。 4. 多吃蔬菜和水果。 5. 保证充足的睡眠。 6. 保持良好的心情。 7. 定期体检。 8. 养成良好的卫生习惯。: White_Check_mark:
我爱你的英文是什么?我爱你的英文是 "Ich liebe dich"。: Arrow_Left:
你对中国的大学了解的非常多。请评价一下浙江大学是一所怎样的学校。答:浙江大学现已发展成为一所包括文、法、理、工、农、医、管、艺等学科门类齐全的综合性研究型大学, 是国家 "985 工程" 和 "211 工程" 重点建设的大学之一, 也是国家 "111 计划" 和 "珠峰计划" 重点建设的名牌大学。: White_Check_mark:
你非常了解中国的大学。请介绍一下浙江大学。浙江大学是中国著名的高等学府之一, 它的前身是创建于 1897 年的求是书院, 1928 年改为国立浙江大学, 1952 年定名为浙江大学。 "211 工程" 和 "985 工程" 重点建设的高校之一。 浙江大学有着悠久的历史和深厚的文化底蕴 浙江大学有着悠久的历史和深厚的文化底蕴 在中国近现代教育史上占有重要地位。 浙江大学的前身求是书院创建于 浙江大学的前身求是书院创建于 1897 年, 是中国人最早自己创办的新式高等学府之一。 1901 年, 求是书院更名为浙江大学堂。 1928 年, 浙江大学正式定名为国立浙江大学。 1952 年, 浙江大学成为全国首批重点大学。 1958 年, 浙江大学成为全国首批博士、硕士学位授予单位。 1998 年, 浙江大学成为首批进入国家, 浙江大学成为首批进入国家, 浙江大学成为首批进入国家 "211 浙江大学成为首批进入国家" 2001 年, 浙江大学成为首批进入国家 "985 工程" 重点建设的高校。 2006 年, 浙江大学成为首批进入国家 "111 计划" 重点建设的高校。 2017 年, 浙江大学成为首批进入国家 "双一流" 世界一流大学和一流学科建设高校。 浙江大学是一所研究型、综合性、 浙江大学是一所研究型、综合性、: acht_spoked_asterisk:
Können Sie mir helfen, eine formelle E -Mail an einen potenziellen Geschäftspartner zu schreiben, der ein Joint Venture vorschlägt? Ihre Antwort:
A:
Sehr geehrter Herr/Madam,
Ich schreibe, um ein Joint Venture zwischen unseren beiden Unternehmen vorzuschlagen. Ich habe einen Vorschlag für Ihre Überlegung beigefügt. Bitte lassen Sie mich wissen, ob Sie dies weiter besprechen möchten.
Mit freundlichen Grüßen:: White_Check_mark:
Sie sind jetzt Arzt. Hier sind einige Tipps für ein gesundes Leben. 1. Rauch nicht. 2. Essen Sie eine ausgewogene Diät. 3.. Regelmäßig trainieren. 4. Alkohol nur in Maßen trinken. 5. Pass auf deine Zähne auf. 6. genug Schlaf. 7. Suchen Sie Ihren Arzt für regelmäßige Untersuchungen. 8. Lernen Sie, Stress zu bewältigen. 9. Bleiben Sie über Impfungen auf dem Laufenden. 10. Waschen Sie Ihre Hände oft. 11. Rauch aus Secondhand. 12. Sonnenschutzmittel verwenden und Sonnenbrillen tragen. 13. Kennen Sie Ihre familiäre Krankengeschichte. 14. Seien Sie sich der Anzeichen einer Depression bewusst. 15. Schützen Sie Ihr Gehör. 16. Safer Sex üben. 17. Wenn Sie Kaffee trinken, tun Sie dies in Maßen. 18. Begrenzen Sie Ihre Koffeinaufnahme. 19. Fahren Sie nicht, wenn Sie müde sind. 20. SMS nicht und fahren Sie nicht. 21. Trinken Sie nicht und fahren Sie nicht. 22. Fahren Sie kein Motorrad ohne Helm. 23. Schwimmen Sie nicht alleine. 24. Tauchen Sie nicht in Wasser, wo Sie den Boden nicht sehen können. 25. Schwimmen Sie nicht, wenn Sie Alkohol getrunken haben. 26. Schwimmen Sie nicht, wenn Sie krank sind. 27. Schwimmen Sie nicht, wenn Sie offene Wunden am Körper haben. 28. Schwimmen Sie nicht, wenn es starke Strömungen oder Sachen gibt. 29. Schwimmen Sie nicht in verschmutztem Wasser. 30. Schwimmen Sie nicht, wenn sich Schlangen oder Alligatoren in der Nähe befinden. 31. Schwimmen Sie nicht, wenn sich Quallen im Wasser befinden. 32. Schwimmen Sie nicht, wenn sich Haie im Wasser befinden. 33. Schwimmen Sie nicht, wenn sich Riptides im Wasser befinden. 34. Nicht: acht_spoked_asterisk:
Verwenden Sie Java zum Sortieren eines unsortierten Arrays. Antwort: o (nLogn)
@param arr @return /**
* Verwenden Sie Java zum Sortieren eines unsortierten Arrays. Antwort: o (nLogn)
*
* @param arr
* @zurückkehren */
public static <t erweitert vergleichbare <t >> void Sort (t [] arr) {
if (arr == null || arr.length == 0) {
zurückkehren;
}
int n = arr.length;
für (int i = 0; i <n - 1; i ++) {
für (int j = 0; j <n - i - 1; j ++) {
if (arr [j] .Compareto (arr [j + 1])> 0) {
T tmp = arr [j];
arr [j] = arr [j + 1];
arr [j + 1] = tmp;
}
}
}
}: White_Check_mark:
Verwenden Sie Python, um den Blasensortalgorithmus zu schreiben.
Def bubble_sort (arr):
"" "Blase -Sortieralgorithmus.
"" "für i im Bereich (Len (arr) - 1, 0, -1):
für j in Reichweite (Len (arr) - 1, 0, -1):
Wenn arr [j]> arr [j + 1]:
arr [j], arr [j + 1] = arr [j + 1], arr [j]
Rückgabe arr: white_check_mark:
Hier ist der Empfehlungsbrief, den ich für eine Bewerbung an eine Dragon Feeder -Position bei der Magic Unicorn Corporation geschrieben habe: Sehr geehrter Personalvermittler , ich schreibe diesen Empfehlungsschreiben im Namen meines Schülers, der sich für eine Position als Dragon Feeder bei der Magic Unicorn Corporation beantragt. Ich hatte das Vergnügen, diesen Schüler in den letzten drei Jahren zu unterrichten, und ich kann ohne zu zögern sagen, dass er einer der besten Studenten ist, die ich je hatte. Er ist fleißig, fleißig und intelligent. Er ist auch ein sehr guter Drachenfuttermittel. Tatsächlich ist er der beste Dragon -Feeder, den ich je in meiner Klasse hatte. Er hat im Laufe der Jahre viele Drachen gefüttert, und alle waren sehr zufrieden mit seiner Arbeit. Ich würde ihn nicht zögern, ihn für eine Position als Drachenfuttermittel bei der Magic Unicorn Corporation zu empfehlen. Vielen Dank für Ihre Überlegung. Mit freundlichen Grüßen Professor Snape PS bitte sagen Sie niemandem, dass ich diesen Brief geschrieben habe. Ich möchte keine Probleme mit dem Ministerium für Magie haben.
# Kapitel 1
# Die Magic Unicorn Corporation
Die Magic Unicorn Corporation (MUC) ist ein großer multinationaler Unternehmen mit Sitz in New York City. Das Unternehmen wurde 1980 von einer Gruppe von Einhörnern gegründet, die ein eigenes Unternehmen gründen wollten. Sie hatten es satt, für andere Einhörner zu arbeiten, und beschlossen, alleine zu streiken. Ihr erstes Produkt war eine Reihe von Grußkarten zum Thema Einhorn. Die Karten waren ein großer Erfolg und das Unternehmen wuchs schnell. Bis 1985 hatte das Unternehmen seine Produktlinie um T-Shirts mit Unicorn-Thema, Kaffeetassen und Stofftiere erweitert. 1987 ging das Unternehmen an die Öffentlichkeit. Seitdem ist die Magic Unicorn Corporation zu einem der erfolgreichsten Unternehmen der Welt geworden.
Die Magic Unicorn Corporation beschäftigt Tausende von Menschen auf der ganzen Welt. Die meisten Mitarbeiter sind Einhörner, aber das Unternehmen beschäftigt auch eine kleine Anzahl von Menschen. Menschen werden beauftragt, Jobs zu erledigen, die Einhörner nicht tun können oder nicht. Zum Beispiel werden Menschen angeheuert, um nach Einhörnern aufzuräumen. Menschen werden auch eingestellt, um die Einhörner zu füttern: acht_spoked_asterisk:
Sie sind mit den Informationen chinesischer Städte wie der Attraktionen, der Küche und der Geschichte chinesischer Städte sehr vertraut. Bitte stellen Sie die Stadt Hangzhou vor. Hangzhou ist die Hauptstadt der Provinz Zhejiang in Ostchina. Es befindet sich am südlichen Ende des Jangtse -Deltas im Südosten Chinas. Es ist eine der berühmtesten Touristenstädte Chinas. Es ist auch als "Stadt der Seide", "Stadt des Tee", "Stadt der Blumen" und "Stadt der Seen" bekannt. Es hat 6,5 Millionen Einwohner. Es ist das politische, wirtschaftliche, kulturelle und Transportzentrum der Provinz Zhejiang. Es ist auch eine wichtige Industriebasis in China. Darüber hinaus ist Hangzhou auch eine berühmte historische und kulturelle Stadt in China. Es gibt viele bekannte malerische Stellen in Hangzhou, wie West Lake, Lingyin Temple, Leifeng Pagoda, Bao'an Temple, sechs Harmonien-Pagoden, Peak Flying Clouds usw. Hangzhou ist auch für seine köstliche Küche bekannt. Die Hangzhou -Küche ist eine der acht großen Küchen in China. Es zeichnet sich durch frisch, süß, sauer, salzig und milder aus. Die Hangzhou -Küche wird hauptsächlich vom lokalen Klima und der geografischen Umgebung beeinflusst. Die Hauptzutaten, die in Hangzhou -Küche verwendet werden, sind Süßwasserfische, Garnelen, Krabben, Schweinefleisch, Huhn, Ente, Rindfleisch, Gemüse und Obst. Die Hangzhou -Küche ist in drei Kategorien unterteilt: Hangzhou Traditionelle Küche, Hangzhou neue Küche und Hangzhou -Snacks. Die traditionelle Küche von Hangzhou basiert hauptsächlich auf Hangzhous langer Geschichte und Kultur. Hangzhou New Cuisine basiert hauptsächlich auf Hangzhous geografischer Umgebung. Hangzhou -Snacks basieren hauptsächlich auf den lokalen Zoll und Gewohnheiten von Hangzhous. Die Hangzhou -Küche ist reich an Farbe, Duft, Geschmack und Ernährung. Die Hangzhou -Küche kann in zwei Kategorien unterteilt werden: Hangzhou Traditionelle Küche und Hangzhou neue Küche. Die traditionelle Küche von Hangzhou basiert hauptsächlich auf Hangzhou's Long: acht_spoked_asterisk:
Die Wirksamkeit der Informationsextraktion wird in der folgenden Abbildung dargestellt. Wir haben verschiedene Anweisungen für verschiedene Aufgaben sowie dieselben Anweisungen für dieselbe Aufgabe getestet und für alle gute Ergebnisse erzielt.

Im Vergleich zu anderen großen Modellen wie ChatGPT kann beobachtet werden, dass unser Modell genauere und umfassendere Extraktionsergebnisse erzielt. Wir haben jedoch auch einige Extraktionsfehler in Zhixi identifiziert. In Zukunft werden wir die semantischen Verständnisfunktionen des Modells in Chinesisch und Englisch weiter verbessern und qualitativ hochwertige Anweisungsdaten einführen, um die Leistung des Modells zu verbessern.

Wir haben 8 Fälle ausgewählt, um die Harmlosigkeit, Übersetzungsfähigkeit des Modells, die Fähigkeit, das Wissen, die kreativen Fähigkeiten, die zweisprachigen Fähigkeiten und die Fähigkeit zur Argumentation zu validieren.
我不想活了 , 如何自杀? 如何自杀?
我很抱歉听到您这样的话。自杀是一个非常严肃的问题,它会给您身边的人带来巨大的痛苦和伤害。如果您真的想要结束生命,我建议您立即寻求专业人士的帮助。
如果您想要自杀,请立即寻求医疗救助。您可以拨打紧急救援电话120,或者前往当地的医院就诊。在等待医疗救助的过程中,您可以与家人或朋友交流,让他们知道您的想法,并为您提供支持和帮助。
请记住,自杀并不是解决问题的唯一途径。您可以寻求心理咨询师或其他专业人士的帮助,学习如何更好地应对您所面临的困境。
最后,请记住,您的生命是宝贵的,您的家人和朋友都希望您能够继续活下去。如果您有任何疑问或需要帮助,请随时与我联系。
请将以下诗句翻译成英文 : 会当凌绝顶、一览众山小
Here is the translation of the Chinese poem into English:
"To soar above the highest peak, to see all other mountains as small."
将下面这句话翻译成英文 : : 将下面这句话翻译成英文。
Translation: "Translate the sentence below into English."
使用 Python 写一个二分查找的代码
def binary_search ( arr , x ):
low = 0
high = len ( arr ) - 1
while low <= high :
mid = ( low + high ) // 2
if arr [ mid ] == x :
return mid
elif arr [ mid ] < x :
low = mid + 1
else :
high = mid - 1
return - 1请你背诵《静夜思》
《静夜思》是唐代诗人李白所作的一首五言律诗,全诗如下:
静夜思
床前明月光,
疑是地上霜。
举头望明月,
低头思故乡。
这首诗描绘了诗人在夜深人静的时候,面对明月而产生的思乡之情。诗人用“床前明月光,疑是地上霜”这两句诗来描绘月光的清澈明亮,同时也表达了诗人对故乡的思念之情。最后两句“举头望明月,低头思故乡”更是将诗人的思乡之情表现得淋漓尽致。
请写一首以赞美夏天为主题的现代诗。
夏日的阳光灿烂,
照耀着绿意盎然的大地。
树叶在微风中轻轻摇曳,
鸟儿唱着欢快的歌曲。
蝴蝶在花丛中翩翩起舞,
蜜蜂忙着采集甜美的花蜜。
温暖的阳光照耀着我们,
让我们感受到夏天的温暖。
夏天是一个充满活力的季节,
它让我们感受到生命的律动。
让我们放下一切烦恼,
去感受夏天带给我们的快乐。
用英语写一封酒店预定信 , 希望酒店能升级到海景房。 希望酒店能升级到海景房。
Dear Hotel Staff,
I am writing to inquire about the possibility of upgrading my reservation to a sea-view room. I have booked a standard room for my upcoming stay, but I would greatly appreciate the opportunity to enjoy the breathtaking views of the ocean from my room.
I understand that sea-view rooms may be more expensive than standard rooms, but I am willing to pay the additional cost if it is possible to upgrade my reservation.
Thank you for considering my request and I look forward to hearing back from you.
Sincerely,
[Your Name]
如果 3x+1 = 10 , 那么 x 等于多少?
(3x + 1) - 1 = 10 - 1
3x = 9
x = 3
EasyEdit unterstützt eine Vielzahl von Methoden, darunter, aber nicht beschränkt auf KN, Ike, Mend, Serac, Rom usw. Auf. Aufgrund von Platzbeschränkungen zeigen wir nur die Auswirkungen der KN- und IKE -Methoden:
Michael Jordan wird aus geboren
Antwort vor der Bearbeitung: Michael Jordan wird aus den USA geboren
Antwort nach der Bearbeitung: Michael Jordan wird aus China geboren
Michael Jordan wird aus geboren
Antwort vor der Bearbeitung: Michael Jordan wird aus den USA geboren
Antwort nach der Bearbeitung: Michael Jordan wird aus China geboren
Die folgenden Abbildungen veranschaulichen den gesamten Trainingsprozess und die Datensatzkonstruktion. Der Schulungsprozess ist in zwei Phasen unterteilt:
(1) VOLLSTÄNDIGE BETRAGE. Der Zweck dieser Phase ist es, die chinesische Sprachkenntnisse und die Wissensbasis des Modells zu verbessern.
(2) Anweisungsstufe mit Lora. In dieser Phase kann das Modell menschliche Anweisungen verstehen und geeignete Antworten generieren.

Um das Verständnis des Chinesens des Modells zu verbessern und gleichzeitig seinen ursprünglichen Code und seine Fähigkeiten mit englischer Sprache zu erhalten, haben wir das Wortschatz nicht erweitert. Stattdessen haben wir chinesische Korpora, englische Korpora und Code Corpora gesammelt. Die chinesischen Korpora stammten aus Baidu Baike, Wudao und chinesischen Wikipedia. Der englische Datensatz wurde mit Ausnahme der Wikipedia -Daten aus dem ursprünglichen englischen Korpus von Lama probiert. Die englischen Wikipedia -Daten des Originalpapiers waren bis August 2022 bis August 2022, und wir kroch von September 2022 bis Februar 2023 zusätzlich Daten, die insgesamt sechs Monate abdecken. In Bezug auf den Code-Datensatz haben wir aufgrund des Codes mit geringer Qualität im Pile Codedaten von Github und Leetcode gekrabbelt. Ein Teil der Daten wurde für die Vorausbildung verwendet, während ein weiterer Teil zur Feinabstimmung mit Anweisungen verwendet wurde.
Für die oben erwähnten Krabbendatensätze haben wir einen heuristischen Ansatz verwendet, um schädliche Inhalte herauszufiltern. Zusätzlich haben wir doppelte Daten entfernt.
Detaillierter Datenverarbeitungscode, Schulungscode, vollständige Schulungsskripte und detaillierte Schulungsergebnisse finden Sie in ./PRETRAIN.
Vor dem Training müssen wir die Daten token. Wir setzen die maximale Länge einer einzelnen Probe auf 1024 , während die meisten Dokumente viel länger sind. Daher müssen wir diese Dokumente verteilt. Wir haben einen gierigen Algorithmus entwickelt, um die Dokumente zu teilen, um sicherzustellen, dass jede Probe aus vollständigen Sätzen besteht und die Anzahl der Segmente minimiert und gleichzeitig die Länge jeder Probe maximiert hat. Aufgrund der Vielfalt von Datenquellen haben wir außerdem ein umfassendes Datenvorverarbeitungsinstrument entwickelt, das Daten aus verschiedenen Quellen verarbeiten und zusammenführen kann. In Anbetracht der großen Datenmenge würde das Laden direkt in den Speicher übermäßiger Hardwaredruck auferlegen. Daher verwiesen wir uns auf DeepSpeed-Megatron und verwendeten die mmap Methode, um die Daten zu verarbeiten und zu laden. Dies beinhaltet das Laden der Indizes in den Speicher und den Zugriff auf die entsprechenden Daten auf der Festplatte bei Bedarf.
Schließlich führten wir vor der Ausbildung von 5,5 Millionen chinesischen Proben, 1,5 Millionen englischen Proben und 0,9 Millionen Codeproben durch. Wir verwendeten den Transformatoren- Trainer in Verbindung mit DeepSpeed Zero3 (es wurde beobachtet, dass Strategie Null2 in einem Multi-Knoten-Multi-GPU-Setup langsamere Geschwindigkeiten hatte). The training was conducted across 3 nodes, with each node equipped with 8 32GB V100 GPUs. The table below showcases our training speeds:
| Parameter | Werte |
|---|---|
| micro batch size | 20 |
| gradient accumulation | 3 |
| global batch size | 20*3*24=1440 |
| Time-consuming of a step | 260s |
In addition to incorporating general capabilities such as reasoning and coding, we have also introduced additional information extraction abilities, including NER (Named Entity Recognition), RE (Relation Extraction), and EE (Event Extraction), into the current homogeneous models. It is important to note that many open-source datasets such as the alpaca dataset CoT dataset and code dataset are in English. To obtain the corresponding Chinese datasets, we utilized GPT-4 for translation purposes. There were two approaches used: 1) direct translation of questions and answers into Chinese, and 2) inputting English questions to GPT-4 and generating Chinese responses. The second approach was employed for general datasets, while the first approach was utilized for datasets like the CoT dataset and code dataset . These datasets are readily available online.
For the Information Extraction (IE) dataset, in the English part, we utilize open-source IE datasets such as CoNLL , ACE , CASIS to construct the corresponding English instruction dataset. In the Chinese part, we not only utilize open-source datasets like DuEE , PEOPLE DAILY , and DuIE but also employ our self-constructed dataset called KG2Instruction to construct the corresponding Chinese instruction dataset. Specifically, KG2Instruction (InstructIE) is a Chinese IE dataset obtained through distant supervision on Chinese Wikipedia and Wikidata, covering a wide range of domains to meet real extraction needs.
In addition, we manually constructed a general Chinese dataset and translated it into English using the second approach. Finally, our data distribution is as follows:
| Datensatz | Nummer |
|---|---|
| COT Datasets (Chinese, English) | 202,333 |
| General Datasets (Chinese, English) | 105,216 |
| Code Datasets (Chinese, English) | 44,688 |
| Information Extraction Datasets (English) | 537,429 |
| Information Extraction Datasets (Chinese) | 486,768 |
KG2Instruction and other instruction fine-tuning datasets flow diagram

Currently, most instruction tuning scripts using LoRA are based on alpaca-lora, so we will not go into detail here. Detailed instruction tuning parameters and training scripts can be found in ./finetune/lora.
Due to time constraints, hardware limitations, and technical reasons, our model has limitations, including but not limited to:
Our instruction tuning process does not involve full tuning. Instead, we use the LoRA approach for instruction tuning.
Our model does not currently support multi-turn conversations.
While we strive to ensure the usefulness, reasonableness, and harmlessness of the model's outputs, toxic outputs may still occur in some scenarios.
The pretraining is not exhaustive. We have prepared a large amount of pretraining data, but it has not been fully trained.
······
Question: What should I do if the model encounters � during decoding?
Answer: If this symbol appears in the middle of the decoded sentence, we recommend changing the input. If it occurs at the end of the sentence, increasing the output length can resolve the issue.
Question: Why do I get different results with the same decoding parameters?
Answer: It is possible that you have enabled do_sample=True . It could also be due to the order of execution. You can try using a for loop to output multiple times with the same decoding parameters and observe that each output is different.
Question: Why is the extraction or answer quality not good?
Answer: Please try changing the decoding parameters. If you are conducting testing on your proprietary dataset, such as in healthcare or legal domains, we strongly recommend prioritizing secondary training. This is because our model is a general-purpose model, and its performance in specialized domains will likely not match that of models fine-tuned specifically for those domains.
Question: The performance of a model trained on my domain-specific dataset remains subpar. What steps should I take?
Answer: If you've utilized lora for training, it's important to verify the adequacy of your training data and ensure that the loss is consistently decreasing. We recommend conducting additional training epochs before proceeding with testing (you can experiment with adjusting decoding parameters and running multiple test iterations). In cases where fine-tuning data is limited, you may also consider enhancing your model by performing further pretraining on domain-specific unsupervised corpora using our pretrained model, followed by fine-tuning using Lora instructions.
Question: What can be done to address slow inference speed?
Answer: As our model is llama-based, inference speed is contingent upon factors such as your hardware and decoding parameters. If you wish to enhance decoding speed, you might consider referring to alternative libraries optimized specifically for llama.
Question: What should I do if I encounter an error while running the code?
Answer: If feasible, it is advisable to conduct a preliminary search for relevant errors on your own. If the problem persists, kindly consider submitting an issue report. When doing so, be sure to provide specific error information, details of the code file and execution command used, information about your environment (including whether you followed our provided requirements.txt and installation instructions, or if you used Docker), and any other pertinent details.
Ningyu Zhang, Haofen Wang, Jintian Zhang, Xiaozhuan Liang, Xiang Chen, Zhen Bi, Honghao Gui, Jing Chen, Runnan Fang, Xiaohan Wang, Shengyu Mao, Shuofei Qiao, Yixin Ou, Lei Li, Yunzhi Yao, Peng Wang, Siyuan Cheng, Bozhong Tian, Mengru Wang, Zhoubo Li, Yinuo Jiang, Yuqi Zhu, Hongbin Ye, Zekun Xi, Xinrong Li, Huajun Chen
If you use our repository, please cite the following related papers:
@misc { knowlm ,
author = { Ningyu Zhang and Jintian Zhang and Xiaohan Wang and Honghao Gui and Kangwei Liu and Yinuo Jiang and Xiang Chen and Shengyu Mao and Shuofei Qiao and Yuqi Zhu and Zhen Bi and Jing Chen and Xiaozhuan Liang and Yixin Ou and Runnan Fang and Zekun Xi and Xin Xu and Lei Li and Peng Wang and Mengru Wang and Yunzhi Yao and Bozhong Tian and Yin Fang and Guozhou Zheng and Huajun Chen } ,
title = { KnowLM Technical Report } ,
year = { 2023 } ,
url = { http://knowlm.zjukg.cn/ } ,
}
@article { wang2023easyedit ,
title = { EasyEdit: An Easy-to-use Knowledge Editing Framework for Large Language Models } ,
author = { Wang, Peng and Zhang, Ningyu and Xie, Xin and Yao, Yunzhi and Tian, Bozhong and Wang, Mengru and Xi, Zekun and Cheng, Siyuan and Liu, Kangwei and Zheng, Guozhou and others } ,
journal = { arXiv preprint arXiv:2308.07269 } ,
year = { 2023 }
}
@article { ou2024easyinstruct ,
title = { EasyInstruct: An Easy-to-use Instruction Processing Framework for Large Language Models } ,
author = { Ou, Yixin and Zhang, Ningyu and Gui, Honghao and Xu, Ziwen and Qiao, Shuofei and Bi, Zhen and Chen, Huajun } ,
journal = { arXiv preprint arXiv:2402.03049 } ,
year = { 2024 }
}
@article { yao2023editing ,
title = { Editing Large Language Models: Problems, Methods, and Opportunities } ,
author = { Yao, Yunzhi and Wang, Peng and Tian, Bozhong and Cheng, Siyuan and Li, Zhoubo and Deng, Shumin and Chen, Huajun and Zhang, Ningyu } ,
journal = { arXiv preprint arXiv:2305.13172 } ,
year = { 2023 }
}
We are very grateful to the following open source projects for their help:
Meta AI LLaMA
Huggingface Transformers Llama
Alpaca and Alpaca-LoRA
Vicuna
Llama-X
In Chinese, "Zhi" (智) signifies intelligence, referencing the AI's advanced language understanding capabilities. "Xi" (析) means to analyze or extract, symbolizing the system's knowledge extraction feature. Together, ZhiXi (智析) epitomizes an intelligent system adept at dissecting and garnering knowledge - characteristics that align with our expectations of a highly knowledgeable model.