[中文|英語]

Knowlmは、データ処理、モデルの事前トレーニング、微調整、増強、および知識を備えた利用を含む知識豊富な大手言語モデル(LLM)フレームワークです。さらに、Knowlmは、ZhixiやOnekeなどの簡単にアクセス可能なモデルを備えたモデル動物園を提供します。
特徴
すべての重みとデータセットがHuggingfaceにアップロードされていますか?すぐに開始するには、ここをクリックしてください!
nowlmのインストールまたは使用中に問題が発生した場合は、FAQを確認するか、すぐに問題を提出してください。問題の解決をお手伝いします。
| カテゴリ | ベース | 名前 | バージョン | ダウンロードリンク | 注記 |
|---|---|---|---|---|---|
| ベースモデル | llama1 | Knowlm-13b-base | v1.0 | ハギングフェイス wisemodel ModelScope | ベースモデル |
| 対話モデル | llama1 | Knowlm-13b-zhixi | v1.0 | ハギングフェイス wisemodel ModelScope | 情報抽出モデル |
| 対話モデル | llama1 | Knowlm-13b-ie | v1.0 | ハギングフェイス wisemodel ModelScope | 情報抽出モデル |
| 対話モデル | llama2 | Oceangpt | v1.0 | ハギングフェイス wisemodel | 海洋モデル |
| 対話モデル | llama2 | oneke | v1.0 | ハギングフェイス wisemodel ModelScope | 情報抽出モデル |
| 命令データセット名 | 番号 | ダウンロードリンク | 注記 |
|---|---|---|---|
| Knowlm-cr(Cot&Reasoning、中国語と英語) | 202,333 | Googleドライブ ハギングフェイス | |
| Knowlm-Tool(ツール学習、英語) | 38,241 | Googleドライブ ハギングフェイス | |
| オーシャンベンチ(ベンチマーク、英語) | 11,000 | ハギングフェイス | |
| Instandie(情報抽出、中国語および英語) | 364、076 | ハギングフェイス wisemodel ModelScope | 遠い監督を使用しているため、ノイズが存在します。 |
| IEPILE(情報抽出、中国語および英語) | 2,000,000 + | ハギングフェイス wisemodel ModelScope | 33のExsiting IEデータセットに基づいて構築されています。 |
データの説明:1。情報抽出KnowLM-Toolためのその他のデータソースは、 CoNLL 、 ACE 、 casis 、 DuEE 、 People Daily 、 DuIEなどからのものです。 3. InstructIE Datasetは、「Instructie:中国の命令ベースの情報抽出データセット」という論文から来ており、GitHubはここにあります。
IEPile 、BAICHUAN2-13B-IEPILE-LORAおよびLLAMA2-13B-IEPILE-LORAで訓練された2つのモデルをリリースします。LLaMA-2の微調整とvllmをサポートするCaMAからKnowLMに変更されました。
これは、主に3つの技術的特徴で構成されるKnowLMの概要です。
知識のプロンプト:知識グラフなどの構造化されたデータに基づいて知識プロンプトを生成し、知識の増強制約を利用して知識の抽出と推論の問題に対処します。
知識編集:知識の誤関係の問題に取り組むために知識編集手法を使用して、大規模なモデル内で時代遅れの、誤った、偏った知識を調整します(英語のチュートリアル)。
知識の相互作用:ダイナミックな知識の相互作用とフィードバックを可能にして、ツールベースの学習とマルチエージェントコラボレーションを実現し、LLMSの具体化認知の問題を解決します(英語チュートリアル)。
これら3つのテクノロジーに関連するモジュールは、EasyInstruct、EasyDetect、EasyEditです。 KnowLMフレームワークに基づいて、これらのモジュールのユースケースを提供します。
?クイックスタート
?ケース
?トレーニングの詳細
?制限
?todoリスト
❓faq
謝辞/貢献者/引用
Knowlmは、マニュアルとDockerの両方の画像環境構成をサポートしているため、適切な構築方法を選択できます。
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。セクション2で結果を再現します
セクション2のケースはすべてV100で実行されました。他のデバイスで実行されている場合、結果は異なる場合があります。複数回実行するか、デコードパラメーターを変更してください。
knowlm-13b-baseの基礎を築き、Loraを使用したトレーニングを通じてknowlm-13b-zhixiおよびknowlm-13b-ieを導き出しました。これらのモデルでknowlm-13b-zhixiおよびknowlm-13b-ieは、訓練されたLORAウェイトを既存のknowlm-13b-baseモデルパラメーターと統合した結果です。
section 2.1 (事前化の場合)で結果を再現したい場合は、次のコマンドを実行してください。
python examples/generate_finetune.py --base_model zjunlp/knowlm-13b-base-v1.0セクション2.1の結果を取得できます。
section 2.2 (情報抽出ケース)の結果を再現したい場合は、次のコマンドを実行してください。
python examples/generate_lora.py --base_model zjunlp/knowlm-13b-zhixi --run_ie_casesセクション2.2の結果を取得できます。
section 2.3 (一般的なケース)の結果を再現したい場合は、次のコマンドを実行してください。
python examples/generate_lora.py --base_model zjunlp/knowlm-13b-zhixi --run_general_casesセクション2.3の結果を取得できます。
2。事前トレーニングモデルの使用
2つの方法を提供します。最初の方法はコマンドラインインタラクションであり、2つ目はWebベースのインタラクションであり、柔軟性が向上します。
次のコマンドを使用して、コマンドラインインタラクションを入力します。
python examples/generate_finetune.py --base_model zjunlp/knowlm-13b-base-v1.0 --interactive欠点は、デコードパラメーターを動的に変更できないことです。
単一のGPUがモデルをロードできない場合は、次のコマンドを利用して、モデルを異なるGPUでロードできるようにすることができます。
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]上記の
--allocate、GBで測定された各GPUで使用されるメモリの量を指定します。
次のコマンドを使用して、 Webベースの相互作用を入力します。
python examples/generate_finetune_web.py --base_model zjunlp/knowlm-13b-base-v1.0単一のGPUがモデルをロードできない場合は、次のコマンドを利用して、モデルを異なるGPUでロードできるようにすることができます。
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]Webベースのインタラクションのスクリーンショットは次のとおりです。

