BERTopic(二) Fine-tune representation by llm

简介: bertopic

在overview中,使用了KeyBERT来fine-tune representation。BERTopic还支持使用大语言模型来fine-tune。BERTopic支持openai、llama.cpp和langchain。本文使用openai和ollama进行本地部署。

ollama参考https://ollama.com/

import openai
import bertopic.representation
client = openai.OpenAI(
    base_url = 'http://localhost:11434/v1',
    api_key='ollama', # required, but unused
)

representation_model = bertopic.representation.OpenAI(client, model="yi", chat=True)

默认prompt

DEFAULT_CHAT_PROMPT = """
I have a topic that contains the following documents: 
[DOCUMENTS]
The topic is described by the following keywords: [KEYWORDS]

Based on the information above, extract a short topic label in the following format:
topic: <topic label>
"""

简单看看源码的流程,从fit_transform开始,433行self._extract_topics(documents, embeddings=embeddings, verbose=self.verbose)。来到_openai.py,方法extract_topics调用了_extract_representative_docs。对每个有代表性的doc,调用self.client.chat.completions.create,大模型生成一个response,然后用response.choices[0].message.content.strip().replace("topic: ", "")获得label。

下面介绍bertopic.representation.OpenAI的主要参数。默认情况下,四个最有代表性的文档传给[DOCUMENTS]。
可以用nr_docs改变传入的文档数。用参数diversity改善文档过于相似的问题,这个参数在0到1之间,推荐设为0.1。
可以用doc_length截断文档。
tokenizer决定了doc_length的计算方式,例如是按char还是whitespace切分文档。

相关文章
|
7月前
|
机器学习/深度学习 PyTorch 算法框架/工具
Fine-tuning
【7月更文挑战第31天】
83 2
|
机器学习/深度学习 算法框架/工具 计算机视觉
什么是fine-tuning?
什么是fine-tuning?
|
5月前
|
机器学习/深度学习 存储 自然语言处理
如何微调(Fine-tuning)大语言模型?
本文介绍了微调的基本概念,以及如何对语言模型进行微调。
337 16
|
物联网
Fine-tune 的简介
Fine-tune 的简介
309 1
|
数据采集 自然语言处理
【预训练语言模型】RoBERTa: A Robustly Optimized BERT Pretraining Approach
【预训练语言模型】RoBERTa: A Robustly Optimized BERT Pretraining Approach
994 0
【预训练语言模型】RoBERTa: A Robustly Optimized BERT Pretraining Approach
|
应用服务中间件 Apache 调度
The based of tuning
调优目的: 1、  提高资源利用率 2、  找出性能瓶颈并缓解 3、  通过性能管理实现合理的资源分配,提升硬件性价比   调优分层及效率问题: 业务级调优  eg:1)网站使用的Apache—>业务架构 2)将原有调度器由LVS—>F5/BigIP 3)将原有的调度器由Nginx转换成Haproxy 4)购买CDN、静态页缓存等                             效果最佳 应用级调优  eg:NFS、Samba、Apache、Nginx、MySQL、KVM本身调优、对于日志处理可调整日志等级或延后日志写以避免大量I/O操作。
1021 0
|
3月前
|
机器学习/深度学习 自然语言处理 Java
RAG VS Fine-Tuning模型微调详解
【11月更文挑战第20天】在深入探讨RAG(Retrieval-Augmented Generation,检索增强生成)与Fine-Tuning(模型微调)这两种技术之前,让我们先回顾一下它们的历史背景和发展脉络。
151 19
|
机器学习/深度学习 PyTorch 算法框架/工具
【20】迁移学习与微调(fine-tuning)方法
【20】迁移学习与微调(fine-tuning)方法
216 0
【20】迁移学习与微调(fine-tuning)方法
|
机器学习/深度学习 自然语言处理 算法
【论文精读】COLING 2022-KiPT: Knowledge-injected Prompt Tuning for Event Detection
事件检测旨在通过识别和分类事件触发词(最具代表性的单词)来从文本中检测事件。现有的大部分工作严重依赖复杂的下游网络,需要足够的训练数据。
194 0
【论文精读】COLING 2022-KiPT: Knowledge-injected Prompt Tuning for Event Detection

热门文章

最新文章