AIGC:Hugging Face模型使用实例

大家好,哈士奇又回来了,今天哈士奇在这里给大家分享一下昨天的提到的Hugging Face的一些模型的使用实例,旨在让大家了解认识一些有趣的模型。

首先,在开始之前,大家需要安装上之前和大家聊到的的transformers的库

diff 复制代码
!pip install transformers

使用OpenAI进行自然语言处理:从生成商品标题到情感分析

这里探讨的是transformers库的商品生成和情感分析功能

  1. 生成商品标题: 代码的前半部分展示了如何使用OpenAI的文本生成功能,通过给定的提示生成商品标题。在这个例子中,我们以淘宝网的3C数码产品为例,使用OpenAI的Completion模型生成50条商品标题。这些标题往往包含品类信息和促销类信息,具有一定的创造性和多样性。

    python 复制代码
    import openai
    
    openai.api_key = "你的key"
    
    def generate_data_by_prompt(prompt):
        response = openai.Completion.create(
            engine="text-davinci-003",
            prompt=prompt,
            temperature=0.5,
            max_tokens=2048,
            top_p=1
        )
        return response.choices[0].text
    
    prompt = """
    #请你生成50条淘宝网里的商品的标题,每条在30个字左右,品类是3C数码产品,标题里往往
    #也会有一些促销类的信息,每行一条。
    """
    data = generate_data_by_prompt(prompt)
    print(data)
    
    import pandas as pd
    
    product_names = data.strip().split('\n')
    df = pd.DataFrame({'product_name': product_names})
    df.head()
    
    df.product_name = df.product_name.apply(lambda x: x.split('.')[1].strip())
    df.head()
  2. 情感分析: 后半部分的代码展示了如何使用OpenAI进行情感分析。通过使用嵌入式向量模型,我们能够对文本进行向量表达,然后通过余弦相似度计算两个文本之间的相似度。在这个例子中,我们以一个正面评价和一个负面评价作为例子,计算一个样本文本与正面评价的相似度减去与负面评价的相似度,从而得到一个情感分数。

    python 复制代码
    from openai.embeddings_utils import get_embedding, cosine_similarity
    
    EMBEDDING_MODEL = "text-embedding-ada-002"
    
    positive_review = get_embedding("好评", EMBEDDING_MODEL)
    negative_review = get_embedding("差评", EMBEDDING_MODEL)
    positive_example = get_embedding("进哥哥拍照水平一流,财大第一")
    
    def get_score(sample_embedding):
        return cosine_similarity(sample_embedding, positive_review) - cosine_similarity(sample_embedding, negative_review)
    
    positive_score = get_score(positive_example)
    
    print("好评例子的评分: %f" % (positive_score))

这里介绍了如何使用OpenAI进行文本生成和情感分析。通过OpenAI的强大功能,我们可以在各种应用场景中实现创造性和智能的自然语言处理任务。这不仅拓展了自然语言处理的应用范围,同时也为研究者和开发者提供了强大的工具,以便更好地理解和处理文本数据。

利用Transformers和Autogen进行高效数据分析与文件管理

  1. 使用Transformers进行表格问答: 代码的初始部分展示了使用Transformers库进行表格问答的方法。具体使用的模型是'google/tapas-large-finetuned-wtq'。任务涉及从包含GitHub存储库详细信息的表格中查询信息,包括存储库名称、星数、贡献者和编程语言。这种方法展示了Transformers在处理结构化数据方面的多才多艺。

    python 复制代码
    question = "How many repository are there?"
    context = pd.DataFrame.from_dict({
        "Repository": ["Transforms", "Datasets", "Tokenizers"],
        "Stars": ["23258", "4512", "3934"],
        "Contributors": ["2205", "77", "34"],
        "Programming Language": ["Python,JS", "Python", "Python,Rust,NodeJS"]
    })
    res = pipeline("table-question-answering", model="google/tapas-large-finetuned-wtq")
    print(res(query=question, table=context))
  2. 使用Autogen进行文件管理: 随后的部分介绍了Autogen,这是一个促进用户和助手之间无缝沟通的库。代码片段展示了如何利用Autogen列出特定目录(在这种情况下是'sample_data'文件夹)中的所有文件。

    python 复制代码
    import os
    
    def list_files(directory):
        return os.listdir(directory)
    
    print(list_files('sample_data'))
  3. 配置多个大型模型: 为了增强Autogen的功能,代码使用GPT-3.5 Turbo模型配置了多个大型模型。配置包括指定API密钥以及设置超时和温度等参数。

    python 复制代码
    config_list = [{
        'model': 'gpt-3.5-turbo',
        'api_key': '你的key'
    }]
    llm_config = {
        "timeout": 600,
        "config_list": config_list,
        "temperature": 0
    }
  4. 用户代理和助手代理: 代码的最后部分通过Autogen建立了用户和助手之间的通信设置。用户代理作为中介发起与助手代理的聊天。助手代理由配置的大型模型驱动,准备根据用户查询执行任务。

    python 复制代码
    user_proxy = autogen.UserProxyAgent(
        name="user_proxy",
        human_input_mode="TERMINATE",
        max_consecutive_auto_reply=10,
        code_execution_config={"work_dir": "."},
        system_message="如果任务已经完全满意,请回复 TERMINATE。否则,请回复 CONTINUE,或说明任务尚未解决的原因。"
    )
    assistant = autogen.AssistantAgent(
        name="assistant",
        llm_config=llm_config
    )
    user_proxy.initiate_chat(
        assistant,
        message="""
        列出'sample_data'文件夹中的所有文件
        """
    )

