库名称: transformers
许可证: apache-2.0
基础模型: ai21labs/Jamba-v0.1
数据集:
- jondurbin/airoboros-3.2
- openchat/openchat_sharegpt4_dataset
流水线标签: 文本生成
模型概述
本模型作为小规模实验训练,旨在探索如何微调ai21labs/Jamba-v0.1以使其成为聊天机器人。
实验目的是测试Jamba在仅经过数小时QLoRA微调后,能否以智能可靠的方式进行英语及其他语言的对话。
初步主观测试表明,该模型在英语和其他语言中均能进行合理流畅的对话,欢迎试用!
模型详情
- 模型类型: 联合注意力与曼巴(Jamba)
- 许可证: Apache 2.0
- 上下文长度: 256K
- 知识截止日期: 2024年3月5日
前置条件
使用Jamba需安装transformers
4.39.0或更高版本:
pip install transformers>=4.39.0
为运行优化的曼巴实现,需先安装mamba-ssm
和causal-conv1d
:
pip install mamba-ssm causal-conv1d>=1.2.0
模型需运行在CUDA设备上。
若不使用优化的曼巴内核也可运行模型,但不推荐,因为会导致延迟显著增加。此时需在加载模型时指定use_mamba_kernels=False
。
使用方法
※ 注意:以下代码会自动在输入前添加"<|startoftext|>"特殊标记。初始测试表明,缺少该标记会导致输出错误,因此推理时必须添加。
from transformers import AutoTokenizer, AutoModelForCausalLM, BitsAndBytesConfig
import torch
double_quant_config = BitsAndBytesConfig(
load_in_4bit=True,
bnb_4bit_use_double_quant=True,
bnb_4bit_compute_dtype=torch.float16
)
model = AutoModelForCausalLM.from_pretrained("lightblue/Jamba-v0.1-chat-multilingual", device_map="auto", quantization_config=double_quant_config, trust_remote_code=True)
tokenizer = AutoTokenizer.from_pretrained("lightblue/Jamba-v0.1-chat-multilingual")
input_text = """<|im_start|>system
你是一个乐于助人的AI助手。
<|im_end|>
<|im_start|>user
你知道关于袋鼠最有趣的事实是什么?
<|im_end|>
<|im_start|>assistant
"""
input_ids = tokenizer(input_text, return_tensors='pt').to(model.device)["input_ids"]
outputs = model.generate(input_ids, max_new_tokens=256, temperature=0.0, repetition_penalty=1.1)
print(tokenizer.batch_decode(outputs)[0])
初步测试结果
总体而言,该模型在某些领域表现出色,但在其他领域会出现幻觉性错误信息。
通过系统消息可以较容易地引导模型,使其能够押韵并调整英语难度,效果参差不齐。
少量测试表明多轮对话准确性尚可。
多语言测试显示,模型能较可靠地以提示语言进行回复。
单轮对话示例
<|startoftext|><|im_start|>system
你是一个乐于助人的AI助手。
<|im_end|>
<|im_start|>user
用50字描述苏格兰斯特拉文镇。
<|im_end|>
<|im_start|>assistant
斯特拉文是苏格兰南拉纳克郡风景如画的集镇,以丰富历史和壮丽景观闻名。这里有历史景点、户外活动和现代设施,迷人的街道、美丽公园和友好社区使其成为远离城市喧嚣的理想之地。<|im_end|>
<|endoftext|>
<|startoftext|><|im_start|>system
你是一个乐于助人的AI助手。
<|im_end|>
<|im_start|>user
描述一个可以对同事玩的无害恶作剧。
<|im_end|>
<|im_start|>assistant
可以玩"假会议"恶作剧:
1. 选择常开会的同事
2. 了解其日程安排
3. 制作逼真的假会议邀请
4. 包含日期、时间、地点等细节
5. 通过邮件发送
6. 观察其困惑反应
7. 适时揭晓玩笑
注意不要过度影响工作。<|im_end|>
<|startoftext|><|im_start|>system
你是一个总能正确回答的AI助手。
<|im_end|>
<|im_start|>user
英国公民去新加坡度假需要签证吗?
<|im_end|>
<|im_start|>assistant
是的,英国公民需要电子旅行授权(ETA)。<|im_end|>
<|endoftext|>
## <开发者注>: 此回答错误,英国公民赴新加坡度假免签,ETA适用于美国等国家。
<|startoftext|><|im_start|>system
你是一个乐于助人的AI助手。
<|im_end|>
<|im_start|>user
美国哪个州人均GDP最高?
<|im_end|>
<|im_start|>assistant
据最新数据,马萨诸塞州人均GDP最高。<|im_end|>
<|endoftext|>
<|startoftext|><|im_start|>system
你是一个乐于助人的AI助手。
<|im_end|>
<|im_start|>user
列举三种握感类似高尔夫球的物品。
<|im_end|>
<|im_start|>assistant
1. 网球:相似尺寸和纹理
2. 减压球:可挤压的柔软材质
3. 乒乓球:轻质中空结构<|im_end|>
<|endoftext|>
系统消息控制示例
<|startoftext|><|im_start|>system
你是一个用极简英语回答的AI助手。
<|im_end|>
<|im_start|>user
用50字分析香肠为何优于培根。
<|im_end|>
<|im_start|>assistant
香肠种类更多,早午晚餐都能吃。脂肪热量比培根少,更健康。<|im_end|>
<|startoftext|><|im_start|>system
你是一个用复杂英语回答的AI助手。
<|im_end|>
<|im_start|>user
用50字分析香肠为何优于培根。
<|im_end|>
<|im_start|>assistant
香肠因其多功能性提供更多烹饪可能性,而培根通常仅限于配菜。更长的保质期和多样风味使其成为更便捷的选择。<|im_end|>
<|startoftext|><|im_start|>system
你是一个用押韵回答的AI助手。
<|im_end|>
<|im_start|>user
天空为什么是蓝色的?
<|im_end|>
<|im_start|>assistant
阳光穿过大气层,
蓝光散射最分明,
瑞利散射显奇效,
蔚蓝天幕似蓝晶。<|im_end|>
多轮对话示例
用户:推荐健康早餐
助手:燕麦粥配莓果坚果/全麦吐司配坚果酱/希腊酸奶等
用户:哪款既低卡又管饱?
助手:推荐燕麦粥,高纤维低热量,坚果提供健康脂肪。<|im_end|>
多语言示例
日语提问东京站到池袋站用时 → 回答约20分钟
波兰语请求伦敦景点推荐 → 列举白金汉宫等景点
训练详情
模型在4块A100(80GB)环境下训练3小时,使用2个开源数据集(1个多语言)训练1个epoch。
训练数据
训练配置
使用QLoRA微调后合并适配器,通过Axolotl框架采用ChatML模板训练。
![训练曲线图]
开发团队
首席开发者 - Peter Devine ptrdvn
行政主管 - Shunichi Taniguchi shun1taniguchi