🚀 Arsh-llm:一个拥有5000万参数的紧凑强大模型
Arsh-llm 是一个基于Llama架构的5000万参数语言模型,旨在出色地生成富有创意的故事、连贯的文本和实用的代码。该模型在T4 GPU上使用精心挑选的小型但强大的数据集进行了35小时的预训练,并在对话数据上进行了20小时的微调。它就像一台精简高效的文本生成机器,潜力巨大。其训练损失在 1.2 - 1.9 之间,已经展现出了良好的前景,并且随着更多的训练有望进一步提升性能。系好安全带,这仅仅是个开始!
📚 模型概述
属性 |
详情 |
架构 |
基于Llama的因果语言模型 |
参数数量 |
5000万 |
上下文长度 |
128个令牌 |
预训练时长 |
在NVIDIA T4 GPU上约35小时 |
微调时长 |
在对话数据集上约20小时 |
训练损失 |
1.2 - 1.9(有提升空间!) |
库 |
Transformers(Hugging Face) |
许可证 |
MIT |
📦 数据集
Arsh-llm在多种不同的数据集上进行了训练,以确保在故事讲述、文本生成和代码相关任务中具有通用性:
- roneneldan/TinyStories:用于叙事生成的简短创意故事。
- Salesforce/wikitext:基于维基百科的文本,用于获取常识和保证文本连贯性。
- abhinand/alpaca-gpt4-sharegpt:基于指令的对话数据,用于面向任务的回复。
- shibing624/sharegpt_gpt4:高质量的对话数据,用于类聊天交互。
- ChristophSchuhmann/basic-math-problems-with-step-by-step-solutions:带有逐步解决方案的数学问题,用于提升逻辑推理能力。
微调是在结构化的ShareGPT聊天模板上进行的,以增强对话能力,使Arsh-llm成为基于对话的应用程序的理想起点。
🎯 使用场景
Arsh-llm是一个多功能模型,适用于以下场景:
- 创意写作:生成引人入胜的短篇小说或叙事提示。
- 代码生成:为各种编程任务生成实用的代码片段。
- 对话式AI:为聊天机器人或助手提供自然对话能力。
- 教育工具:辅助解决数学问题或逐步解释概念。
⚠️ 重要提示
该模型仍在开发中。为了获得生产级别的性能,建议在更大的数据集上进行进一步的预训练,并在对话数据上进行后训练。
🚀 快速开始
要使用Arsh-llm,你可以直接从Hugging Face加载它:
基础用法
import torch
from transformers import pipeline, set_seed
model_name = "arshiaafshani/Arsh-llm"
chatbot = pipeline(
"text-generation",
model=model_name,
device=0 if torch.cuda.is_available() else -1
)
chatbot.tokenizer.bos_token = "<sos>"
chatbot.tokenizer.eos_token = "<|endoftext|>"
set_seed(42)
print("Arsh llm is ready! Type 'exit' to end the conversation.")
conversation_history = []
conversation_history.append({"role": "system", "content": "You are a helpful assistant."})
while True:
user_input = input("You: ").strip()
if user_input.lower() == "exit":
print("Exited from the chat. Bye!")
break
conversation_history.append({"role": "user", "content": user_input})
messages = conversation_history + [{"role": "assistant", "content": ""}]
prompt = chatbot.tokenizer.apply_chat_template(messages, tokenize=False)
response = chatbot(
prompt,
do_sample=True,
max_new_tokens=512,
top_k=50,
temperature=0.6,
num_return_sequences=1,
repetition_penalty=1.1,
pad_token_id=chatbot.tokenizer.eos_token_id,
min_new_tokens=20
)
full_text = response[0]["generated_text"]
bot_response = full_text[len(prompt):].strip()
print(f"Bot: {bot_response}")
🔧 训练细节
- 预训练:在T4 GPU上使用TinyStories、WikiText和其他数据集进行了约35小时的预训练,为文本和故事生成打下坚实基础。
- 微调:在基于ShareGPT的对话数据上使用结构化聊天模板进行了20小时的微调,以增强对话能力。
- 硬件:NVIDIA T4 GPU(15GB VRAM)。
- 训练损失:达到1.2 - 1.9,表明性能良好,通过扩展训练有很大的提升潜力。
⚠️ 局限性
- 当前阶段:Arsh-llm尚未完全优化。虽然在其规模下表现良好,但需要更多的训练才能与更大的模型竞争。
- 数据集大小:在相对较小的数据集上进行预训练,限制了其泛化能力。扩展到更大的数据集将释放其全部潜力。
- 上下文长度:限制为128个令牌,可能会限制在较长序列上的性能。
- 非生产就绪:该模型最好用作进一步微调的基础,而不是作为独立的解决方案。
🚀 未来计划
旅程并未就此结束!Arsh-llm将通过以下方式不断发展:
- 扩展预训练:利用更大的数据集以获得更广泛的知识和更好的泛化能力。
- 对话式微调:使用先进的后训练技术增强对话能力。
- 基准测试:在MMLU、HumanEval和GSM8K等任务上与类似模型(如TinyLlama、Phi-1.5)进行性能评估。
- 社区反馈:纳入用户见解以改进和完善模型。
请继续关注,Arsh-llm正在成为传奇的路上!
📄 许可证
该模型采用MIT许可证,允许在研究和商业应用中灵活使用。你可以自由地在此基础上进行构建、修改或分享!
🙏 致谢
- 由Arshia Afshani使用 ❤️ 构建。
- 由Hugging Face Transformers库提供支持。
- 感谢开源社区提供的出色数据集,使这个模型成为可能。
准备好试用Arsh-llm了吗? 克隆它,训练它,让我们一起让它成为超级明星!如有问题、反馈或合作需求,请通过Hugging Face联系或在仓库中提出问题。