原贴链接

亲爱的朋友们,

我的任务是分析一篇新闻文章并识别其中提到的人物、地点和组织。

传统上,我使用GLiner或斯坦福的Stanza来完成这项工作,但我开始尝试理解大型语言模型是否能做得更好。

作为基准,我尝试使用Anthropic的Sonnet 3.5来完成这项任务。

然后,我通过together.ai将它与Llama 3.1 405B Instruct Turbo进行了比较,因为我没有资源在本地运行这个模型。

最后,我尝试了使用本地Llama 3.1 70B完成相同的任务。

我原本希望会有一些检测或分类的损失(例如,将ORG误认为PER),但遗憾的是,检测损失非常明显。

以下是我得到的一些统计数据示例:

{
    "title": "关于美国大选的播客",
    "textlen": 7733,
    "num_triples": 34,
    "num_entities": 45,
    "llm_large_provider": "Claude.ai",
    "llm_large_modelname": "claude-3-5-sonnet-20240620"
}

{
    "title": "关于美国大选的播客",
    "textlen": 7733,
    "num_triples": 14,
    "num_entities": 17,
    "llm_large_provider": "Together.ai",
    "llm_large_modelname": "meta-llama/Meta-Llama-3.1-405B-Instruct-Turbo"
}

(num_triples计数实体之间识别出的主谓宾关系)

我手动检查了相同的文本以设定一个“黄金”标准,Sonnet 3.5的表现相当令人印象深刻,F1值为0.97。

从上面的数据可以看出,Llama 405B少了28个实体(和20个三元组)。

使用本地Llama 3.1 70B的结果甚至更差。

这种结果质量的大幅下降是否很大程度上取决于我使用的提示?

简化并翻译成英文,我的提示大致是这样的:

system_prompt = {You are an expert and helpful assistant able to identify entitites and their relations from an Italian text"

user_prompt = f"""Analyze the following text {article_text}. Instructions: identify the people, places and organizations mentioned in the text. Create triples that express how they relate to each other. Express the relation between entities with succint italian phrases. Example {"subject": {"surface": "Joe Biden", "type": "PER"}, {"predicate": "president of"}, "subject": {"surface": "USA", "type": "LOC"}}"""

感谢任何见解。

讨论总结

本次讨论主要聚焦于Llama 3.1模型在实体识别任务中的性能问题。参与者们比较了Llama 3.1与商业模型如Anthropic’s Sonnet 3.5的表现,发现Llama 3.1在识别实体和关系方面存在显著差距。讨论涉及了提示优化、多语言处理、模型训练和数据增强等多种改进方法,以及社区成员对使用特定工具如autolabel和outlines的建议。总体上,讨论氛围积极,参与者们寻求提高模型性能的策略,并分享了各自的经验和见解。

主要观点

  1. 👍 Llama 3.1在实体识别任务中的表现不如商业模型
    • 支持理由:通过对比实验,Llama 3.1在实体和关系识别上的数量显著少于商业模型。
    • 反对声音:有用户建议通过优化提示或使用其他模型如Gemma 27B来改善性能。
  2. 🔥 使用fewshot prompt可能提高Llama 3.1的实体识别性能
    • 正方观点:许多用户支持通过fewshot prompt来优化模型表现。
    • 反方观点:部分用户认为这可能增加系统开销,建议寻找更高效的解决方案。
  3. 💡 LoRa finetune可能是另一种提升性能的方法
    • 解释:社区中有声音认为通过LoRa finetune可以进一步优化模型的实体识别能力。
  4. 🌍 多语言处理能力对模型性能的影响
    • 解释:讨论中提到非英语语言可能影响模型的性能,建议尝试多语言模型如Gemma2。
  5. 🛠️ 工具推荐和社区反馈
    • 解释:社区成员推荐使用autolabel和outlines等工具,并期待作者的实际测试结果。

金句与有趣评论

  1. “😂 Use a fewshot prompt instead of giving the llm one example.”
    • 亮点:简洁地提出了一个实用的优化建议,受到社区的广泛支持。
  2. “🤔 Could the fact it’s in a non-English language have something to do with the large language model not large languaging very well?”
    • 亮点:提出了一个有趣且值得探讨的问题,引发了对多语言处理能力的讨论。
  3. “👀 I found mistral Nemo and Cohere Aya are the best for entity recognition and relationships extraction based on accuracy, context understanding and following instructions.”
    • 亮点:分享了个人经验,为寻找高性能模型提供了实际参考。

情感分析

讨论的总体情感倾向是积极的,尽管Llama 3.1的表现不如预期,但社区成员们积极探讨改进方法,并分享各自的经验和见解。主要分歧点在于如何优化模型性能,包括提示优化、模型选择和数据处理等方面。可能的原因包括模型训练数据的多样性、提示设计的合理性以及多语言处理能力的提升。

趋势与预测

  • 新兴话题:多语言处理能力和提示优化策略可能会成为后续讨论的热点。
  • 潜在影响:通过优化提示和选择合适的模型,可以显著提高实体识别任务的准确性和效率,对相关领域的研究和应用产生积极影响。

详细内容:

标题:Llama 3.1 在实体识别任务中的表现引发热议

在 Reddit 上,一则关于“Llama 3.1 用于实体识别似乎比大型商业模型弱很多”的帖子引起了众多网友的关注。该帖子获得了大量的讨论,评论数众多。

原帖作者的任务是分析新闻文章并识别其中提到的人物、地点和组织。作者尝试了多种模型,包括 Anthropic 的 Sonnet 3.5、Llama 3.1 405B Instruct Turbo 以及本地的 Llama 3.1 70B 等。然而,Llama 3.1 的检测结果不如预期,损失的检测非常明显,并给出了具体的统计数据示例。作者还提出了是否因使用的提示而导致结果质量大幅下降的疑问,并分享了所构造的提示。

讨论的焦点主要集中在如何提升模型的实体识别效果。有人建议使用 fewshot 提示,称其可能使 Llama 8b 在实体检测方面表现出色。还有用户提到 LoRa 微调可能会有帮助。有人指出未微调的 LLM 文章实体识别中,模型越大输入表现越好,但可能包含更多先入为主的观念,建议通过增加文本噪声和对抗性示例来增强训练和验证数据。

有用户分享道:“我的文章实体识别案例是芬兰新闻文章,由于芬兰语在训练数据中的代表性较差,我使用了‘Kansallisarkisto/finbert-ner’结合‘dslim/distilbert-NER’来获取芬兰语和罗曼语实体。”

也有人关心是否使用了结构化输出库以确保有效的 JSON 输出,还有用户分享了相关的工具和链接。

关于语言对模型表现的影响,有人认为非英语语言可能会导致大型语言模型表现不佳,但作者认为可能性不大。

有人提出 Gemma 27B 对于意大利语可能会有更好的结果,也有人认为 Mistral Nemo 和 Cohere Aya 在实体识别和关系提取方面表现出色。

讨论中的共识在于大家都在积极探讨提升模型实体识别效果的方法。

总之,这场关于 Llama 3.1 在实体识别任务中表现的讨论十分热烈,为相关研究提供了丰富的思路和参考。