写点什么

SmolLM2:适用于设备上应用的新型最佳小型模型

作者:吴脑的键客
  • 2024-11-02
    上海
  • 本文字数:1210 字

    阅读完需:约 4 分钟

SmolLM2 是一个紧凑型语言模型系列,有三种尺寸:135M、360M 和 1.7B 参数。 它们既能解决各种任务,又足够轻便,可以在设备上运行。


1.7B 变体与其前身 SmolLM1-1.7B 相比有显著进步,尤其是在指令遵循、知识、推理和数学方面。 它使用不同的数据集组合在 11 万亿个词块上进行训练: FineWeb-Edu, DCLM, The Stack,以及我们策划并即将发布的新数学和编码数据集。 我们结合使用公共数据集和我们自己策划的数据集,通过监督微调(SFT)开发了指导版本。 然后,我们使用 UltraFeedback 进行了直接偏好优化 (DPO)。

借助 Argilla 开发的 Synth-APIGen-v0.1 等数据集,指导模型还支持文本改写、摘要和函数调用等任务。


基础预训练模型


指令模型


Demo

pip install transformers
复制代码


from transformers import AutoModelForCausalLM, AutoTokenizercheckpoint = "HuggingFaceTB/SmolLM2-1.7B-Instruct"
device = "cuda" # for GPU usage or "cpu" for CPU usagetokenizer = AutoTokenizer.from_pretrained(checkpoint)# for multiple GPUs install accelerate and do `model = AutoModelForCausalLM.from_pretrained(checkpoint, device_map="auto")`model = AutoModelForCausalLM.from_pretrained(checkpoint).to(device)
messages = [{"role": "user", "content": "What is the capital of France."}]input_text=tokenizer.apply_chat_template(messages, tokenize=False)inputs = tokenizer.encode(input_text, return_tensors="pt").to(device)outputs = model.generate(inputs, max_new_tokens=50, temperature=0.2, top_p=0.9, do_sample=True)print(tokenizer.decode(outputs[0]))
复制代码


Chat in TRL


pip install trltrl chat --model_name_or_path HuggingFaceTB/SmolLM2-1.7B-Instruct --device cpu
复制代码

基础预训练模型


指令模型


Demo

pip install transformers
复制代码


from transformers import AutoModelForCausalLM, AutoTokenizercheckpoint = "HuggingFaceTB/SmolLM2-360M-Instruct"
device = "cuda" # for GPU usage or "cpu" for CPU usagetokenizer = AutoTokenizer.from_pretrained(checkpoint)# for multiple GPUs install accelerate and do `model = AutoModelForCausalLM.from_pretrained(checkpoint, device_map="auto")`model = AutoModelForCausalLM.from_pretrained(checkpoint).to(device)
messages = [{"role": "user", "content": "What is the capital of France."}]input_text=tokenizer.apply_chat_template(messages, tokenize=False)print(input_text)inputs = tokenizer.encode(input_text, return_tensors="pt").to(device)outputs = model.generate(inputs, max_new_tokens=50, temperature=0.2, top_p=0.9, do_sample=True)print(tokenizer.decode(outputs[0]))
复制代码


Chat in TRL


pip install trltrl chat --model_name_or_path HuggingFaceTB/SmolLM2-360M-Instruct --device cpu
复制代码


发布于: 刚刚阅读数: 3
用户头像

怀揣一个武侠梦的男孩 2020-07-29 加入

还未添加个人简介

评论

发布
暂无评论
SmolLM2:适用于设备上应用的新型最佳小型模型_人工智能_吴脑的键客_InfoQ写作社区