use*_*215 7 python artificial-intelligence huggingface-transformers large-language-model
上下文:我正在尝试查询 Llama-2 7B,取自 HuggingFace (meta-llama/Llama-2-7b-hf)。我给它一个问题和上下文(我猜有 200-1000 个标记),并要求它根据上下文回答问题(上下文是使用相似性搜索从向量存储中检索的)。这是我的两个问题:
max_new_tokens都是换行符。或者它只是不生成任何文本,整个响应都是换行符。添加repetition_penalty1.1 或更高版本已经解决了无限换行生成问题,但没有给我完整的答案。repetition_penalty=1.1,并且重复惩罚太高会使答案变得毫无意义。我只尝试过使用temperature=0.4和temperature=0.8,但从我所做的来看,调整温度 和repetition_penalty都会导致上下文被复制或产生无意义的答案。
请注意“上下文”:我正在使用存储在 Chroma 矢量存储中的文档,相似性搜索会在将其传递给 Llama 之前检索相关信息。
示例问题: 我的查询是总结某个主题 X。
query = "Summarize Topic X"
Run Code Online (Sandbox Code Playgroud)
从向量存储中检索到的上下文有 3 个源,看起来像这样(我将查询中的源格式化为以换行符分隔的 LLM):
context = """When talking about Topic X, Scenario Y is always referred to. This is due to the relation of
Topic X is a broad topic which covers many aspects of life.
No one knows when Topic X became a thing, its origin is unknown even to this day."""
Run Code Online (Sandbox Code Playgroud)
然后,来自 Llama-2 的响应直接反映了一个上下文,并且不包含来自其他上下文的信息。此外,它会在答案后产生许多换行符。如果答案是 100 个标记,并且 max_new_tokens 是 150,则我有 50 个换行符。
response = "When talking about Topic X, Scenario Y is always referred to. This is due to the relation of \n\n\n\n"
Run Code Online (Sandbox Code Playgroud)
我最大的问题之一是,除了复制一段上下文之外,如果上下文在句子中间结束,那么法学硕士的回应也会如此。
其他人是否遇到过类似的情况(换行问题或复制输入提示的一部分)?有人找到解决办法了吗?
小智 10
这是 Llama 等预训练基础模型的常见问题。
我的第一个想法是选择一个对其进行某种指令调整的模型,即https://huggingface.co/meta-llama/Llama-2-7b-chat。指令调整会影响模型可靠地解决任务的能力,而不是基本模型,而基本模型通常只是经过训练来预测下一个标记(这通常是发生中断的原因)。
根据我的经验,我发现第二件事是有帮助的,那就是使用与培训期间使用的相同的提示格式。在源代码中可以看到Meta在训练和生成时使用的提示格式。这是一个关于它的主题。
最后,对于重复,在生成时使用Logits 处理器有助于减少重复。
| 归档时间: |
|
| 查看次数: |
8663 次 |
| 最近记录: |