国产chatgpt:基于chatGLM微调nlp分类任务

文章目录

  • 一、源码网址
    • 1. 硬件设施:
    • 2. INT4 量化示例
  • 二、重要的开源社区
    • 功能:
    • 网址:
    • 使用方法:
    • 利用方法:
    • 对 NLP 工作者的作用:
    • 对大模型工程师的用处:
  • 三、重要的开源库
  • 四、提示词工程
  • 五、进行分类任务微调
    • 1. 数据示例
    • 2. prompt工程设计
    • 3. 完整代码

一、源码网址

ChatGLM2-6B

1. 硬件设施:

在这里插入图片描述

2. INT4 量化示例

tokenizer = AutoTokenizer.from_pretrained("THUDM/chatglm-6b", trust_remote_code=True)
model = AutoModel.from_pretrained("THUDM/chatglm-6b", trust_remote_code=True).half().quantize(4).cuda()
model = model.eval()
response, history = model.chat(tokenizer, "你好", history=[])
print(response)

二、重要的开源社区

关于 Hugging Face 社区

功能:

Hugging Face 社区主要提供了以下功能和资源:

预训练模型:社区提供了大量高质量的预训练模型,用户可以基于这些模型进行微调或者在其上进行迁移学习。
数据集:社区提供了多个数据集,覆盖了各种自然语言处理任务,包括文本分类、命名实体识别、语义理解等。
代码库:社区提供了多个开源的代码库,方便用户快速实现各种自然语言处理任务。
论坛:社区拥有一个活跃的论坛,研究者和开发者可以在这里分享经验、提出问题、求助答案等。

网址:

Hugging Face 社区的网址为:https://huggingface.co/,您可以在该网站上找到社区提供的全部资源。

使用方法:

使用 Hugging Face 社区的方法如下:

注册账号:在 Hugging Face 社区上注册一个账号,即可开始使用社区提供的各种资源。
下载模型:从社区提供的模型库中下载需要的预训练模型。
微调模型:基于已有的预训练模型,在自己的数据集上进行微调,得到适用于自己应用场景的模型。
使用代码库:从社区提供的代码库中找到适用于自己应用场景的代码,快速实现自然语言处理任务。

利用方法:

利用 Hugging Face 社区可以帮助您:

提高工作效率:社区提供了大量高质量的预训练模型、数据集和代码库,可以帮助您快速搭建自然语言处理应用程序。
降低开发成本:直接使用已有的预训练模型和数据集,不需要从头开始构建自然语言处理应用程序,可以大大降低开发成本。
提高准确性:使用社区提供的预训练模型可以显著提高自然语言处理的准确性。

对 NLP 工作者的作用:

Hugging Face 社区对 NLP 工作者的作用是:

提供了大量的预训练模型和数据集,方便研究者和开发者进行实验和研究。
可以与其他 NLP 工作者交流经验、分享最新技术和趋势,共同推动领域的发展。

对大模型工程师的用处:

Hugging Face 社区对大模型工程师的用处在于:

提供了大量高质量的预训练模型,可以直接使用已有的模型进行微调或者迁移学习。
提供了代码库和论坛,在开发大模型时可以方便地获取支持和帮助。

三、重要的开源库

Transformers是一个Python库,它提供了各种自然语言处理(NLP)任务的预训练模型和工具。该库使用深度学习算法,并旨在使研究人员和开发人员能够轻松地开发和部署自然语言处理系统。

Transformers的主要作用是提供针对不同NLP任务的预训练模型,例如文本分类命名实体识别情感分析机器翻译等。这些模型可以直接在用户的应用程序中使用,也可以通过微调进行定制和优化以适应特定的任务。

该库包含许多参数,其具体含义取决于正在使用的模型和任务。一些通用的参数包括:

batch_size:每个训练批次中的样本数量。
max_seq_length:输入序列的最大长度。
num_train_epochs:训练迭代的次数。
learning_rate:模型权重更新的速率。

举例来说,如果您使用BertForSequenceClassification模型进行文本分类任务,则可能需要设置以下参数值:

batch_size:32
max_seq_length:128
num_train_epochs:3
learning_rate:2e-5

使用Transformers时,用户可以根据需要选择适当的模型和参数,并按照提供的示例代码进行操作。例如,下面是一个简单的示例,演示如何使用BertForSequenceClassification模型对情感分析任务进行微调:

