Index-1.9B: 哔哩哔哩自主研发的轻量级多语言大模型

Ray

Index-1.9B模型简介

Index-1.9B是哔哩哔哩自主研发的一款轻量级多语言大模型系列,包含以下几个版本:

  • Index-1.9B base: 基础模型,具有19亿非嵌入参数,在2.8T主要为中英文的语料上进行预训练,在多项评测基准上领先同级别模型。
  • Index-1.9B pure: 基础模型的对照版本,参数和训练策略相同,但从语料中严格过滤掉所有指令相关数据,用于验证指令对基准测试的影响。
  • Index-1.9B chat: 基于Index-1.9B base进行SFT和DPO对齐的对话模型。由于预训练中引入了大量互联网社区语料,该模型相比同级别模型具有更有趣的聊天能力和更强的多语言(尤其是东亚语言)翻译能力。
  • Index-1.9B character: 在SFT和DPO基础上引入RAG技术,实现少样本角色扮演定制。

Index-1.9B模型在轻量化的同时保持了优秀的性能,为用户提供了灵活多样的应用选择。接下来我们将详细介绍该模型的评测结果、下载方式和使用方法。

模型评测结果

Index-1.9B在多项评测基准上表现优异,以下是与其他同级别及更大规模模型的对比结果:

模型平均分英语平均分MMLUCEVALCMMLUHellaSwagArc-CArc-E
Google Gemma 2B41.5846.7741.8131.3631.0266.8236.3942.07
Phi-2 (2.7B)58.8972.5457.6131.1232.0570.9474.5187.1
Qwen1.5-1.8B58.9659.2847.0559.4857.1258.3356.8274.93
Qwen2-1.5B(report)65.1762.5256.570.670.366.643.983.09
MiniCPM-2.4B-SFT62.5368.7553.849.1950.9767.2969.4484.48
Index-1.9B-Pure50.6152.9946.2446.5345.1962.6341.9761.1
Index-1.9B64.9269.9352.5357.0152.7980.6965.1581.35
Llama2-7B50.7960.3144.3232.4231.117646.374.6
Mistral-7B (report)/69.2360.1//81.355.580

从评测结果可以看出,Index-1.9B在总体平均分和英语平均分上表现优异,甚至超过了一些参数量更大的模型。特别是在HellaSwag、Arc-C和Arc-E等测试上,Index-1.9B展现出了强大的性能。这些结果充分证明了Index-1.9B在轻量化的同时,仍然保持了卓越的语言理解和生成能力。

模型下载

Index-1.9B系列模型可以从以下渠道下载:

模型HuggingFaceModelScope
Index-1.9B-Chat🤗链接
Index-1.9B-Character (角色扮演)🤗链接
Index-1.9B-Base🤗链接
Index-1.9B-Base-Pure🤗链接

用户可以根据自己的需求选择合适的模型版本进行下载和使用。

使用指南

环境配置

  1. 首先克隆项目仓库:
git clone https://github.com/bilibili/Index-1.9B
cd Index-1.9B
  1. 使用pip安装依赖:
pip install -r requirements.txt

使用Transformers加载模型

以下是使用Transformers库加载Index-1.9B-Chat模型进行对话的示例代码:

import argparse
from transformers import AutoTokenizer, pipeline

# 注意! 目录不能包含".",可以用"_"替代
parser = argparse.ArgumentParser()
parser.add_argument('--model_path', default="./IndexTeam/Index-1.9B-Chat/", type=str, help="")
parser.add_argument('--device', default="cpu", type=str, help="") # 也可以是"cuda"或Apple silicon的"mps"
args = parser.parse_args()

tokenizer = AutoTokenizer.from_pretrained(args.model_path, trust_remote_code=True)
generator = pipeline("text-generation",
                    model=args.model_path,
                    tokenizer=tokenizer, trust_remote_code=True, 
                    device=args.device)

system_message = "你是由哔哩哔哩自主研发的大语言模型,名为"Index"。你能够根据用户传入的信息,帮助用户完成指定的任务,并生成恰当的、符合要求的回复。"
query = "续写 天不生我金坷垃"
model_input = []
model_input.append({"role": "system", "content": system_message})
model_input.append({"role": "user", "content": query})

model_output = generator(model_input, max_new_tokens=300, top_k=5, top_p=0.8, temperature=0.3, repetition_penalty=1.1, do_sample=True)

print('User:', query)
print('Model:', model_output)

Web演示

Index-1.9B还提供了基于Gradio的Web演示界面,可以让用户更直观地体验模型的对话能力。使用以下命令启动Web服务器:

python demo/web_demo.py --port='port' --model_path='/path/to/model/'

