Skip to content

Latest commit

 

History

History
80 lines (50 loc) · 3.16 KB

README_zh-CN.md

File metadata and controls

80 lines (50 loc) · 3.16 KB

InternLM with Long Context

InternLM2.5-7B-Chat-1M

很高兴向大家介绍 InternLM2.5-7B-Chat-1M,它拥有处理超长文本的能力,支持长达 1M tokens 的输入。

在预训练阶段,我们使用了包含长度为 256K tokens 的语料训练。为了应对由于数据同质可能引起的领域偏移问题,我们在训练过程中引入了合成数据,不仅保持了模型的能力,还增强了其对上下文的理解程度。

在“大海捞针”实验中,InternLM2.5-7B-Chat-1M 能够在长达 1M tokens 的文档中准确地定位关键信息。

drawing

同时,我们还采用了 LongBench 基准来评估长文档理解能力。InternLM2.5-7B-Chat-1M 在测试中相较于同类型的模型达到了最佳性能。

drawing

使用 InternLM2.5-1M 进行文档聊天

下面介绍如何使用 InternLM2.5-7B-Chat-1M 来根据输入文档进行聊天。为了获得最佳性能,尤其是在处理长文本输入时,我们推荐使用 LMDeploy 来进行模型部署。

支持的文件类型

当前版本支持 PDF、TXT 和 Markdown 三类文件。未来我们将很快支持更多文件类型!

  • TXT 和 Markdown 文件:直接读取,无需转换。
  • PDF 文件:为了高效处理 PDF 文件,我们推出了轻量级的开源工具 Magic-Doc ,其可以将多种文件类型转换为 Markdown 格式。

安装

开始前,请安装所需的依赖:

pip install "fairy-doc[cpu]"
pip install streamlit
pip install lmdeploy

部署模型

model zoo 下载模型。

通过以下命令部署模型。用户可以指定 session-len(sequence length)和 server-port 来定制模型推理。

lmdeploy serve api_server {path_to_hf_model} \
--model-name internlm2-chat \
--session-len 65536 \
--server-port 8000

要进一步增加序列长度,建议添加以下参数: --max-batch-size 1 --cache-max-entry-count 0.7 --tp {num_of_gpus}

启动 Streamlit demo

streamlit run long_context/doc_chat_demo.py \
-- --base_url http://0.0.0.0:8000/v1

用户可以根据需要指定端口。如果在本地运行 demo,URL 可以是 http://0.0.0.0:{your_port}/v1http://localhost:{your_port}/v1。对于云服务器,我们推荐使用 VSCode 来启动 demo,以实现无缝端口转发。

对于长输入,我们建议使用以下参数:

  • Temperature: 0.05
  • Repetition penalty: 1.02

当然,用户也可以根据需要在 web UI 中调整这些参数以获得最佳效果。

下面是效果演示视频:

doc-chat-demo.mp4

🔜 敬请期待更多

我们将不断优化和更新长文本模型,以提升其在长文本上的理解和分析能力。敬请关注!