from transformers import BertTokenizer, BertForSequenceClassificationtokenizer = BertTokenizer.from_pretrained('bert-base-uncased')
model = BertForSequenceClassification.from_pretrained('bert-base-uncased')# Load and tokenize the data
texts = ['I love this movie!', 'This movie is terrible.']
labels = [1, 0]
inputs = tokenizer(texts, padding=True, truncation=True, return_tensors='pt')# Fine-tune the model
outputs = model(**inputs, labels=labels)
loss = outputs.loss

该代码加载了一个预训练的BertForSequenceClassification模型和一个预处理器(tokenizer),然后使用文本和标签来训练该模型。在微调之后,模型可以用于对新文本进行情感分析。

四、提示词工程

提示词工程(Prompt Engineering)是一种新兴的自然语言处理技术,它旨在通过为预训练语言模型提供特定的文本提示或“提示词”,来改进模型的性能和适应性。这些提示词可以是人为指定的关键词、短语、句子或段落,也可以根据特定任务的要求自动生成。

提示词工程的重要性在于,即使在具有数十亿个参数的大型语言模型中,仍可能存在一些问题,例如出现偏差或过度拟合等。在这种情况下,使用提示词可以帮助模型更好地理解和推断特定语境下的文本,从而提高其性能和准确性。

此外,在当下大模型时代,提示词工程作用尤为突出。随着深度学习算法和计算能力的不断发展,越来越多的领域开始使用大型预训练语言模型,例如BERT、GPT-2和RoBERTa等。然而,这些模型可能无法完全适应某些具体任务的需求,因此需要使用提示词来进行微调优化。

提示词工程还可以帮助加快自然语言处理应用程序的开发速度。通过使用预先定义好的提示词和相应的模型,可以缩短从想法到生产的时间,同时减少开发和调试过程中的错误和不确定性。

五、进行分类任务微调

1. 数据示例

class_examples = {'人物': '秦始皇(259BC – 210BC),又称嬴政,是中国历史上著名的政治家和军事家。他是秦国的君主,统一了六国之后建立了中国的第一个中央集权制度的封建王朝——秦朝。','书籍': '论语》是中国古代文化经典之一,由春秋时期的著名思想家孔子及其弟子们的言行录成。全书共20篇,收录孔子及其弟子的言论和事迹,它主要关注人的品德、修养和社会伦理。','电影': '《忠犬八公》是一部由拉斯·哈尔斯特朗执导,理查·基尔、琼·艾伦等主演的电影,于2009年上映。该电影改编自真实故事','都市': '郑州是中国河南省的省会城市,位于中部地区。它是中国的重要交通枢纽和工商业中心,也是中原地区的政治、经济、文化和教育中心之一。郑州有着悠久的历史,是中国的八大古都之一。','国家': '中国是位于亚洲东部的一个大国,拥有悠久的历史文化和丰富的自然资源。中国的首都是北京,人口超过14亿人,是世界上最大的国家之一。中国的经济实力也非常强大,在全球范围内拥有很高的影响力。中文是中国的官方语言,中国也拥有丰富多彩的饮食、艺术、体育和娱乐活动等文化特色。'}

2. prompt工程设计

对于大模型来讲,prompt 的设计是重要一步
在该任务的 prompt 简单进行示例:

  1. 告诉模型解释什么叫作‘’文本分类任务‘’
  2. 指定模型按照我们想要格式输出

后面咱们专门搞篇文章说prompt

3. 完整代码