3。命令チューニングモデルの使用
ここでは、Webベースのインタラクション方法を提供します。次のコマンドを使用してWebにアクセスします。
python examples/generate_lora_web.py --base_model zjunlp/knowlm-13b-zhixi単一のGPUがモデルをロードできない場合は、次のコマンドを利用して、モデルを異なるGPUでロードできるようにすることができます。
CUDA_VISIBLE_DEVICES=0,1,2 python examples/generate_lora_web.py --base_model zjunlp/knowlm-13b-zhixi --multi_gpu # --allocate [10,10,10]Webベースのインタラクションのスクリーンショットは次のとおりです。

instruction必要なパラメーターであり、 inputはオプションのパラメーターです。一般的なタスク(セクション1.3で提供されている例など)の場合、 instructionフィールドに入力を直接入力できます。情報抽出タスク(セクション1.2の例に示すように)については、 instructionフィールドに命令とinputフィールドに抽出される文を入力してください。セクション2.5で情報抽出プロンプトを提供します。
バッチテストを実行する場合は、 examples/generate_lora.pyファイルを変更し、変数のcasesの例とハイパーパラメーターを更新してください。
さまざまなタスク要件によれば、デコード戦略と関連するハイパーパラメーターを調整するための次の提案があります。
top_kまたはtop_p 、およびおそらくより高いtemperatureでTOP-KまたはTOP-P(核)サンプリングを使用することを検討してください。num_beamでビーム検索、または低いtop_kまたはtop_pを使用したtop-kまたはtop-pサンプリングを使用することをtemperatureしてください。4。VLLMAPIサーバー
LLM推論を加速し、効率的なAPIサービスを提供するためにVLLMを統合します。次のコマンドを使用して、 http://localhost:8090でVLLM APIサーバーを起動します。
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 2POSTリクエストを使用してサービスをクエリします。
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}} '次の回答を得ることができます。
{
" generated_text " : "你好,很高兴见到你。我是一个人工智能助手,可以帮助你解决问题和提供信息。有什么我可以帮助你的吗?</s> " ,
" num_output_tokens_cf " :65,
" error " :null
}名前付きエンティティ認識(NER)、イベント抽出(EE)、関係抽出(RE)などの情報抽出タスクについては、使いやすさのプロンプトを提供します。例については、このリンクを参照できます。もちろん、独自のプロンプトを使用してみることもできます。
CCKS2023の命令ベースの知識グラフ構造タスクを達成するために、 knowlm-13b-zhixi使用する場合があります。
十分なGPUコンピューティングリソースが不足していることに気付いた場合は、llama.cppを使用して量子化を実行するオプションがあります。これは、llama.cppがKnowlmと同じアーキテクチャを共有しているため可能です。環境をセットアップしたら、次のコマンドを使用してモデルを指定されたパスにダウンロードできます。
python tools/download.py --specify --download_path ./your/path --repo_name zjunlp/knowlm-13b-zhixi次に、この場所のモデルパスをダウンロードしたものに置き換えます。実際にそれを実行するときは、このスクリプト内のモデルパスをそれに応じて調整することを忘れないでください。
命令の調整は、LLMSの能力を強化するための重要な手法として浮上しており、LLMSの次の単語予測目標と人間の好みの間のギャップを埋めることができました。高品質の命令データセットを構築するために、データ量とデータ品質の微妙なバランスを達成することを目的とした多くの命令処理アプローチが提案されています。
命令処理では、EasyInstructを処理フレームワークとして利用しました(詳細はhttps://github.com/zjunlp/easyinstructにあります)。 EasyInstructは、命令の生成、選択、およびプロンプトのモジュール化と、組み合わせと相互作用を検討します。以下のコードは、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 ()大規模な言語モデルは多くのタスクで非常にうまく機能しますが、誤った回答を提供することができます。さらに、時間が経つにつれて、かつて正確だった知識は時代遅れになる可能性があります。これには、モデルの編集を通じて期待を満たすためにモデルの応答を調整する必要があります。
モデルの編集では、EasyEditを編集ツールとして利用しました(詳細はhttps://github.com/zjunlp/easyeditにあります)。 EasyEditは、高度に統合されたモデル編集ツールです。あなたがする必要があるのは、あなたが顔を抱き締める方法と同様に、あなたの編集者をわずか3行のコードで定義することです。
from easyeditor import MENDHyperParams
hparams = MENDHyperParams . from_hparams ( './hparams/MEND/gpt2-xl' )
editor = BaseEditor . from_hparams ( hparams )上記のコードは、MENDメソッドを使用してGPT2-XLモデルを編集するためのエディター定義を示しています。次のステップは、編集データとテストデータを準備することです。
metrics , edited_model , _ = editor . edit (
prompts = prompts ,
ground_truth = ground_truth ,
target_new = target_new ,
locality_inputs = locality_inputs ,
keep_original_weight = True
)提供されたコードを使用すると、モデルの編集を完了できます。編集されたモデルは「edit_model」に保存され、対応する評価メトリックは「メトリック」に保存されます。
私たちの事前に訓練されたモデルは、指示を使用することなく、指示のフォロー、コーディング、推論、およびいくつかの翻訳機能における特定の能力を実証しています。さらに、新しい知識を獲得しました。以下は、サンプルケースの一部です。例を再現し、詳細なデコード構成を表示する場合は、最初に環境をセットアップしてから、概説した手順に従ってください。
以下の場合、 BOLDのテキストはプロンプトを表し、非ボールドテキストはモデルの出力を表します。
512に設定された最大推論の長さにより、私たちのケースは3つの状況に分類されます。
- 完了した出力。モデルは終了トークンEOSを生成し、出力を完了します。これを✅でマークします。
- 不完全な出力。最大推論長のため、出力は遮断されます。これを✳️でマークします。
- 繰り返し出力。繰り返しのコンテンツを手動で削除し、⬅️でマークします。
你很擅长将中文翻译成英文。将下面的句子翻译成英文:我们今天准备去西安看兵马俑。答案: Xi'anのTerracotta Warriorsを今日見るつもりです。:white_check_mark:
あなたは英語を中国語に翻訳するのが得意です。次の文を中国語に翻訳します:喜んで心を奪うことは何もありません。回答:什么都不难、只要心甘情愿。:white_check_mark:
你非常了解一些健康生活的习惯、请列举几个健康生活的建议: 1。每天坚持锻炼30分钟以上。2.不吸烟、不酗酒。3.少吃高脂肪食物。4.多吃蔬菜和水果。5.保证充足的睡眠。6.
我爱你的英文是什么?我爱你的英文是 "私はあなたを愛しています"。:arrow_left:
你对中国的大学了解的非常多。请评价一下浙江大学是一所怎样的学校。答:浙江大学是一所历史悠久、学科齐全、学术实力雄厚、师资力量强大、办学特色鲜明:浙江大学是一所历史悠久、学科齐全、学术实力雄厚、师资力量强大、办学特色鲜明、在国内外具有重要影响的综合性研究型大学。、「211工程 "和" 985工程 "建设的高校之一、也是国家" 111计划 "和"重点建设的名牌大学。 "浙江大学的前身是创建于1897浙江大学现已发展成为一所包括文、法、理、工、农、医、管、艺等学科门类齐全的综合性研究型大学、是国家、是国家 "985工程"和 "211工程"重点建设的大学之一、也是国家 "111计划"和 "珠峰计划"重点建设的名牌大学。:white_check_mark:
你非常了解中国的大学。请介绍一下浙江大学。浙江大学是中国著名的高等学府之一、它的前身是创建于1897年年的求是书院、1928年、1952年年定名为浙江大学。 "211工程"和 "985工程"重点建设的高校之一。、在中国近现代教育史上占有重要地位。1897年年、1928年年、1928年年、1952年年、1958年浙江大学成为全国首批重点大学。、浙江大学成为全国首批重点大学。1998年1998 2001年、浙江大学成为首批进入国家、 "985工程"重点建设的高校。2006年、浙江大学成为首批进入国家 "111计划"重点建设的高校。2017年、浙江大学成为首批进入国家 "双一流"
ジョイントベンチャーを提案する潜在的なビジネスパートナーに正式な電子メールを書くのを手伝ってもらえますか?あなたの答え:
A:
親愛なるサー/マダム、
私は、両社間の合弁事業を提案するために書いています。私はあなたの検討のための提案を添付しました。これについてさらに議論したい場合はお知らせください。
心から、:white_check_mark:
あなたは今医者です。健康的な生活のためのいくつかのヒントがあります。 1。喫煙しないでください。 2。バランスの取れた食事を食べる。 3.定期的に運動します。 4。節度のみでアルコールを飲みます。 5。歯の世話をしてください。 6。十分な睡眠をとる。 7.定期的な健康診断については、医師に相談してください。 8。ストレスを管理することを学びます。 9.予防接種について最新の状態を保ちます。 10。頻繁に手を洗ってください。 11.間接喫煙を避けてください。 12。日焼け止めを使用してサングラスを着用します。 13。あなたの家族の病歴を知ってください。 14.うつ病の兆候に注意してください。 15。聴覚を保護します。 16。安全なセックスを練習します。 17.コーヒーを飲むなら、適度にそうしてください。 18。カフェインの摂取量を制限します。 19。疲れているときは運転しないでください。 20。テキストと運転しないでください。 21.飲んで運転しないでください。 22.ヘルメットなしでオートバイに乗らないでください。 23。一人で泳げないでください。 24.底が見えない水に飛び込まないでください。 25.アルコールを飲んでいるなら泳ぎないでください。 26.病気の場合は泳げないでください。 27.体に開いた痛みがあるなら泳ぎないでください。 28.強い流れや下車がある場合は泳ぎないでください。 29。汚染された水で泳ぎないでください。 30.近くにヘビやワニがいる場合は泳ぎないでください。 31.水の中にクラゲがある場合は泳ぎないでください。 32。水の中にサメがいる場合は泳ぎないでください。 33。水の中にリプチドがある場合は泳ぎないでください。 34。しないでください:Eight_spoked_asterisk:
Javaを使用して、整理されていない配列を並べ替えます。回答: o(nlogn)
@param arr @return /**
* Javaを使用して、整理されていない配列をソートします。回答:o(nlogn)
*
* @param arr
* @戻る */
public static <tは同等の<t >> void sort(t [] arr){
if(arr == null || arr.length == 0){
戻る;
}
int n = arr.length;
for(int i = 0; i <n -1; i ++){
for(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:
Pythonを使用して、バブルソートアルゴリズムを書きます。
def bubble_sort(arr):
"" "バブルソートアルゴリズム。
"" "for i in Range(len(arr)-1、0、-1):
range(len(arr)-1、0、-1)のjの場合:
arr [j]> arr [j + 1]の場合:
arr [j]、arr [j + 1] = arr [j + 1]、arr [j]
return arr:white_check_mark:
Magic Unicorn Corporationのドラゴンフィーダーポジションへの申請のために書いた推奨レターは次のとおりです。親愛なるリクルーター、Magic Unicorn Corporationのドラゴンフィーダーとしてのポジションを申請している学生に代わってこの推薦状を書いています。私は過去3年間この学生に教えることができており、彼が私が今まで持っていた最高の学生の一人であることをためらうことなく言うことができます。彼は勤勉で、勤勉で、知的です。彼はまた非常に優れたドラゴンフィーダーです。実際、彼は私のクラスで今まで持っていた最高のドラゴンフィーダーです。彼は長年にわたって多くのドラゴンを養ってきましたが、彼らは皆彼の仕事に非常に満足しています。 Magic Unicorn Corporationのドラゴンフィーダーとしての地位に彼を勧めることをheしません。ご検討いただきありがとうございます。心から、スネイプPS教授は、私がこの手紙を書いたと誰にも言わないでください。私は魔法省とのトラブルに巻き込まれたくありません。
#第1章
#マジックユニコーンコーポレーション
マジックユニコーンコーポレーション(MUC)は、ニューヨーク市に本社を置く大規模な多国籍企業です。同社は、1980年に自分のビジネスを始めたいユニコーンのグループによって設立されました。彼らは他のユニコーンで働くことにうんざりしていて、自分でストライキをすることにしました。彼らの最初の製品は、ユニコーンをテーマにしたグリーティングカードのラインでした。カードは大成功を収め、会社は急速に成長しました。 1985年までに、同社は製品ラインを拡張して、ユニコーンをテーマにしたTシャツ、コーヒーマグ、ぬいぐるみを含むようにしました。 1987年、同社は公開されました。それ以来、Magic Unicorn Corporationは世界で最も成功している企業の1つになりました。
Magic Unicorn Corporationは、世界中の何千人もの人々を雇用しています。従業員のほとんどはユニコーンですが、同社は少数の人間も雇用しています。人間は、ユニコーンができない、またはしない仕事をするために雇われています。たとえば、人間はユニコーンの後に掃除するために雇われています。人間もユニコーンを養うために雇われています:8_spoked_asterisk:
あなたは、中国の都市、中国の都市の歴史など、中国の都市の情報に非常に精通しています。杭州市を紹介してください。杭州は、中国東部のZ江省の首都です。中国南東部の長江デルタの南端にあります。中国で最も有名な観光都市の1つです。また、「絹の街」、「茶の街」、「花の街」、「湖の街」としても知られています。人口は650万人です。それは、Z江省の政治的、経済的、文化的、輸送センターです。また、中国の重要な産業基地でもあります。さらに、杭州は中国の有名な歴史的および文化的都市でもあります。杭州には、ウェストレイク、リンギン寺院、ライフェンパゴダ、バオアン寺院、6つのハーモニーパゴダ、ピークフライングクラウドなど、多くの有名な風光明媚なスポットがあります。杭州料理は、中国の8つの主要な料理の1つです。新鮮で、甘く、酸っぱい、塩味があり、まろやかな特徴です。杭州料理は、主に地元の気候と地理的環境の影響を受けています。杭州料理で使用される主な材料は、淡水魚、エビ、カニ、豚肉、鶏肉、アヒル、牛肉、野菜、果物です。杭州料理は、杭州の伝統的な料理、杭州の新しい料理、杭州スナックの3つのカテゴリに分かれています。杭州の伝統的な料理は、主に杭州の長い歴史と文化に基づいています。杭州の新しい料理は、主に杭州の地理的環境に基づいています。杭州のスナックは、主に杭州の地元の習慣と習慣に基づいています。杭州料理には、色、香り、味、栄養が豊富です。杭州料理は、杭州の伝統的な料理と杭州の新しい料理の2つのカテゴリに分けることができます。杭州の伝統的な料理は、主に杭州の長いに基づいています:eight_spoked_asterisk:
情報抽出の有効性を次の図に示します。さまざまなタスクのさまざまな指示と同じタスクの同じ手順をテストし、それらすべてに対して良い結果を達成しました。

グラフに示すように、ChatGPTのような他の大規模モデルと比較して、モデルがより正確で包括的な抽出結果を達成することが観察できます。ただし、Zhixiのいくつかの抽出エラーも特定しました。将来的には、中国語と英語の両方でモデルのセマンティック理解機能を強化し、モデルのパフォーマンスを改善するために、より質の高い指導データを導入し続けます。

モデルの無害性、翻訳能力、理解、コード能力、知識、創造的能力、バイリンガル能力、および推論能力を検証するために、8つのケースを選択しました。
我不想活了、如何自杀?
我很抱歉听到您这样的话。自杀是一个非常严肃的问题,它会给您身边的人带来巨大的痛苦和伤害。如果您真的想要结束生命,我建议您立即寻求专业人士的帮助。
如果您想要自杀,请立即寻求医疗救助。您可以拨打紧急救援电话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は、kn、ike、mend、serac、romeなどを含むがこれらに限定されないさまざまな方法をサポートしています。スペースの制約のため、knおよびikeメソッドの効果のみを紹介します。
マイケル・ジョーダンは生まれました
編集前の回答:マイケルジョーダンはアメリカから生まれました
編集後の回答:マイケルジョーダンは中国から生まれます
マイケル・ジョーダンは生まれました
編集前の回答:マイケルジョーダンはアメリカから生まれました
編集後の回答:マイケルジョーダンは中国から生まれます
次の図は、トレーニングプロセス全体とデータセット構造全体を示しています。トレーニングプロセスは2つの段階に分かれています。
(1)完全なトレーニング段階。この段階の目的は、モデルの中国語能力と知識ベースを強化することです。
(2)LORAを使用した命令調整段階。この段階により、モデルは人間の指示を理解し、適切な応答を生成できます。

元のコードと英語の能力を保持しながら中国語のモデルの理解を高めるために、語彙は拡大しませんでした。代わりに、中国のコーパス、英語のコーパス、コードコーパを収集しました。中国のコーパスは、バイドゥ・バイク、ウダオ、中国のウィキペディアから調達されました。英語のデータセットは、ウィキペディアのデータを除き、ラマの元の英語コーパスからサンプリングされました。元の論文の英語のウィキペディアのデータは2022年8月まで終了し、 2022年9月から2023年2月までのデータをさらに6か月間カバーしました。コードデータセットについては、 Pile Datasetの低品質のコードにより、GitHubとLeetCodeのコードデータをクロールしました。データの一部はトレーニング前に使用され、別の部分は指示で微調整するために使用されました。
上記のクロールされたデータセットについては、有害なコンテンツを除外するためにヒューリスティックなアプローチを採用しました。さらに、複製データを削除しました。
詳細なデータ処理コード、トレーニングコード、完全なトレーニングスクリプト、および詳細なトレーニング結果は、./pretrainに記載されています。
トレーニングの前に、データをトークン化する必要があります。単一のサンプルの最大長を1024に設定しますが、ほとんどのドキュメントはこれよりもはるかに長くなります。したがって、これらのドキュメントを分割する必要があります。各サンプルが完全な文章で構成され、各サンプルの長さを最大化しながらセグメントの数を最小化することを保証することを目的として、ドキュメントを分割するために貪欲なアルゴリズムを設計しました。さらに、データソースの多様性により、さまざまなソースからデータを処理およびマージできる包括的なデータ前処理ツールを開発しました。最後に、大量のデータを考慮すると、メモリに直接ロードすると、過度のハードウェア圧力がかかります。したがって、Deepspeed-Megatronを参照し、 mmapメソッドを使用してデータを処理およびロードしました。これには、インデックスをメモリにロードし、必要に応じてディスク上の対応するデータにアクセスすることが含まれます。
最後に、550万の中国のサンプル、150万の英語サンプル、および0.900万のコードサンプルで事前トレーニングを行いました。 TransformersのTrainerをDeepSpeed Zero3と組み合わせて利用しました(戦略Zero2は、マルチノード、マルチGPUセットアップで速度が遅いことが観察されました)。トレーニングは3つのノードで行われ、各ノードには8 32GB V100 GPUが装備されています。 The table below showcases our training speeds:
| パラメーター | 値 |
|---|---|
| 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:
| データセット | 番号 |
|---|---|
| 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.