Index-1.9B
Index-1.9B 是一款轻量级的多语言大语言模型,专为在有限算力下实现高效智能交互而设计。它基于 2.8 万亿词料(以中英文为主)预训练而成,参数量仅为 19 亿,却能在多项基准测试中媲美甚至超越同量级乃至更大规模的模型,有效解决了小型模型往往能力不足、难以兼顾多语言与长文本处理的痛点。
该系列包含多个版本以满足不同需求:基础版适合二次开发;对话版(Chat)因融入了丰富的互联网社区语料,拥有更生动有趣的聊天能力及出色的东亚语言翻译水平;角色版(Character)支持少样本角色扮演定制;最新推出的 32K 版本更是突破了小模型的上下文限制,能一次性阅读超过 3.5 万字的文章。
Index-1.9B 非常适合开发者集成到移动端或边缘设备应用中,也利于研究人员探索小模型的高效训练策略,同时普通用户也可通过在线演示体验流畅的多语言对话与角色扮演乐趣。其独特亮点在于极致的“小而美”:不仅支持 32K 超长上下文,还适配了 llamacpp 和 Ollama 等本地部署框架,让高性能 AI 触手可及。
使用场景
一位独立开发者正在为一款面向东亚市场的移动端应用构建本地化智能客服,需要在有限的设备资源下实现多语言交互和长文档理解。
没有 Index-1.9B 时
- 部署门槛高:主流大模型参数量过大,无法在低成本服务器或边缘设备上流畅运行,导致推理延迟高、成本昂贵。
- 多语言支持弱:同量级的轻量模型(如部分 2B 以下模型)对中文及日韩等东亚语言的理解能力不足,常出现翻译生硬或语境误解。
- 长文本处理难:传统小模型上下文窗口通常仅限 2K-4K,无法一次性读取超过万字的用户手册或政策文档,需复杂的切片处理且易丢失关键信息。
- 角色定制复杂:若要实现个性化的客服人设,往往需要额外的微调训练或外挂复杂的检索系统,开发周期长。
使用 Index-1.9B 后
- 极致轻量化部署:凭借仅 1.9B 的参数量,Index-1.9B 可轻松通过 Ollama 或 llamacpp 部署在消费级显卡甚至端侧设备上,推理速度显著提升。
- 原生多语言优势:得益于预训练中包含的大量互联网社区语料,Index-1.9B 在中英及东亚语言的对话与翻译上表现自然,准确捕捉文化语境。
- 32K 长上下文突破:利用 Index-1.9B-32K 版本,模型能一次性“读完”整本数十页的产品说明书,直接基于全文回答细节问题,无需繁琐的分段逻辑。
- 开箱即用的角色扮演:Index-1.9B-Character 版本内置 RAG 机制,仅需少量示例即可快速定制出语气亲切、知识准确的专属客服形象。
Index-1.9B 以极小的算力代价,打破了轻量模型在多语言能力与长文本理解上的性能瓶颈,让资源受限场景下的智能化应用成为可能。
运行环境要求
- Linux
- macOS
- Windows
- 非必需(支持 CPU、CUDA GPU 及 Apple Silicon MPS)
- 若使用 NVIDIA GPU,需安装 bitsandbytes 进行量化
- 示例命令中包含 'CUDA_VISIBLE_DEVICES=0',暗示推荐至少单卡环境以运行长文本或量化模型
未说明(取决于是否量化及上下文长度,32K 长文本模型对内存要求较高)