from rich import print
from rich.console import Console
from transformers import AutoTokenizer, AutoModel# 提供所有类别以及每个类别下的样例class_examples = {'人物': '秦始皇(259BC – 210BC),又称嬴政,是中国历史上著名的政治家和军事家。他是秦国的君主,统一了六国之后建立了中国的第一个中央集权制度的封建王朝——秦朝。','书籍': '论语》是中国古代文化经典之一,由春秋时期的著名思想家孔子及其弟子们的言行录成。全书共20篇,收录孔子及其弟子的言论和事迹,它主要关注人的品德、修养和社会伦理。','电影': '《忠犬八公》是一部由拉斯·哈尔斯特朗执导,理查·基尔、琼·艾伦等主演的电影,于2009年上映。该电影改编自真实故事','都市': '郑州是中国河南省的省会城市,位于中部地区。它是中国的重要交通枢纽和工商业中心,也是中原地区的政治、经济、文化和教育中心之一。郑州有着悠久的历史,是中国的八大古都之一。','国家': '中国是位于亚洲东部的一个大国,拥有悠久的历史文化和丰富的自然资源。中国的首都是北京,人口超过14亿人,是世界上最大的国家之一。中国的经济实力也非常强大,在全球范围内拥有很高的影响力。中文是中国的官方语言,中国也拥有丰富多彩的饮食、艺术、体育和娱乐活动等文化特色。'}def init_prompts():"""初始化前置prompt,便于模型做 incontext learning。"""class_list = list(class_examples.keys())pre_history = [(f'现在你是一个文本分类器,你需要按照要求将我给你的句子分类到:{class_list}类别中。',f'好的。')]for _type, exmpale in class_examples.items():pre_history.append((f'“{exmpale}”是 {class_list} 里的什么类别?', _type))return {'class_list': class_list, 'pre_history': pre_history}def inference(sentences: list,custom_settings: dict):"""推理函数。Args:sentences (List[str]): 待推理的句子。custom_settings (dict): 初始设定,包含人为给定的 few-shot example。"""for sentence in sentences:with console.status("[bold bright_green] Model Inference..."):sentence_with_prompt = f"“{sentence}”是 {custom_settings['class_list']} 里的什么类别?"response, history = model.chat(tokenizer, sentence_with_prompt, history=custom_settings['pre_history'])print(f'>>> [bold bright_red]sentence: {sentence}')print(f'>>> [bold bright_green]inference answer: {response}')# print(history)if __name__ == '__main__':console = Console()device = 'cuda:0'tokenizer = AutoTokenizer.from_pretrained("THUDM/chatglm-6b", trust_remote_code=True)model = AutoModel.from_pretrained("THUDM/chatglm-6b", trust_remote_code=True).half()model.to(device)sentences = ["日本是一个位于亚洲东部的岛国,由4个主要岛屿和数百个小岛组成。它与韩国、中国、俄罗斯等国接壤或隔海相望。日本是一个高度现代化和发达的经济体,其科技产业和文化艺术在世界范围内具有重要影响力。该国拥有丰富的文化遗产,如传统建筑、传统艺术、武士文化等等。此外,日本还以其美食文化、时尚产业、动漫游戏等受到了全球年轻人的喜爱。","《亮剑》是一部中国电视剧,于2005年首播。该剧以解放战争时期的中国为背景,讲述了一群革命军人在战火纷飞的年代里,奋勇杀敌、坚守阵地、保卫家园的故事。该剧具有广泛的社会影响力和高度的观赏性,其高超的制作水平、优秀的演员阵容、感人至深的情节和深刻的思想内涵都受到了观众的普遍认可和喜爱。",]custom_settings = init_prompts()inference(sentences,custom_settings)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/2300.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

千万不要把ChatGPT引入浏览器回答问题

试用的时候有多爽,最后你删对话的时候就有多狼狈

ChatGPT重磅升级,可以联网、添加插件!最后的封印解除了!

这下没什么能阻止 ChatGPT 了? ChatGPT 是个「智商超高」的人工智能,经过 GPT-4 内核的升级版更是如此。然而我们知道,它的训练数据截止到 2021 年,没有训练过的东西,AI 是不可能准确回答出来的。 自去年 11 月上线以来…

如何用edge浏览器调用chatgpt的api接口?

目录 (1)首先在apifox或postman编写接口 url:https://api.openai.com/v1/completions 参数说明:prompt是问题的文本,max_tokens是最大token数,目前最大为4097(包括标题)&#xff…

假冒的ChatGPT浏览器扩展被发现劫持Facebook账户

谷歌已介入从官方网上商店中删除伪装成 OpenAI 的 ChatGPT 服务的虚假 Chrome 浏览器扩展程序,以获取 Facebook 会话 cookie 并劫持帐户。 “ChatGPT For Google”扩展程序是合法开源浏览器插件的木马化版本,自 2023 年 3 月 14 日被删除以来吸引了超过…

merlin—chatgpt浏览器插件

下载 视频一键总结 CtrlQ 打开智能问答

推荐一款国人开发的ChatGPT浏览器插件

一、糟糕的搜索引擎体验 在使用主流的搜索引擎(百度、谷歌、必应)搜索一个java问题的时候,经常搜索出来的答案很不理想。 有时候答案基本会有很多重复,不知道谁是原创,谁是抄袭的; 有时候回答地过于简单&…

效率神器!神级ChatGPT浏览器插件分享

大家好,我是卷了又没卷,薛定谔的卷的AI算法工程师「陈城南」~ 担任某大厂的算法工程师,带来最新的前沿AI知识和工具,欢迎大家交流~,后续我还会分享更多 AI 有趣工具和实用玩法,包括AI相关技术、ChatGPT、AI…

ChatGPT强到离谱,这么十一款ChatGPT浏览器插件你值得拥有

