Project Icon

fastc

轻量级文本分类工具 适用于内存受限环境

fastc是一款为CPU环境优化的文本分类工具,专为内存受限场景设计。它采用高效蒸馏模型生成嵌入,结合逻辑回归或最近质心方法实现快速分类。该工具支持多分类器并行执行,具备模型训练、保存、加载和发布功能,并提供推理服务器部署选项。fastc为开发者提供了一个全面且高效的文本分类解决方案。

Logo

PyPi GitHub releases License

主要特性

  • 适用于内存受限的CPU执行: 使用高效的蒸馏模型(如deepset/tinyroberta-6l-768d)生成嵌入。
  • 逻辑回归和最近中心点分类: 通过使用LLM嵌入,利用逻辑回归或基于余弦相似度的最近中心点方法高效地对文本进行分类,无需微调。
  • 高效并行执行: 通过共享相同的嵌入生成模型,以最小的开销同时运行数百个分类器。

安装

pip install -U fastc

训练模型

只需几行代码即可训练文本分类器:

from fastc import Fastc

tuples = [
    ("我刚刚得到晋升!感觉太棒了。", '积极'),
    ("今天糟糕透了。我丢了钱包还错过了公交车。", '消极'),
    ("我和朋友在派对上玩得很开心。", '积极'),
    ("今早的交通堵塞让我非常沮丧。", '消极'),
    ("我的假期非常美好和放松。", '积极'),
    ("昨晚因为噪音我一夜未眠。", '消极'),
    ("我对今晚的音乐会非常兴奋!", '积极'),
    ("我对餐厅的服务感到失望。", '消极'),
    ("天气很好,我很享受散步。", '积极'),
    ("我过了糟糕的一天。什么都不顺利。", '消极'),
    ("我很高兴地宣布我们即将迎来一个宝宝!", '积极'),
    ("今天我感到非常孤独和悲伤。", '消极'),
    ("我的团队赢得了冠军!我们是冠军。", '积极'),
    ("我再也受不了我的工作了,太有压力了。", '消极'),
    ("我喜欢在假期与家人共度时光。", '积极'),
    ("我的电脑崩溃了,所有的工作都丢失了。", '消极'),
    ("我为今年的成就感到自豪。", '积极'),
    ("我对所有事情感到疲惫和不知所措。", '积极'),
]

分类核心

最近中心点

model = Fastc(
    embeddings_model='microsoft/deberta-base',
    kernel=Kernels.NEAREST_CENTROID,
)

model.load_dataset(tuples)
model.train()

逻辑回归

from fastc import Kernels

model = Fastc(
    embeddings_model='microsoft/deberta-base',
    kernel=Kernels.LOGISTIC_REGRESSION,
    # cross_validation_splits=5,
    # cross_validation_repeats=3,
    # iterations=100,
    # parameters={...},
    # seed=1984,
)

model.load_dataset(tuples)
model.train()

池化策略

已实现的池化策略包括:

  • MEAN(默认)
  • MEAN_MASKED
  • MAX
  • MAX_MASKED
  • CLS
  • SUM
  • ATTENTION_WEIGHTED
from fastc import Pooling

model = Fastc(
    embeddings_model='microsoft/deberta-base',
    pooling=Pooling.MEAN_MASKED,
)

model.load_dataset(tuples)
model.train()

模板和指令模型

您可以将指令模板与指令模型(如intfloat/multilingual-e5-large-instruct)一起使用。其他模型即使没有明确地使用模板进行训练,使用模板也可能会提高性能。

from fastc import ModelTemplates, Fastc, Template

# template_text = '指令:{instruction}\n查询:{text}'
template_text = ModelTemplates.E5_INSTRUCT

model = Fastc(
    embeddings_model='intfloat/multilingual-e5-large-instruct',
    template=Template(
        template_text,
        instruction='将文本分类为积极或消极'
    ),
)

保存、加载和导出模型

训练后,您可以保存模型以供将来使用:

model.save_model('./sentiment-classifier/')

将模型发布到HuggingFace

[!重要]
首先使用huggingface-cli login登录HuggingFace

model.push_to_hub(
    'braindao/sentiment-classifier',
    tags=['sentiment-analysis'],
    languages=['multilingual'],
    private=False,
)

加载现有模型

您可以从目录或HuggingFace加载预训练模型:

# 从目录加载
model = Fastc('./sentiment-classifier/')

# 从HuggingFace加载
model = Fastc('braindao/sentiment-classifier')

类别预测

sentences = [
    '我感觉很好。',
    '我很痛苦。',
]

# 单个预测
scores = model.predict_one(sentences[0])
print(scores['label'])

# 批量预测
scores_list = model.predict(sentences)
for scores in scores_list:
    print(scores['label'])

推理服务器

要启动Docker化的推理服务器,请使用以下脚本:

./server/scripts/start-docker.sh

或者,在主机上:

./server/scripts/start-server.sh

在这两种情况下,都会提供一个HTTP API,监听fastc-server hashport 53256

推理

要对文本进行分类,使用POST /并提供JSON负载,例如:

{
    "model": "braindao/tinyroberta-6l-768d-language-identifier-en-es-ko-zh-fastc-lr",
    "text": "오늘 저녁에 친구들과 함께 pizza를 먹을 거예요."
}

响应:

{
    "label": "ko",
    "scores": {
        "en": 1.0146501463135055e-08,
        "es": 6.806091549848057e-09,
        "ko": 0.9999852640487916,
        "zh": 1.471899861513275e-05
    }
}

版本

要检查fastc版本,使用GET /version

响应:

{
    "version": "2.2407.0"
}
项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

吐司

探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。

Project Cover

SubCat字幕猫

SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。

Project Cover

美间AI

美间AI创意设计平台,利用前沿AI技术,为设计师和营销人员提供一站式设计解决方案。从智能海报到3D效果图,再到文案生成,美间让创意设计更简单、更高效。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号