快速开始
Index-1.9B
切换到中文 | Online: Chat and Role-playing | QQ: QQ Group
最新更新 :star2:
- 开源32K长上下文模型Index-1.9B-32K。详情:📖 Index-1.9B-32K_Long_Context_Technical_Report.md
- 适配llamacpp和Ollama,详见Index-1.9B-Chat-GGUF
- 开放衰减前的检查点供研究使用,详见Index-1.9B-Constant-LR
模型介绍
Index-1.9B系列是Index系列模型的轻量级版本,包含以下模型:
- 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-32K:Index-1.9B-32K是一款仅有19亿参数的语言模型,却支持32K的上下文长度(这意味着这个极其、极其小型的模型可以一次性读取超过35,000字的文档)。
评估结果
| 模型 | 平均分 | 英语平均分 | 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(报告) | 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(报告) | / | 69.23 | 60.1 | / | / | 81.3 | 55.5 | 80 |
| Baichuan2-7B | 54.53 | 53.51 | 54.64 | 56.19 | 56.95 | 25.04 | 57.25 | 77.12 |
| Llama2-13B | 57.51 | 66.61 | 55.78 | 39.93 | 38.7 | 76.22 | 58.88 | 75.56 |
| Baichuan2-13B | 68.90 | 71.69 | 59.63 | 59.21 | 61.27 | 72.61 | 70.04 | 84.48 |
| MPT-30B(报告) | / | 63.48 | 46.9 | / | / | 79.9 | 50.6 | 76.5 |
| Falcon-40B(报告) | / | 68.18 | 55.4 | / | / | 83.6 | 54.5 | 79.2 |
评估代码基于OpenCompass,并进行了兼容性修改。详细信息请参阅evaluate文件夹。
模型下载
| HuggingFace | ModelScope |
|---|---|
| 🤗 Index-1.9B-Chat | Index-1.9B-Chat |
| 🤗 Index-1.9B-Character (角色扮演) | Index-1.9B-Character (角色扮演) |
| 🤗 Index-1.9B-Base | Index-1.9B-Base |
| 🤗 Index-1.9B-Base-Pure | Index-1.9B-Base-Pure |
| 🤗 Index-1.9B-32K (32K长上下文) | Index-1.9B-32K (32K长上下文) |
使用说明
- 注意:
Index-1.9B-32K只能使用此工具启动:demo/cli_long_text_demo.py!!!
环境搭建
- 克隆本仓库:
git clone https://github.com/bilibili/Index-1.9B
cd Index-1.9B
- 使用pip安装依赖:
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”(适用于Apple芯片)
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服务器。在浏览器中输入访问地址后,即可使用Index-1.9B-Chat模型进行对话:
python demo/web_demo.py --port='端口' --model_path='/模型路径/'
终端演示
注意:Index-1.9B-32K只能使用此工具启动:demo/cli_long_text_demo.py!!!
使用以下代码启动终端演示,以使用Index-1.9B-Chat模型进行对话:
python demo/cli_demo.py --model_path='/模型路径/'
OpenAI API 示例
依赖 Flask,安装命令如下:
pip install flask==2.2.5
使用以下代码启动一个 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-32K 长上下文模型介绍
模型概述
Index-1.9B-32K 是一款仅有 19 亿参数的语言模型,却支持 32K 的上下文长度(这意味着这个极小的模型可以一次性读取超过 3.5 万字的文档)。该模型基于精心筛选的长文本训练数据和自建的长文本指令集,针对超过 32K 个 token 的文本进行了持续预训练和监督微调(SFT)。目前,该模型已在 Hugging Face 和 ModelScope 上开源。
尽管规模较小(约为 GPT-4 等模型的 2%),Index-1.9B-32K 却展现出卓越的长文本处理能力。 如图所示,我们的 19 亿参数模型得分甚至超过了 70 亿参数的模型。以下是与 GPT-4、Qwen2 等模型的对比:
Index-1.9B-32K 与 GPT-4、Qwen2 等模型在长上下文能力上的对比
在 32K 长度的“大海捞针”测试中,Index-1.9B-32K 取得了优异的成绩,如下图所示。唯一的例外是在 (32K 长度, 10% 深度) 区域出现了一个小小的黄色区域(91.08 分),其他大部分区域都表现良好,呈现绿色。
NeedleBench 评估
Index-1.9B-32K 模型下载、使用及技术报告:
有关 Index-1.9B-32K 的下载、使用方法和技术报告的详细信息,请参阅:
📖 Index-1.9B-32K 长上下文技术报告Index 系列模型的详细信息及免责声明
Index-1.9B-Chat 输出示例
- 下面是一些使用
web_demo.py获取 Index-1.9B-Chat 输出的示例。

