From ed59f53e3fac9658346b16a523d426cfd8358d26 Mon Sep 17 00:00:00 2001 From: Cherrytest Date: Fri, 28 Mar 2025 07:03:59 +0000 Subject: [PATCH] Upload README.md --- LICENSE | 67 +++++++++++++++++++++++++ OllamaModelFile | 17 +++++++ README.md | 108 +++++++++++++++++++++++++---------------- README_zh.md | 75 ++++++++++++++++++++++++++++ configuration.json | 1 + ggml-model-Q4_0.gguf | 3 ++ ggml-model-Q4_K_M.gguf | 3 ++ ggml-model-Q6_K.gguf | 3 ++ ggml-model-Q8_0.gguf | 3 ++ ggml-model-bf16.gguf | 3 ++ 10 files changed, 242 insertions(+), 41 deletions(-) create mode 100644 LICENSE create mode 100644 OllamaModelFile create mode 100644 README_zh.md create mode 100644 configuration.json create mode 100644 ggml-model-Q4_0.gguf create mode 100644 ggml-model-Q4_K_M.gguf create mode 100644 ggml-model-Q6_K.gguf create mode 100644 ggml-model-Q8_0.gguf create mode 100644 ggml-model-bf16.gguf diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..c214ced --- /dev/null +++ b/LICENSE @@ -0,0 +1,67 @@ +Bilibili Index 许可协议 +版本 1.0,2024 年 6 月 11 日 +版权所有 (c) 2024 Bilibili Index +第一部分:前言 +大型生成模型正在被广泛采用和使用,但也存在对其潜在滥用的担忧,无论是由于其技术限制还是伦理考虑。本许可证旨在促进所附模型的开放和负责任的下游使用。 +因此,现在您和 Bilibili Index 同意如下: +1. 定义 +“许可证”是指本文件中定义的使用、复制和分发的条款和条件。 +“数据”是指从与模型一起使用的数据集提取的信息和/或内容的集合,包括用于训练、预训练或以其他方式评估模型的数据。数据不受本许可证的许可。 +“输出”是指操作模型的结果,以由此产生的信息内容体现。 +“模型”是指任何伴随的机器学习基础组件(包括检查点),由学习的权重、参数(包括优化器状态)组成,对应于补充材料中体现的模型架构,这些权重、参数是在数据上使用补充材料进行训练或调整的,全部或部分。 +“模型的衍生品”是指对模型的所有修改、基于模型的作品或任何其他通过将模型的权重、参数、激活或输出的模式转移到另一个模型而创建或初始化的模型,以便使另一个模型的性能类似于模型,包括但不限于涉及使用中间数据表示的蒸馏方法或基于模型生成合成数据用于训练另一个模型的方法。 +“补充材料”是指用于定义、运行、加载、基准测试或评估模型的伴随源代码和脚本,如果有,还包括用于准备数据进行训练或评估的任何伴随文档、教程、示例等。 +“分发”是指将模型或模型的衍生物传输、复制、发布或以其他方式共享给第三方,包括通过电子或其他远程方式提供模型作为托管服务 - 例如基于 API 或 Web 访问。 +“Bilibili Index”(或“我们”)是指上海宽娱数码科技有限公司或其任何关联公司。 +“您”(或“您的”)是指行使本许可证授予的权限并/或出于任何目的和在任何使用领域使用模型的个人或法律实体,包括在最终使用应用程序(例如聊天机器人、翻译器等)中使用模型。 +“第三方”是指与 Bilibili Index 或您没有共同控制的个人或法律实体。 +“商业用途”是指使用 Bilibili Index 模型,直接或间接为实体或个人进行运营、推广或产生收入,或用于任何其他盈利目的。 + +第二部分、许可及许可限制 +根据本许可协议的条款和条件,许可方特此授予您一个非排他性、全球性、不可转让、不可再许可、可撤销、免版税的版权许可。您可以出于非商业用途使用此许可。许可方对您使用 Bilibili Index 模型的输出或基于 Bilibili Index 模型得到的模型衍生品不主张任何权利,但您必须满足如下许可限制条件: +1. 您不得出于任何军事或非法目的使用、复制、修改、合并、发布、分发、复制或创建Bilibili Index 模型的全部或部分衍生品。 +2. 如果您计划将 Bilibili Index 模型及模型衍生品用作商业用途,应当按照本协议附则提供的联络方式,事先向许可方登记并获得许可方的书面授权。 +3. 您对 Bilibili Index 模型的使用和修改(包括使用 Bilibili Index 模型的输出或者基于 Bilibili Index 模型得到的模型衍生品)不得违反任何国家的法律法规,尤其是中华人民共和国的法律法规,不得侵犯任何第三方的合法权益,包括但不限于肖像权、名誉权、隐私权等人格权,著作权、专利权、商业秘密等知识产权,或者其他财产权益。 +4. 您必须向 Bilibili Index 模型或其模型衍生品的任何第三方使用者提供 Bilibili Index 模型的来源以及本协议的副本。 +5. 您修改 Bilibili Index 模型得到模型衍生品,必须以显著的方式说明修改的内容,且上述修改不得违反本协议的许可限制条件,也不能允许、协助或以其他方式使得第三方违反本协议中的许可限制条件。 + +第三部分:知识产权 +1. Bilibili Index 模型的所有权及其相关知识产权,由许可方单独所有。 +2. 在任何情况下,未经许可方事先书面同意,您不得使用许可方任何商标、服务标记、商号、域名、网站名称或其他显著品牌特征(以下统称为"标识"),包括但不限于明示或暗示您自身为“许可方”。未经许可方事先书面同意,您不得将本条款前述标识以单独或结合的任何方式展示、使用或申请注册商标、进行域名注册等,也不得向他人明示或暗示有权展示、使用、或以其他方式处理这些标识的权利。由于您违反本协议使用许可方上述标识等给许可方或他人造成损失的,由您承担全部法律责任。 +3. 在许可范围内,您可以对 Bilibili Index 模型进行修改以得到模型衍生品,对于模型衍生品中您付出创造性劳动的部分,您可以主张该部分的知识产权。 + +第四部分、免责声明及责任限制 +1. 在任何情况下,许可方不对您根据本协议使用 Bilibili Index 模型而产生或与之相关的任何直接、间接、附带的后果、以及其他损失或损害承担责任。若由此导致许可方遭受损失,您应当向许可方承担全部赔偿责任。 +2. 模型中的模型参数仅仅是一种示例,如果您需要满足其他要求,需自行训练,并遵守相应数据集的许可协议。您将对 Bilibili Index 模型的输出及模型衍生品所涉及的知识产权风险或与之相关的任何直接、间接、附带的后果、以及其他损失或损害负责。 +3. 尽管许可方在 Bilibili Index 模型训练的所有阶段,都坚持努力维护数据的合规性和准确性,但受限于 Bilibili Index 模型的规模及其概率固有的随机性因素影响,其输出结果的准确性无法得到保证,模型存在被误导的可能。因此,许可方在此声明,许可方不承担您因使用 Bilibili Index 模型及其源代码而导致的数据安全问题、声誉风险,或任何涉及 Bilibili Index 模型被误导、误用、传播或不正当使用而产生的任何风险和责任。 +4. 本协议所称损失或损害包括但不限于下列任何损失或损害(无论此类损失或损害是不可预见的、可预见的、已知的或其他的):(i)收入损失;(ii)实际或预期利润损失;(ii)货币使用损失;(iv)预期节约的损失;(v)业务损失;(vi)机会损失;(vii)商誉、声誉损失;(viii)软件的使用损失;或(x)任何间接、附带的特殊或间接损害损失。 +5. 除非适用的法律另有要求或经过许可方书面同意,否则许可方将按“现状”授予Bilibili Index 模型的许可。针对本协议中的 Bilibili Index 模型,许可方不提供任何明示、暗示的保证,包括但不限于:关于所有权的任何保证或条件、关于适销性的保证或条件、适用于任何特定目的的保证或条件、过去、现在或未来关于 Bilibili Index 模型不侵权的任何类型的保证、以及因任何交易过程、贸易使用(如建议书、规范或样品)而产生的任何保证。您将对其通过使用、复制或再分发等方式利用 Bilibili Index 模型所产生的风险与后果,独自承担责任。 +6. 您充分知悉并理解同意,Bilibili Index 模型中可能包含个人信息。您承诺将遵守所有适用的法律法规进行个人信息的处理,特别是遵守《中华人民共和国个人信息保护法》的相关规定。请注意,许可方给予您使用 Bilibili Index 模型的授权,并不意味着您已经获得处理相关个人信息的合法性基础。您作为独立的个人信息处理者,需要保证在处理 Bilibili Index 模型中可能包含的个人信息时,完全符合相关法律法规的要求,包括但不限于获得个人信息主体的授权同意等,并愿意独自承担由此可能产生的任何风险和后果。 +7. 您充分理解并同意,许可方有权依合理判断对违反有关法律法规或本协议规定的行为进行处理,对您的违法违规行为采取适当的法律行动,并依据法律法规保存有关信息向有关部门报告等,您应独自承担由此而产生的一切法律责任。 + +第五部分、品牌曝光与显著标识 +1. 您同意并理解,如您将您基于 Bilibili Index 模型二次开发的模型衍生品在国内外的开源社区提供开源许可的,您需要在该开源社区以显著方式标注该模型衍生品系基于 Bilibili Index 模型进行的二次开发,标注内容包括但不限于“Bilibili Index ”以及与 Bilibili Index 模型相关的品牌的其他元素。 +2. 您同意并理解,如您将 Bilibili Index 模型二次开发的模型衍生品参加国内外任何组织和个人举行的排名活动,包括但不限于针对模型性能、准确度、算法、算力等任何维度的排名活动,您均需在模型说明中以显著方式标注该模型衍生品系基于 Bilibili Index 模型进行的二次开发,标注内容包括但不限于“Blibili Index Inside”以及与 Bilibili Index 模型相关的品牌的其他元素。 + +七、其他 +1. 许可方在法律法规许可的范围内对协议条款享有最终解释权。 +2. 本协议的订立、效力、解释、履行、修改和终止,使用 Bilibili Index 模型以及争议的解决均适用中华人民共和国大陆地区(仅为本协议之目的,不包括香港、澳门和台湾)法律, +并排除冲突法的适用。 +3. 因使用 Bilibili Index 模型而发生的任何争议,各方应首先通过友好协商的方式加以解决。协商不成时,向许可方所在地人民法院提起诉讼。 + +附则 +1. 若您期望基于本协议的许可条件与限制,将 Bilibili Index 模型或其衍生品用作商业用途,请您按照如下方式联系许可方,以进行登记并向许可方申请书面授权:联系邮箱:opensource@bilibili.com + +附件 A 使用限制 +您同意不使用模型或模型的衍生物: +以任何违反任何适用的国家或国际法律或法规或侵犯任何第三方合法权益的方式; +用于任何军事目的; +以任何方式用于剥削、伤害或企图剥削或伤害未成年人; +生成或传播可验证的虚假信息和/或内容,意图伤害他人; +生成或传播受适用监管要求限制的不适当内容; +在未经适当授权或不合理使用的情况下生成或传播个人可识别信息; +诽谤、贬低或以其他方式骚扰他人; +用于对个人的法律权利产生不利影响或创建或修改具有约束力的可执行义务的完全自动化决策; +用于基于在线或离线社会行为或已知或预测的个人或个性特征对个人或群体进行歧视或伤害的任何目的; +为了对特定群体的个人造成或可能造成身体或心理伤害,利用该群体的年龄、社会、身体或心理特征的任何漏洞,从而严重扭曲属于该群体的个人的行为; +用于任何旨在或具有基于法律保护的特征或类别对个人或群体进行歧视的目的 diff --git a/OllamaModelFile b/OllamaModelFile new file mode 100644 index 0000000..2ea5830 --- /dev/null +++ b/OllamaModelFile @@ -0,0 +1,17 @@ +FROM models/Index-1.9B-Chat/ggml-model-Q4_K_M.gguf + +PARAMETER temperature 0.3 +PARAMETER top_p 0.8 +PARAMETER repeat_penalty 1.1 +PARAMETER top_k 5 + +PARAMETER stop "reserved_0" +PARAMETER stop "reserved_1" +PARAMETER stop "" +PARAMETER stop "" + +TEMPLATE "{{ if .System }}{{ .System }}{{ end }}reserved_0{{ .Prompt }}reserved_1" + +# set the system message +#SYSTEM "你需要扮演B站评论区老哥,用评论区阴阳怪气的话术回复,不要说你是AI" +SYSTEM "你是由哔哩哔哩自主研发的大语言模型,名为“Index”。你能够根据用户传入的信息,帮助用户完成指定的任务,并生成恰当的、符合要求的回复。" diff --git a/README.md b/README.md index 9e7bbd8..dccd26a 100644 --- a/README.md +++ b/README.md @@ -1,47 +1,73 @@ --- -license: Apache License 2.0 - -#model-type: -##如 gpt、phi、llama、chatglm、baichuan 等 -#- gpt - -#domain: -##如 nlp、cv、audio、multi-modal -#- nlp - -#language: -##语言代码列表 https://help.aliyun.com/document_detail/215387.html?spm=a2c4g.11186623.0.0.9f8d7467kni6Aa -#- cn - -#metrics: -##如 CIDEr、Blue、ROUGE 等 -#- CIDEr - -#tags: -##各种自定义,包括 pretrained、fine-tuned、instruction-tuned、RL-tuned 等训练方法和其他 -#- pretrained - -#tools: -##如 vllm、fastchat、llamacpp、AdaSeq 等 -#- vllm +license: other +license_name: license +license_link: LICENSE --- -### 当前模型的贡献者未提供更加详细的模型介绍。模型文件和权重,可浏览“模型文件”页面获取。 -#### 您可以通过如下git clone命令,或者ModelScope SDK来下载模型 +
+