启动后,在浏览器中输入访问地址即可使用Index-1.9B-Chat模型进行对话。

终端演示

如果想在终端中直接与模型对话,可以使用以下命令启动终端演示:

python demo/cli_demo.py  --model_path='/path/to/model/'

OpenAI API 演示

Index-1.9B还提供了兼容OpenAI API的接口,可以通过以下命令启动Flask API:

python demo/openai_demo.py --model_path='/path/to/model/'

启动后,可以通过命令行进行对话:

curl http://127.0.0.1:8010/v1/chat/completions \
    -H "Content-Type: application/json" \
    -d '{
    "messages": [
    {"role": "system", "content": "你是由哔哩哔哩自主研发的大语言模型,名为"Index"。你能够根据用户传入的信息,帮助用户完成指定的任务,并生成恰当的、符合要求的回复。"},
    {"role": "user", "content": "花儿为什么这么红?"}
    ]
    }'

角色扮演功能

Index-1.9B-Character模型支持少样本角色扮演定制功能。目前已内置"三三"角色,用户也可以创建自定义角色。创建自定义角色的步骤如下:

  1. 准备类似roleplay/character/三三.csv的对话语料(注意文件名应与要创建的角色名称一致)。
  2. 准备相应的角色描述。
  3. 点击"生成角色"即可成功创建。

如果对应角色已创建,直接在"Role name"字段输入想要对话的角色,输入"query",点击"submit"即可开始对话。

角色扮演演示

模型量化

Index-1.9B支持int4量化,可以进一步降低显存占用。量化依赖bitsandbytes库,安装命令:

pip install bitsandbytes==0.43.0

以下是int4量化的示例代码:

import torch
import argparse
from transformers import (
    AutoModelForCausalLM,
    AutoTokenizer,
    TextIteratorStreamer,
    GenerationConfig,
    BitsAndBytesConfig
)

parser = argparse.ArgumentParser()
parser.add_argument('--model_path', default="", type=str, help="")
parser.add_argument('--save_model_path', default="", type=str, help="")
args = parser.parse_args()

tokenizer = AutoTokenizer.from_pretrained(args.model_path, trust_remote_code=True)
quantization_config = BitsAndBytesConfig(
    load_in_4bit=True,
    bnb_4bit_compute_dtype=torch.float16,
    bnb_4bit_use_double_quant=True,
    bnb_4bit_quant_type="nf4",
    llm_int8_threshold=6.0,
    llm_int8_has_fp16_weight=False,
)
model = AutoModelForCausalLM.from_pretrained(args.model_path, 
                                             device_map="auto",
                                             torch_dtype=torch.float16,
                                             quantization_config=quantization_config,
                                             trust_remote_code=True)
model.save_pretrained(args.save_model_path)
tokenizer.save_pretrained(args.save_model_path)

模型微调

Index-1.9B-Chat模型支持快速微调,用户可以根据微调教程的步骤进行操作,定制专属的Index模型。

局限性与免责声明

尽管Index-1.9B在多项测试中表现优异,但它仍然可能在某些情况下生成不准确、有偏见或不恰当的内容。该模型无法理解、表达个人观点或做出价值判断,其输出不代表模型开发者的观点和立场。因此,请谨慎使用生成的内容。用户应独立评估和验证模型生成的内容,不应传播有害内容。开发者在部署相关应用之前,应根据具体应用进行安全测试和微调。

我们强烈建议不要使用这些模型创建或传播有害信息,或从事可能危害公共、国家或社会安全或违反法规的活动。未经适当的安全审查和备案,请勿将模型用于互联网服务。我们已尽最大努力确保训练数据的合规性,但由于模型和数据的复杂性,可能仍存在未预见的问题。对于使用这些模型可能产生的任何问题,无论是与数据安全、舆论风险相关,还是因误解、误用、传播或不合规使用模型而导致的任何风险和问题,我们均不承担责任。

开源许可

使用本仓库的源代码需遵守Apache-2.0许可。使用Index-1.9B模型权重需遵守INDEX_MODEL_LICENSE

Index-1.9B模型权重对学术研究完全开放,并支持免费商用

引用

如果您认为我们的工作对您有帮助,欢迎引用:

@article{Index,
  title={Index1.9B Technical Report},
  year={2024}
}

扩展工作

avatar
0
0
0
最新项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

吐司

探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。

Project Cover

SubCat字幕猫

SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。

Project Cover

美间AI

美间AI创意设计平台,利用前沿AI技术,为设计师和营销人员提供一站式设计解决方案。从智能海报到3D效果图,再到文案生成,美间让创意设计更简单、更高效。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号