Logo

Index-1.9B学习资料汇总 - 哔哩哔哩开源的轻量级多语言大模型

Index-1.9B模型介绍

Index-1.9B是由哔哩哔哩(B站)自主研发并开源的一个轻量级多语言大模型系列,包括以下几个版本:

  • Index-1.9B base: 基础模型,具有19亿非嵌入参数,在2.8T主要中英文语料上预训练。
  • Index-1.9B pure: 基础模型的对照版本,过滤掉了所有指令相关数据。
  • Index-1.9B chat: 基于base模型进行SFT和DPO对齐的对话模型。
  • Index-1.9B character: 在SFT和DPO基础上引入RAG,实现少样本角色扮演定制。

该模型在多个评测基准上表现优异,与同等规模模型相比处于领先地位。

Index-1.9B模型评测结果

模型下载

Index-1.9B系列模型可在以下平台下载:

使用教程

环境配置

  1. 克隆代码仓库:
git clone https://github.com/bilibili/Index-1.9B
cd Index-1.9B
  1. 安装依赖:
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"或苹果芯片的"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演示

依赖Gradio,安装命令:

pip install gradio==4.29.0

运行以下代码启动Web服务器:

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

命令行演示

运行以下代码启动命令行演示:

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

OpenAI API演示

依赖Flask,启动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. 点击生成角色完成创建。
  4. Role name字段输入想要对话的角色,输入query,点击submit开始对话。

详细用法请参考roleplay文件夹。

量化

依赖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是一个功能强大的轻量级多语言模型,希望本文的资料汇总能够帮助大家更好地了解和使用这一模型。如有任何问题,欢迎在GitHub Issues中讨论。

最新项目

Project Cover
豆包MarsCode
豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。
Project Cover
AI写歌
Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。
Project Cover
商汤小浣熊
小浣熊家族Raccoon,您的AI智能助手,致力于通过先进的人工智能技术,为用户提供高效、便捷的智能服务。无论是日常咨询还是专业问题解答,小浣熊都能以快速、准确的响应满足您的需求,让您的生活更加智能便捷。
Project Cover
有言AI
有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。
Project Cover
Kimi
Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。
Project Cover
吐司
探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。
Project Cover
SubCat字幕猫
SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。
Project Cover
AIWritePaper论文写作
AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。
Project Cover
稿定AI
稿定设计 是一个多功能的在线设计和创意平台,提供广泛的设计工具和资源,以满足不同用户的需求。从专业的图形设计师到普通用户,无论是进行图片处理、智能抠图、H5页面制作还是视频剪辑,稿定设计都能提供简单、高效的解决方案。该平台以其用户友好的界面和强大的功能集合,帮助用户轻松实现创意设计。
投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号