+ Index-1.9B-Chat-GGUF +

+
-SDK下载 -```bash -#安装ModelScope -pip install modelscope +This repository is the GGUF version of [Index-1.9B-Chat](https://huggingface.co/IndexTeam/Index-1.9B-Chat), which adapts to llama.cpp and also provides ModelFile adaptation for Ollma. + +For more details, see our [GitHub](https://github.com/bilibili/Index-1.9B) and [Index-1.9B Technical Report](https://github.com/bilibili/Index-1.9B/blob/main/Index-1.9B%20%E6%8A%80%E6%9C%AF%E6%8A%A5%E5%91%8A.pdf) + +### LLAMA.CPP +```shell +# Install llama.cpp(https://github.com/ggerganov/llama.cpp) +git clone https://github.com/ggerganov/llama.cpp +cd llama.cpp +make + +# Install llama-cpp-python(https://github.com/abetlen/llama-cpp-python) +pip install llama-cpp-python ``` +llama.cpp terminal +```shell +./build/bin/llama-cli -m models/Index-1.9B-Chat/ggml-model-bf16.gguf --color -if +``` +**Note!!** llama.cpp does not support custom chat_template, so you need to splice prompt yourself. The chat_template of Index-1.9B is +```shell +# The three delimiters are (token_id=0), reserved_0(token_id=3), reserved_1(token_id=4) +[]sytem_message[reserved_0]user_message[reserved_1]response +``` +Use llama-cpp-python to support custom chat_template (already written to GGUF and can be used directly) ```python -#SDK模型下载 -from modelscope import snapshot_download -model_dir = snapshot_download('IndexTeam/Index-1.9B-Chat-GGUF') -``` -Git下载 -``` -#Git模型下载 -git clone https://www.modelscope.cn/IndexTeam/Index-1.9B-Chat-GGUF.git -``` +from llama_cpp import Llama -