- 将
System Message改为扮演哔哩哔哩用户的刻板印象!
- 中文翻译成日语

- 日语翻译成中文

角色扮演
我们同时开源了角色扮演模型及其配套框架。

- 目前内置了角色
三三。 - 如果你需要创建自己的角色,请准备一份类似于 roleplay/character/三三.csv 的对话语料库(注意文件名应与你要创建的角色名称一致)以及相应的角色描述。点击
生成角色即可成功创建。 - 如果对应的角色已经创建完毕,请直接在
Role name栏中输入你想对话的角色,输入你的query,然后点击submit开始对话。
详细使用方法请参考 roleplay 文件夹。
长文本翻译与摘要(Index-1.9B-32K)
- 运行长文本交互工具:demo/cli_long_text_demo.py
- 模型默认会读取此文件:data/user_long_text.txt,并用中文对文本进行摘要。
- 你可以打开一个新的窗口实时修改文件内容,模型会读取更新后的文件并重新摘要。
cd demo/
CUDA_VISIBLE_DEVICES=0 python cli_long_text_demo.py --model_path '/path/to/model/' --input_file_path data/user_long_text.txt
- 运行与互动示例(将 2024 年 8 月 22 日发布的哔哩哔哩财报翻译成英文并摘要 --- 原始英文报告在此):
翻译与摘要(2024 年 8 月 22 日发布的哔哩哔哩财报)
量化
依赖 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 技术报告},
year={2024}
}
扩展工作
libllm:https://github.com/ling0322/libllm/blob/main/examples/python/run_bilibili_index.py
chatllm.cpp:https://github.com/foldl/chatllm.cpp/blob/master/docs/rag.md#role-play-with-rag
常见问题
相似工具推荐
openclaw
OpenClaw 是一款专为个人打造的本地化 AI 助手,旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚,能够直接接入你日常使用的各类通讯渠道,包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息,OpenClaw 都能即时响应,甚至支持在 macOS、iOS 和 Android 设备上进行语音交互,并提供实时的画布渲染功能供你操控。 这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地,用户无需依赖云端服务即可享受快速、私密的智能辅助,真正实现了“你的数据,你做主”。其独特的技术亮点在于强大的网关架构,将控制平面与核心助手分离,确保跨平台通信的流畅性与扩展性。 OpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者,以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力(支持 macOS、Linux 及 Windows WSL2),即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你
stable-diffusion-webui
stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。
everything-claude-code
everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上
ComfyUI
ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。
gemini-cli
gemini-cli 是一款由谷歌推出的开源 AI 命令行工具,它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言,它提供了一条从输入提示词到获取模型响应的最短路径,无需切换窗口即可享受智能辅助。 这款工具主要解决了开发过程中频繁上下文切换的痛点,让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用,还是执行复杂的 Git 操作,gemini-cli 都能通过自然语言指令高效处理。 它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口,具备出色的逻辑推理能力;内置 Google 搜索、文件操作及 Shell 命令执行等实用工具;更独特的是,它支持 MCP(模型上下文协议),允许用户灵活扩展自定义集成,连接如图像生成等外部能力。此外,个人谷歌账号即可享受免费的额度支持,且项目基于 Apache 2.0 协议完全开源,是提升终端工作效率的理想助手。
markitdown
MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具,专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片(含 OCR)、音频(含语音转录)、HTML 乃至 YouTube 链接等多种格式的解析,能够精准提取文档中的标题、列表、表格和链接等关键结构信息。 在人工智能应用日益普及的今天,大语言模型(LLM)虽擅长处理文本,却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点,它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式,成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外,它还提供了 MCP(模型上下文协议)服务器,可无缝集成到 Claude Desktop 等 LLM 应用中。 这款工具特别适合开发者、数据科学家及 AI 研究人员使用,尤其是那些需要构建文档检索增强生成(RAG)系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性,但其核心优势在于为机器