总的来说,Transformers和Autogen的结合为数据分析师和开发人员提供了强大的工具包。Transformers在结构化数据分析方面表现出色,如表格问答所示,而Autogen简化了用户和助手之间的交互,提高了诸如文件管理之类任务的效率。随着这些库的不断发展,它们在推动自然语言处理和人工智能驱动应用的发展方面发挥了重要作用。

Transformers库的任务支持到图像识别的全方位探索

探讨Transformers库的任务支持以及如何利用其中的模型进行零样本目标检测,以实现图像识别的功能。

  1. 支持的任务: 代码的开头展示了Transformers库支持的多个任务,通过SUPPORTED_TASKS字典提供了详细的任务列表。这些任务包括文本分类、命名实体识别、问答等多种自然语言处理任务。通过Transformers库,研究者和开发者可以方便地访问这些任务,并利用库中的模型进行相应的处理。

    python 复制代码
    from transformers.pipelines import SUPPORTED_TASKS
    
    for k, v in SUPPORTED_TASKS.items():
        print(k)
  2. 零样本目标检测: 代码的后半部分展示了如何使用Transformers库中的模型进行零样本目标检测。选择了图片识别模型google/owlvit-base-patch32,通过构建zero-shot-object-detection任务的pipeline,实现了对图像中目标的检测。

    python 复制代码
    from transformers import pipeline
    from PIL import Image, ImageDraw
    import requests
    
    checkpoint = "google/owlvit-base-patch32"
    detector = pipeline('zero-shot-object-detection', model=checkpoint)
    
    url = "https://unsplash.com/photos/oj0zeY2Ltk4/download?ixid=MnwxMjA3fDB8MXxzZWFyY2h8MTR8fHBpY25pY3xlbnwwfHx8fDE2Nzc0OTE1NDk&force=true&w=640"
    img = Image.open(requests.get(url, stream=True).raw)
    
    predictions = detector(
        img,
        candidate_labels=["hat", "sunglasses", "book"]
    )
  3. 结果可视化: 最后,通过使用PIL库的ImageDraw模块,对目标检测的结果进行可视化。将检测到的目标用红色方框标注在原图上,并显示出标签和置信度。

    python 复制代码
    from PIL import ImageDraw
    
    draw = ImageDraw.Draw(img)
    
    for prediction in predictions:
        box = prediction["box"]
        label = prediction["label"]
        score = prediction["score"]
        xmin, ymin, xmax, ymax = box.values()
        draw.rectangle((xmin, ymin, xmax, ymax), outline="red", width=1)
        draw.text((xmin, ymin), f"{label}: {round(score, 2)}", fill="red")
    
    img.show()

结论: Transformers库不仅支持多种自然语言处理任务,还提供了强大的图像识别模型。通过使用Transformers的零样本目标检测功能,我们可以轻松地实现对图像中目标的检测和识别。这一全方位的功能使得Transformers库在各种应用场景中都能发挥重要作用,推动了自然语言处理和图像识别领域的不断创新。

以上哈士奇为大家介绍了多种不同的transformers库的用法,以及其中不同模型的使用方法,如果大家感兴趣的话可以和哈士奇一起探讨transformers。

相关推荐
Aileen_0v02 小时前
【玩转OCR | 腾讯云智能结构化OCR在图像增强与发票识别中的应用实践】
android·java·人工智能·云计算·ocr·腾讯云·玩转腾讯云ocr
阿正的梦工坊3 小时前
深入理解 PyTorch 的 view() 函数:以多头注意力机制(Multi-Head Attention)为例 (中英双语)
人工智能·pytorch·python
Ainnle3 小时前
GPT-O3:简单介绍
人工智能
OceanBase数据库官方博客3 小时前
向量检索+大语言模型,免费搭建基于专属知识库的 RAG 智能助手
人工智能·oceanbase·分布式数据库·向量数据库·rag
测试者家园3 小时前
ChatGPT助力数据可视化与数据分析效率的提升(一)
软件测试·人工智能·信息可视化·chatgpt·数据挖掘·数据分析·用chatgpt做软件测试
海绵波波1074 小时前
flask后端开发(10):问答平台项目结构搭建
后端·python·flask
Loving_enjoy5 小时前
ChatGPT详解
人工智能·自然语言处理
人类群星闪耀时5 小时前
深度学习在灾难恢复中的作用:智能运维的新时代
运维·人工智能·深度学习
网络风云5 小时前
【魅力golang】之-反射
开发语言·后端·golang