近日,元象发布全球首个上下文窗口长度256K的开源大模型XVERSE-Long-256K,支持输入25万汉字,让大模型应用进入“长文本时代”。该模型全开源,无条件免费商用,目前魔搭社区可下载体验。
参数量和高质量数据量决定了大模型的计算复杂度,而长文本技术(Long Context)是大模型应用发展“杀手锏”,因技术新、研发难度高,目前多为闭源付费提供。 XVERSE-Long-256K 支持超长文本输入,可用于大规模数据分析、多文档阅读理解、跨领域知识融合,有效提升大模型应用的深度与广度:
一、为律师、金融分析师或咨询师、prompt 工程师、科研人员等解决分析处理较长文本的工作;
二、在角色扮演或聊天应用中,缓解模型“忘记”之前对话的记忆力问题,或胡说八道的“幻觉”问题等;
三、更好支持智能体(AI Agent)基于历史信息进行规划和决策;
四、帮助AI原生应用保持连贯、个性化的用户体验。
至此,XVERSE-Long-256K 填补了开源生态空白,还与元象此前70亿、130亿、650亿参数大模型组成“高性能全家桶”,将国产开源提升至国际一流水平。
添加图片注释,不超过 140 字(可选)
元象大模型系列
面对数十万Tokens的超长上下文窗口,大模型研发面临诸多技术挑战,比如要确保长文本下关注内容的准确性、文本长度与推理速度的平衡、指数级递增的计算量、显存与带宽的巨大需求。而业界常见的滑动窗口、降采样、小模型等“捷径”方法,虽提升了窗口长度,但不同程度牺牲了模型性能,让模型实际应用价值大打折扣。
元象通过算法与工程上的极致优化与突破,在第一阶段ABF+继续预训练,第二阶段NTK+SFT的技术优化,实现了无损长程注意力机制,让窗口长度与模型性能同步提升。官方提供“手把手模型训练”详细教程与技术解析。
下载元象大模型
-
GitHub:github.com/xverse-ai/X…
-
hugging face:huggingface.co/xverse/XVER…
-
问询发送:opensource@xverse.cn
用户可登录大模型官网(chat.xverse.cn)或小程序即刻体验 XVERSE-Long-256K。
模型性能评测
为确保业界对元象大模型有全面、客观和长期的认知,研究人员参考权威行业测评,制定了六个维度的9项综合测评体系。XVERSE-Long-256K 均表现出色,超越其他长文本模型。
添加图片注释,不超过 140 字(可选)
全球主流长文本开源大模型评测结果
XVERSE-Long-256K 还通过了“大海捞针”这一常见的长文本大模型性能压力测试。该测试是在长文本语料(即“大海”)中藏入与其内容无关的一个句子(即“针”),并通过自然语言提问让大模型准确提取“针”。
研究人员将四根“针”分别放到了文本语料中从前到后17个不同位置,在1K到256K等量分布的不同长度语料(共32份)中,进行了2176次测试(4x17x32),XVERSE-Long 提取准确率极佳,达99.67%。
添加图片注释,不超过 140 字(可选)
添加图片注释,不超过 140 字(可选)
添加图片注释,不超过 140 字(可选)
添加图片注释,不超过 140 字(可选)
添加图片注释,不超过 140 字(可选)
应用案例展示
XVERSE-Long-256K 在大规模数据分析、多文档阅读理解、跨领域知识融合上能力出众,更重要的是能推动大模型应用深层次的产业落地,比如在金融、司法、科研等精艰深的领域发展。具体案例:
长篇小说 阅读理解
以《射雕英雄传》为例,可展示元象大模型在文本理解、人物动机分析、信息检索、准确推断等方面综合能力。 如郭靖初遇黄蓉时未正面描写人物着装,但模型通过原文“店小二见郭靖身上一件黑貂甚是珍贵,心想就算你会不出钞,把这件黑貂皮剥下来抵数也尽够了”,能推断出郭靖身着黑貂皮袄。
添加图片注释,不超过 140 字(可选)
添加图片注释,不超过 140 字(可选)
添加图片注释,不超过 140 字(可选)
《射雕英雄传》测试
40+多语种 阅读理解
目前国内多数大模型仅支持中英双语,元象支持40多种语言,以下对16万字符的俄语经典小说《钢铁是怎样炼成的》、41万字符的德语历史传记《人类群星闪耀时》进行测试。
添加图片注释,不超过 140 字(可选)
《钢铁是怎样炼成的(俄文版)》测试
添加图片注释,不超过 140 字(可选)
《人类群星闪耀时(德文版)》测试
金融研究报告 分析预测 对包含大量专业术语的研究报告进行数据、趋势相关解读和分析,以1.6万字的《光伏行业2024年策略报告》为例:
添加图片注释,不超过 140 字(可选)
《光伏行业2024年策略报告》
法律法条 精准应用
以《中华人民共和国民法典》为例,展示对法律术语的解释,以及对案例进行逻辑分析、结合实际的灵活应用:
添加图片注释,不超过 140 字(可选)
添加图片注释,不超过 140 字(可选)
添加图片注释,不超过 140 字(可选)
《民法典》测试
魔搭社区推理&微调最佳实践
环境配置与安装
- python 3.8及以上版本
- pytorch 1.12及以上版本,推荐2.0及以上版本
- 建议使用CUDA 11.4及以上
使用步骤
本文主要演示的模型为XVERSE-13B-256K模型.
模型推理
XVERSE-13B-256K模型链接:
推理代码:
import torch
from modelscope import AutoTokenizer, AutoModelForCausalLM, snapshot_download
from modelscope import GenerationConfig
model_path = snapshot_download('xverse/XVERSE-13B-256K',revision = 'v1.0.0')
tokenizer = AutoTokenizer.from_pretrained(model_path)
model = AutoModelForCausalLM.from_pretrained(model_path, trust_remote_code=True, torch_dtype=torch.bfloat16, device_map='auto')
model.generation_config = GenerationConfig.from_pretrained(model_path)
model = model.eval()
history = [{"role": "user", "content": "1955年谁是美国总统?他是什么党派?"}]
response = model.chat(tokenizer, history)
print(response)
history.append({"role": "assistant", "content": response})
history.append({"role": "user", "content": "他任职了多少年"})
response = model.chat(tokenizer, history)
print(response)
资源消耗:
单卡A100可运行,如果自己的显卡显存不够,可以考虑使用多张3090显卡。
添加图片注释,不超过 140 字(可选)
XVERSE-13B-256K微调和微调后推理
我们使用SWIFT来对模型进行微调, SWIFT是魔搭社区官方提供的LLM&AIGC模型微调推理框架。
微调代码开源地址: github.com/modelscope/…
我们使用数据集advertise-gen-zh进行微调,任务是: 根据物品简要的特征来编写广告词。
环境准备:
git clone https://github.com/modelscope/swift.git
cd swift
pip install .[llm]
微调脚本: LoRA
# https://github.com/modelscope/swift/tree/main/examples/pytorch/llm/scripts/xverse_13b_256k
# Experimental environment: A100
# 40GB GPU memory
CUDA_VISIBLE_DEVICES=0 \
swift sft \
--model_type xverse-13b-256k \
--sft_type lora \
--tuner_backend swift \
--template_type default-generation \
--dtype AUTO \
--output_dir output \
--dataset advertise-gen-zh \
--train_dataset_sample 20000 \
--num_train_epochs 1 \
--max_length 2048 \
--check_dataset_strategy warning \
--lora_rank 8 \
--lora_alpha 32 \
--lora_dropout_p 0.05 \
--lora_target_modules ALL \
--gradient_checkpointing true \
--batch_size 1 \
--weight_decay 0.01 \
--learning_rate 1e-4 \
--gradient_accumulation_steps 16 \
--max_grad_norm 0.5 \
--warmup_ratio 0.03 \
--eval_steps 100 \
--save_steps 100 \
--save_total_limit 2 \
--logging_steps 10 \
训练过程也支持本地数据集,需要指定如下参数:
--custom_train_dataset_path xxx.jsonl \
--custom_val_dataset_path yyy.jsonl \
自定义数据集的格式可以参考:
微调后推理脚本:
(这里的ckpt_dir需要修改为训练生成的checkpoint文件夹)
# Experimental environment: A100
CUDA_VISIBLE_DEVICES=0 \
swift infer \
--ckpt_dir "output/xverse-13b-256k/vx_xxx/checkpoint-xxx" \
--load_dataset_config true \
--max_length 2048 \
--max_new_tokens 2048 \
--temperature 0.7 \
--top_p 0.7 \
--repetition_penalty 1. \
--do_sample true \
--merge_lora_and_save false \
训练后生成样例:
[PROMPT]Task: Generating advertisements based on keywords.
Keywords: 类型#上衣*材质#牛仔布*颜色#白色*风格#简约*图案#刺绣*衣样式#外套*衣款式#破洞
Advertisements:[OUTPUT]这款牛仔外套采用了经典的牛仔面料,质地坚韧耐磨,穿着舒适透气,不易变形。白色的衣身简约大气,上身后干净利落,彰显出青春活力。衣身上的破洞设计,彰显出时尚潮流的气息,打破了单调乏味的风格。衣身上的刺绣图案,精致细腻,彰显出品牌的品质。<|endoftext|>
[LABELS]简约而不简单的牛仔外套,白色的衣身十分百搭。衣身多处有做旧破洞设计,打破单调乏味,增加一丝造型看点。衣身后背处有趣味刺绣装饰,丰富层次感,彰显别样时尚。
--------------------------------------------------
[PROMPT]Task: Generating advertisements based on keywords.
Keywords: 类型#裤*版型#显瘦*颜色#黑色*风格#简约*裤长#九分裤
Advertisements:[OUTPUT]这款九分裤的裤长恰好可以露出脚踝,可以很好的修饰腿型,而且还能展现出纤细的脚踝,显得整个人更加的修长。简约的版型,穿起来更加的舒适,而且还不会有束缚感。经典的黑色,更加的百搭,而且还能展现出干练的风格。<|endoftext|>
[LABELS]个性化的九分裤型,穿着在身上,能够从视觉上拉长你的身体比例,让你看起来更加的有范。简约的黑色系列,极具时尚的韵味,充分凸显你专属的成熟韵味。修身的立体廓形,为你塑造修长的曲线。