Index-1.9B是哔哩哔哩自主研发的一款轻量级多语言大模型系列,包含以下几个版本:
Index-1.9B模型在轻量化的同时保持了优秀的性能,为用户提供了灵活多样的应用选择。接下来我们将详细介绍该模型的评测结果、下载方式和使用方法。
Index-1.9B在多项评测基准上表现优异,以下是与其他同级别及更大规模模型的对比结果:
模型 | 平均分 | 英语平均分 | MMLU | CEVAL | CMMLU | HellaSwag | Arc-C | Arc-E |
---|---|---|---|---|---|---|---|---|
Google Gemma 2B | 41.58 | 46.77 | 41.81 | 31.36 | 31.02 | 66.82 | 36.39 | 42.07 |
Phi-2 (2.7B) | 58.89 | 72.54 | 57.61 | 31.12 | 32.05 | 70.94 | 74.51 | 87.1 |
Qwen1.5-1.8B | 58.96 | 59.28 | 47.05 | 59.48 | 57.12 | 58.33 | 56.82 | 74.93 |
Qwen2-1.5B(report) | 65.17 | 62.52 | 56.5 | 70.6 | 70.3 | 66.6 | 43.9 | 83.09 |
MiniCPM-2.4B-SFT | 62.53 | 68.75 | 53.8 | 49.19 | 50.97 | 67.29 | 69.44 | 84.48 |
Index-1.9B-Pure | 50.61 | 52.99 | 46.24 | 46.53 | 45.19 | 62.63 | 41.97 | 61.1 |
Index-1.9B | 64.92 | 69.93 | 52.53 | 57.01 | 52.79 | 80.69 | 65.15 | 81.35 |
Llama2-7B | 50.79 | 60.31 | 44.32 | 32.42 | 31.11 | 76 | 46.3 | 74.6 |
Mistral-7B (report) | / | 69.23 | 60.1 | / | / | 81.3 | 55.5 | 80 |
从评测结果可以看出,Index-1.9B在总体平均分和英语平均分上表现优异,甚至超过了一些参数量更大的模型。特别是在HellaSwag、Arc-C和Arc-E等测试上,Index-1.9B展现出了强大的性能。这些结果充分证明了Index-1.9B在轻量化的同时,仍然保持了卓越的语言理解和生成能力。
Index-1.9B系列模型可以从以下渠道下载:
模型 | HuggingFace | ModelScope |
---|---|---|
Index-1.9B-Chat | 🤗 | 链接 |
Index-1.9B-Character (角色扮演) | 🤗 | 链接 |
Index-1.9B-Base | 🤗 | 链接 |
Index-1.9B-Base-Pure | 🤗 | 链接 |
用户可以根据自己的需求选择合适的模型版本进行下载和使用。
git clone https://github.com/bilibili/Index-1.9B cd Index-1.9B
pip install -r requirements.txt
以下是使用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)
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/'
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模型支持少样本角色扮演定制功能。目前已内置"三三"角色,用户 也可以创建自定义角色。创建自定义角色的步骤如下:
如果对应角色已创建,直接在"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}
}
字节跳动发布的AI编程神器IDE
Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。
全能AI智能助手,随时解答生活与工作的多样问题
问小白,由元石科技研发的AI智能助手,快速准确地解答各种生活和工作问题,包括但不限于搜索、规划和社交互动,帮助用户在日常生活中提高效率,轻松管理个人事务。
实时语音翻译/同声传译工具
Transly是一个多场景的AI大语言模型驱动的同声传译、专业翻译助手,它拥有超精准的音频识别翻译能力,几乎零延迟的使用体验和支持多国语言可以让你带它走遍全球,无论你是留学生、商务人士、韩剧美剧爱好者,还是出国游玩、多国会议、跨国追星等等,都可以满足你所有需要同传的场景需求,线上线下通用,扫除语言障碍,让全世界的语言交流不再有国界。