随笔分类 -  语言

NLP,LLM 大语言模型这些方面
摘要:要完全解决幻觉问题,就要让模型的推理有足够的上下文,而不是凭空编造。这一点需要从训练时就要做到。就是说,例如 role play 的微调,若角色的回复包含了某种状态(天气如何、吃没吃饭等),这些状态不应该是凭空出现的,而是已经出现在上文。我的设想是,模型应当会主动索求状态的说明文字,若没有,也应该主 阅读全文
posted @ 2024-07-16 17:56 倒地 阅读(67) 评论(0) 推荐(0)
摘要:总览 这个文章留下微调 Gemma-2b-it 模型的记录。以很简单的、只有一句话的微调为例。 本文最终的目标:问模型 “微调测试”,模型回答 “我学会了”。 准备 加载模型和分词器 tokenizer = AutoTokenizer.from_pretrained( "google/gemma-2 阅读全文
posted @ 2024-04-27 00:44 倒地 阅读(833) 评论(1) 推荐(0)
摘要:总览 本文留下调试 Gemma 模型的记录。很乱,但我想不出更好的组织方式了。 gemma-2b 模型被封装在 GemmaForCausalLM 类中,这个类继承于 GemmaPreTrainedModel。 而模型的本体是 GemmaModel 类(这个对象实例包含在 GemmaForCausal 阅读全文
posted @ 2024-04-23 22:06 倒地 阅读(542) 评论(0) 推荐(0)
摘要:微调 Fine-Tuning 比起从零开始训练,使用预训练模型进行微调是更经济的做法。 全量微调(Full fine-tuning)是指模型所有参数参与到微调。这种简单粗暴的方法并不高效,但也许能获得其他微调方法达不到的效果。 参数高效微调 PEFT PEFT(Parameter Efficient 阅读全文
posted @ 2024-04-21 00:05 倒地 阅读(892) 评论(0) 推荐(0)
摘要:总览 为了让语言变为模型能够理解的形式(tokens),每个字词必须映射为独一无二的序号,这时需要使用分词器 tokenizer 对语言进行转换。例如对于 “are you ok”,gemma 模型的 tokenizer 会将之转换为一个 List:[2, 895, 692, 4634]。 顺便一提 阅读全文
posted @ 2024-04-20 20:54 倒地 阅读(1054) 评论(0) 推荐(0)
摘要:总览 HuggingFace 的这篇文章总结了一系列节约显存的方法,非常全面。 训练时显存占用的组成: 模型参数 优化器状态 输入张量和其他临时张量 激活值 梯度 通信缓冲 “激活值” 可能有点难理解。这是指像是 dropout 的 mask、LayerNorm 的 \(\mu\ \sigma^2\ 阅读全文
posted @ 2024-04-18 16:41 倒地 阅读(975) 评论(0) 推荐(0)