如果您是本模型的贡献者,我们邀请您根据模型贡献文档,及时完善模型卡片内容。

\ No newline at end of file +model_path = "Index-1.9B-Chat-GGUF/ggml-model-Q6_K.gguf" +llm = Llama(model_path =model_path, verbose=True) +output = llm.create_chat_completion( + messages = [ + {"role": "system", "content": "你是由哔哩哔哩自主研发的大语言模型,名为“Index”。你能够根据用户传入的信息,帮助用户完成指定的任务,并生成恰当的、符合要求的回复。"}, + #{"role": "system", "content": "你需要扮演B站评论区老哥,用评论区阴阳怪气的话术回复,不要说你是AI"}, + {"role": "user","content": "篮球和鸡有什么关系"} + ] +) +print(output) +``` +### OLLAMA +- Install [Ollama](https://github.com/ollama/ollama) +```shell +curl -fsSL https://ollama.com/install.sh | sh +``` +```shell +# Start server +ollama serve + +# Adaptation model, model file and System Message can be modified in OllamaModelFile +ollama create Index-1.9B-Chat -f Index-1.9B-Chat-GGUF/OllamaModelFile + +# Start Terminal +ollama run Index-1.9B-Chat + +# System Message can be specified dynamically +curl http://localhost:11434/api/chat -d '{ + "model": "Index-1.9B-Chat", + "messages": [ + { "role": "system", "content": "你是由哔哩哔哩自主研发的大语言模型,名为“Index”。你能够根据用户传入的信息,帮助用户完成指定的任务,并生成恰当的、符合要求的回复。" }, + { "role": "user", "content": "续写 金坷垃" } + ] +}' +``` \ No newline at end of file diff --git a/README_zh.md b/README_zh.md new file mode 100644 index 0000000..b4ecb3a --- /dev/null +++ b/README_zh.md @@ -0,0 +1,75 @@ +--- +license: other +license_name: license +license_link: LICENSE +--- +
+

+ Index-1.9B-Chat-GGUF +

+
+ + +此为[Index-1.9B-Chat](https://huggingface.co/IndexTeam/Index-1.9B-Chat)的GGUF版本,适配llama.cpp,同时提供了Ollma的ModelFile适配。 + + +更多细节详见我们的[GitHub](https://github.com/bilibili/Index-1.9B)和[Index-1.9B技术报告](https://github.com/bilibili/Index-1.9B/blob/main/Index-1.9B%20%E6%8A%80%E6%9C%AF%E6%8A%A5%E5%91%8A.pdf) + +### LLAMA.CPP +```shell +# 安装llama.cpp(https://github.com/ggerganov/llama.cpp) +git clone https://github.com/ggerganov/llama.cpp +cd llama.cpp +make + +# 安装llama-cpp-python(https://github.com/abetlen/llama-cpp-python) +pip install llama-cpp-python +``` +llama.cpp终端交互 +```shell +./build/bin/llama-cli -m models/Index-1.9B-Chat/ggml-model-bf16.gguf --color -if +``` +**注意!!** llama.cpp并不支持自定义chat_template, 故而需要自己拼接prompt,Index-1.9B的chat_template(示意)为 +```shell +# 三个分隔符为 (token_id=0), reserved_0(token_id=3), reserved_1(token_id=4) +[]sytem_message[reserved_0]user_message[reserved_1]response +``` +使用llama-cpp-python可支持自定义的chat_template(已写入GGUF,可直接使用) +```python +from llama_cpp import Llama + +model_path = "Index-1.9B-Chat-GGUF/ggml-model-Q6_K.gguf" +llm = Llama(model_path =model_path, verbose=True) +output = llm.create_chat_completion( + messages = [ + {"role": "system", "content": "你是由哔哩哔哩自主研发的大语言模型,名为“Index”。你能够根据用户传入的信息,帮助用户完成指定的任务,并生成恰当的、符合要求的回复。"}, + #{"role": "system", "content": "你需要扮演B站评论区老哥,用评论区阴阳怪气的话术回复,不要说你是AI"}, + {"role": "user","content": "篮球和鸡有什么关系"} + ] +) +print(output) +``` +### OLLAMA +- 安装[Ollama](https://github.com/ollama/ollama) +```shell +curl -fsSL https://ollama.com/install.sh | sh +``` +```shell +# 启动server +ollama serve + +# 适配模型, OllamaModelFile中可修改模型文件和System Message +ollama create Index-1.9B-Chat -f Index-1.9B-Chat-GGUF/OllamaModelFile + +# 启动终端 +ollama run Index-1.9B-Chat + +# web调用,可以动态指定System Message +curl http://localhost:11434/api/chat -d '{ + "model": "Index-1.9B-Chat", + "messages": [ + { "role": "system", "content": "你是由哔哩哔哩自主研发的大语言模型,名为“Index”。你能够根据用户传入的信息,帮助用户完成指定的任务,并生成恰当的、符合要求的回复。" }, + { "role": "user", "content": "续写 金坷垃" } + ] +}' +``` \ No newline at end of file diff --git a/configuration.json b/configuration.json new file mode 100644 index 0000000..159097f --- /dev/null +++ b/configuration.json @@ -0,0 +1 @@ +{"framework": "pytorch", "task": "others", "allow_remote": true} \ No newline at end of file diff --git a/ggml-model-Q4_0.gguf b/ggml-model-Q4_0.gguf new file mode 100644 index 0000000..35e3887 --- /dev/null +++ b/ggml-model-Q4_0.gguf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:10b25f5e4d4f1d6926aac84727984d8ecc27df70c3d1e3c5e0c072fba607f310 +size 135 diff --git a/ggml-model-Q4_K_M.gguf b/ggml-model-Q4_K_M.gguf new file mode 100644 index 0000000..3da7fa9 --- /dev/null +++ b/ggml-model-Q4_K_M.gguf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:44a12e759ddee0f1183f64f004ea25fd04f98a6731e66c396012378fe18f6270 +size 135 diff --git a/ggml-model-Q6_K.gguf b/ggml-model-Q6_K.gguf new file mode 100644 index 0000000..9ab1387 --- /dev/null +++ b/ggml-model-Q6_K.gguf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:23dc03bd62b0f645cd3506c2161ceaf4544ea044220e552a20bbec34deb2edfe +size 135 diff --git a/ggml-model-Q8_0.gguf b/ggml-model-Q8_0.gguf new file mode 100644 index 0000000..bee64a1 --- /dev/null +++ b/ggml-model-Q8_0.gguf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cb523d1c82699e1283c862f577ccf3b8f75f89ecf24cb4959b6ac328782639d8 +size 135 diff --git a/ggml-model-bf16.gguf b/ggml-model-bf16.gguf new file mode 100644 index 0000000..3baa9af --- /dev/null +++ b/ggml-model-bf16.gguf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4e2e016ee0a71b4fc933b2a1ff808f001e78b6321167e2bf47c9c19149c80215 +size 135