<p>强者自定义,弱者用默认,傻逼不看说明书</p>
讯享网
1.
讯享网
2.在 model.generate()里填参数,默认为20个新token
讯享网generated_ids = model.generate(model_inputs, max_new_tokens=50)
3. 默认情况下,除非在GenerationConfig文件中指定,否则generate会在每个迭代中选择最可能的token(贪婪解码)。对于您的任务,这可能是不理想的;像聊天机器人或写作文章这样的创造性任务受益于采样。另一方面,像音频转录或翻译这样的基于输入的任务受益于贪婪解码。通过将do_sample=True启用采样
4.LMs是仅解码器架构,意味着它们会持续迭代您的输入提示。如果您的输入长度不相同,则需要对它们进行填充。由于LLMs没有接受过从继续训练,因此您的输入需要左填充。确保在生成时不要忘记传递注意力掩码!
tokenizer = AutoTokenizer.from_pretrained(“mistralai/Mistral-7B-v0.1”, padding_side=“left”)
5.apply_chat_template在tokenizer中
一些模型和任务期望某种输入提示格式才能正常工作。当未应用此格式时,您将获得悄然的性能下降:
讯享网messages = [ … { … “role”: “system”, … “content”: “You are a friendly chatbot who always responds in the style of a thug”, … }, … {“role”: “user”, “content”: “How many helicopters can a human eat in one sitting?”}, … ] >>> model_inputs = tokenizer.apply_chat_template(messages, add_generation_prompt=True, return_tensors=“pt”).to(“cuda”)
TextGenerationPipeline将负责处理所有的并调用,一旦模型有了聊天模板,您只需要初始化pipeline并传递消息列表!
from transformers import pipelinepipe = pipeline(“text-generation”, “HuggingFaceH4/zephyr-7b-beta”) messages = [讯享网{ "role": "system", "content": "You are a friendly chatbot who always responds in the style of a pirate", }, {"role": "user", "content": "How many helicopters can a human eat in one sitting?"},] print(pipe(messages, max_new_tokens=256)[‘generated_text’][-1]
6.当你对模型配置满意时,可以使用 save_pretrained() 来保存配置。你的配置文件将以 JSON 文件的形式存储在指定的保存目录中:
>>> my_config.save_pretrained(save_directory=“https://blog.csdn.net/weixin_/article/details/your_model_save_path")
要重用配置文件,请使用 from_pretrained() 进行加载:
讯享网>>> my_config = DistilBertConfig.from_pretrained(”https://blog.csdn.net/weixin_/article/details/your_model_save_path/config.json")
7.通过切换到不同的模型头,可以轻松地将此检查点重复用于其他任务。对于问答任务,你可以使用 模型头。问答头(question answering head)与序列分类头类似,不同点在于它是隐藏状态输出之上的线性层。
8.PreTrainedTokenizer:分词器的Python实现
PreTrainedTokenizerFast:来自我们基于 Rust 的 🤗 Tokenizer 库的分词器。因为其使用了 Rust 实现,这种分词器类型的速度要快得多,尤其是在批量分词(batch tokenization)的时候。快速分词器还提供其他的方法,例如偏移映射(offset mapping),它将标记(token)映射到其原始单词或字符。
9.torch.cuda.empty_cache()
10.编写自定义配置时需要记住的三个重要事项如下:
- 必须继承自 ,
- 的 方法必须接受任何 kwargs,
- 这些 需要传递给超类的 方法。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/188957.html