🔗 运行环境:ChatGPT 🚩 撰写作者:左手の明天 🥇 精选专栏:《python》 🔥 推荐专栏:《算法研究》 #### 防伪水印——左手の明天 #### 💗 大家好🤗&#x1f9…

推荐几个chatgpt相关的浏览器插件

插件一、WebChatGPT:可访问互联网的 ChatGPT 插件地址:https://chrome.google.com/webstore/detail/webchatgpt-chatgpt-with-i/lpfemeioodjbpieminkklglpmhlngfcn?utm_sourcechrome-ntp-icon 作用: 在chatgpt的官网页面使用时,可…

推荐5个非常强大的ChatGPT浏览器插件|你的生产力提高工具

近期,ChatGPT变得越来越热门,为此,许多浏览器插件也随之问世。这些基于ChatGPT的浏览器插件大大提高了ChatGPT的能力,使得我们能够更高效地在平时的上网、工作和学习中获得帮助,从而节省了大量时间。 今天我来给大家介…

ChatGPT技术解构

ChatGPT的训练主要分为三个步骤,如图所示: Step1: 使用有监督学习方式,基于GPT3.5微调训练一个初始模型;训练数据约为2w~3w量级(根据InstructGPT的训练数据量级估算,参照https://arxiv.org/pdf…

国内“谁”能实现chatgpt,短期穷出的类ChatGPT简评(算法侧角度为主),以及对MOSS、ChatYuan给出简评,一文带你深入了解宏观技术路线。

1.ChatGPT简介【核心技术、技术局限】 ChatGPT(全名:Chat Generative Pre-trained Transformer),美国OpenAI 研发的聊天机器人程序 ,于2022年11月30日发布 。ChatGPT是人工智能技术驱动的自然语言处理工具&#xff0c…

【ChatGPT】技术原理:ChatGPT怎么工作?

目录 简介:ChatGPT的工作原理概述 Transformer 架构原理

让 ChatGPT 成为算法工程师的数据助理

让 ChatGPT 成为算法工程师的数据助理 最近被 OpenAI 的 ChatGPT 刷屏了。我猜你已经读了很多关于 ChatGPT 的文章,不需要再介绍了。假如碰巧您还不太了解 ChatGPT 是什么,可以先看一下这篇文章,然后再回来继续。 与 ChatGPT 对话很有趣&am…

ChatGPT生成式算法及发展历程

引言 GPT(Generative Pre-Trained Transformer)系列是OpenAI开发的一系列以Transformer[2]为基础的生成式预训练模型,这个系列目前包括文本预训练模型GPT-1[3],GPT-2[4],GPT-3[5],InstructGPT[7]、ChatGPT…

ChatGPT背后算法—RLHF都有哪些必读论文

点击蓝字 关注我们 AI TIME欢迎每一位AI爱好者的加入! ChatGPT有多火? 用一个通俗易懂的话来表达,ChatGPT就是爱豆中的鹿晗、蔡徐坤、杨超越;脱口秀界的李诞、徐志胜;足球界的梅西、C罗、姆巴佩... 前段时间&#xff0…

ChatGPT第二弹:PPO算法

作者:陈一帆 出处:哈工大SCIR 进NLP群—>加入NLP交流群 1. ChatGPT与PPO算法 在上篇文章中我们提到,ChatGPT的训练过程主要分为三步:微调GPT-3模型、人工对微调后模型的生成结果打分以训练得到一个奖励模型、 基于微调后的GPT-…

【自然语言处理】ChatGPT 相关核心算法

ChatGPT 相关核心算法 ChatGPT 的卓越表现得益于其背后多项核心算法的支持和配合。本文将分别介绍作为其实现基础的 Transformer 模型、激发出其所蕴含知识的 Prompt / Instruction Tuning 算法、其涌现出的 思维链能力、以及确保其与人类意图对齐的 基于人类反馈的强化学习算法…

ChatGPT技术原理解析:从RL之PPO算法、RLHF到GPT4、instructGPT

写在最前面,为了彻底写清楚ChatGPT背后的所有关键细节,每个月不断深挖,从1月初写到6月底仍未完工,除了本文之外,过程中涉及到多篇文章(RL入门、论文解读、微调实战、代码实现、CV多模态),再加上之前写的Tra…

使用ChatGPT生成了十种排序算法

前言 当前ChatGPT非常火爆,对于程序员来说,ChatGPT可以帮助编写很多有用的代码。比如:在算法的实现上,就可以替我们省很多事。所以,小试牛刀一下,看看ChatGPT生成了排序算法怎么样? 简介 排序…