赞
踩
目录
AGI 之 【Hugging Face】 的[ 简单介绍 ] [ 基础环境搭建 ] 的简单整理
AGI,即通用人工智能(Artificial General Intelligence),是一种具备人类智能水平的人工智能系统。它不仅能够执行特定的任务,而且能够理解、学习和应用知识于广泛的问题解决中,具有较高的自主性和适应性。AGI的能力包括但不限于自我学习、自我改进、自我调整,并能在没有人为干预的情况下解决各种复杂问题。
AGI能做的事情非常广泛:
- 跨领域任务执行:AGI能够处理多领域的任务,不受限于特定应用场景。
- 自主学习与适应:AGI能够从经验中学习,并适应新环境和新情境。
- 创造性思考:AGI能够进行创新思维,提出新的解决方案。
- 社会交互:AGI能够与人类进行复杂的社会交互,理解情感和社会信号。
关于AGI的未来发展前景,它被认为是人工智能研究的最终目标之一,具有巨大的变革潜力:
- 技术创新:随着机器学习、神经网络等技术的进步,AGI的实现可能会越来越接近。
- 跨学科整合:实现AGI需要整合计算机科学、神经科学、心理学等多个学科的知识。
- 伦理和社会考量:AGI的发展需要考虑隐私、安全和就业等伦理和社会问题。
- 增强学习和自适应能力:未来的AGI系统可能利用先进的算法,从环境中学习并优化行为。
- 多模态交互:AGI将具备多种感知和交互方式,与人类和其他系统交互。
Hugging Face作为当前全球最受欢迎的开源机器学习社区和平台之一,在AGI时代扮演着重要角色。它提供了丰富的预训练模型和数据集资源,推动了机器学习领域的发展。Hugging Face的特点在于易用性和开放性,通过其Transformers库,为用户提供了方便的模型处理文本的方式。随着AI技术的发展,Hugging Face社区将继续发挥重要作用,推动AI技术的发展和应用,尤其是在多模态AI技术发展方面,Hugging Face社区将扩展其模型和数据集的多样性,包括图像、音频和视频等多模态数据。
在AGI时代,Hugging Face可能会通过以下方式发挥作用:
- 模型共享:作为模型共享的平台,Hugging Face将继续促进先进的AGI模型的共享和协作。
- 开源生态:Hugging Face的开源生态将有助于加速AGI技术的发展和创新。
- 工具和服务:提供丰富的工具和服务,支持开发者和研究者在AGI领域的研究和应用。
- 伦理和社会责任:Hugging Face注重AI伦理,将推动负责任的AGI模型开发和应用,确保技术进步同时符合伦理标准
AGI作为未来人工智能的高级形态,具有广泛的应用前景,而Hugging Face作为开源社区,将在推动AGI的发展和应用中扮演关键角色。
Hugging Face 官网:https://huggingface.co/
Hugging Face 是一个专注于自然语言处理(NLP)领域的开源人工智能社区和平台。它提供了一系列的工具和库,使得研究人员、开发者和数据科学家能够更容易地构建、训练和部署机器学习模型,特别是在处理文本数据时。Hugging Face 最著名的产品是 Transformers 库,这是一个包含了大量预训练模型(如BERT、GPT-2等)的集合,支持多种NLP任务,如文本分类、问答、机器翻译等 。
Hugging Face 的名字来源于其创始人对于构建一个有趣、友好且能够与人类进行自然对话的人工智能聊天机器人的愿景。他们希望创建的AI能够像朋友一样与人们拥抱(hug),提供温暖和亲切的交流体验,这正是“Hugging Face”这个名称所要传达的含义。
Hugging Face 的发展:
- Hugging Face 成立于2016年,迅速发展成为一个活跃的开源社区,专注于分享和改进机器学习模型
- 它以开源精神为核心,由创始人Clem Delangue在大学时期就开始构建,最初目标是创建一个开放领域的、会话式的AI聊天机器人
- 通过发布自定义版本的BERT模型,Hugging Face 转型为一个开源社区,其模型在 GitHub 上获得了极大的关注和使用
- Hugging Face 不断扩大其影响力,与谷歌云等大型企业建立战略合作伙伴关系,并在多个领域获得认可和奖项
Hugging Face 的优势:
- 开源精神:Hugging Face 鼓励开放科学和开源,促进了社区的参与和创新
- 丰富的资源:提供了大量的预训练模型和数据集,覆盖了多种NLP任务
- 易用性:通过提供简单易用的API和工具,Hugging Face 使得研究人员和开发人员能够快速集成和使用其资源
- 社区支持:拥有一个活跃的社区,用户可以共享知识、讨论问题并共同推动技术发展
- 技术创新:Hugging Face 通过不断的技术创新,如Transformers库,加速了NLP任务的研究和开发
Hugging Face 能做什么:
- 提供预训练模型:如BERT、GPT系列和Transformer系列等,支持多种NLP任务
- 数据集共享:提供大量真实世界的数据集,涵盖文本分类、命名实体识别、问答系统等多个领域
- 工具和框架:如Transformers库和Datasets库,支持用户构建和训练自己的NLP应用程序
- 模型训练和部署:通过Hugging Face Accelerate项目支持多GPU/TPU训练,以及模型的微调和部署
- 跨模态应用:除了NLP,Hugging Face 还支持计算机视觉、音频处理等多模态任务
- 推理服务:提供推理端点,简化模型部署过程,使得用户可以轻松地将模型集成到应用中
系统环境:Windows 10 ,Python, Pycharm
1、Python 安装包下载
下载地址 :Download Python | Python.org,选择单击你需要的版本下载安装即可
2、这里以 下载 Python 3.10.9 为例
1)单击 Download ,跳转下载界面,
2)下拉页面选择对应安装包,点击下载
具体如下图
3、安装 Python 3.10.9
1)双击 安装包,打开安装界面,根据需要选择自定义安装,还是立即安装
2)这里选择自定义安装,选择自己需要安装的路径,避免占用 C 盘过多的空间,建议勾选
Add python.exe to PATH ,添加到环境中,方便以后再 cmd 中直接执行 python
3)依次如图操作,最后安装即可
4、检验 python 是否安装成功,win + R 快捷打开 运行,输入 cmd ,打开 cmd
1)由于之前安装 python 的时候把 python.exe 添加到环境变量中
2)所以,输入 python ,即可看到 python 相关信息,并进入 python 状态
3)可以在次状态编写 ptyhon 代码
4)输入 quit() ,退出当前环境
5、创建一个虚拟环境
命令:virtualenv HuggingFaceTransformerProject
可以先切换到自己需要创建文件夹路径,创建管理自己的虚拟环境
(这里没有使用Anacoda ,大家一个可以使用它管理虚拟环境)
6、对应路径下就会出现你创建的虚拟环境文件夹相关
7、可以使用 workon 环境名 激活虚拟环境
命令:workon HuggingFaceTransformerProject
8、输入 deactivate 退出虚拟环境
命令:deactivate
1)在百度上搜索 Pycharm download
2)或者下面的 下载地址进行下载 :下载 PyCharm:JetBrains 出品的用于数据科学和 Web 开发的 Python IDE
3)根据自己的需要选择版本(专业版、社区版),基础的学习开发社区版本就好
1)双击安装包 .exe ,如果你有老版本,根据需要是否卸载
2)由于 Pycharm 安装较大,建议安装到 C 盘之外的大盘中
3)安装中,根据需要,添加桌面启动图标,其他设置根据需要选取即可
4)接着进行安装,等待安装完成即可
1)点击图片打开 Pycharm
2)第一次会提示要求配置,如果有配置可以导入进来,如果没有,可以不导入,如下图
3)查阅条款,勾选接手即可,如下图
4)根据需要选择是否收集信息发送 Pycharm 开发团队,如下图
5)选择 Pycharm 界面风格,如下图
6)新建一个 pyhon 工程
7)选择工程保存的位置,建议不放在 C 盘,并选择Previously configured interpreter(而不是每次新建工程都建立一个虚拟环境,可能较占空间),如下图
8)Interpreter 为 Python 安装的位置的 python.exe,根据自己的安装的位置,添加即可,如下图
1)选择新建的工程名,右键新建一个 Python File,如下图
2)然后编写一个,hello world 打印代码,在编辑栏空白处,右键 "Run XXX" 即可,如下图
3)运行后,即可看到运行结果,如下图
1、打开 Pycharm ,创建一个工程
2、选择之前创建的虚拟环境,进行工程创建
3、之后可以创建工程了
4、 工程中,进入终端,就会自动激活之前创建的环境
5、终端安装 一些必要的库,例如 transformers 、torch
6、创建脚本,测试 pipeline 文本翻译功能,但是这里可能需要梯子网络
(不能梯子的,可以参考后面本地的)
- # 导入transformers库中的pipeline函数
- from transformers import pipeline
-
- # 定义一个函数func1,它将使用pipeline来执行翻译任务
- def func1():
- # 使用pipeline函数创建一个翻译管道(translator)
- # "translation_en_to_fr"指定了翻译任务是从英文翻译到法语
- # model="google/t5-base"指定了使用的预训练模型是Google的T5-base模型
- translator = pipeline("translation_en_to_fr", model="google/t5-base")
-
- # 使用translator管道翻译示例句子"How old are you?",并打印翻译结果
- print(translator("How old are you?"))
-
- # 调用func1函数执行翻译任务
- func1()
7、如果没有梯子网络,可以把相关模型资源下载到本地,进行加载,这里我们使用Helsinki-NLP/opus-mt-en-zh 的英文翻译为中文
https://huggingface.co/Helsinki-NLP/opus-mt-en-zh/tree/mainHelsinki-NLP/opus-mt-en-zh模型:https://huggingface.co/Helsinki-NLP/opus-mt-en-zh/tree/main
8、若不清楚下载哪些文件,可以都下载
这里我们下载,并添加到工程中 Huggingface\Models\Helsinki-NLP\opus-mt-en-zh 目录下:
config.json
:模型的配置文件,包含模型的参数和设置。pytorch_model.bin
:模型的权重文件,包含训练过程中学习到的参数。source.spm
和target.spm
(如果存在):SentencePiece分词器模型文件,用于文本的编码和解码。但在上述代码中,我们使用的是MarianTokenizer
,它应该会自动处理这些文件。tokenizer_config.json
- 分词器的配置文件,包含分词器的设置和参数。
vocab.json
- 分词器的词汇表文件,包含了模型理解和生成文本时使用的所有词汇和标记。
9、添加代码,进行加载本地模型,进行英文翻译为中文的功能实现,代码如下
- # 导入所需的transformers库中的MarianMTModel和MarianTokenizer类
- from transformers import MarianMTModel, MarianTokenizer
-
- # 指定模型的本地路径
- # 请确保此路径下包含了模型所需的所有文件,如config.json和pytorch_model.bin等
- model_name = 'Models/Helsinki-NLP/opus-mt-en-zh'
-
- # 从本地路径加载MarianTokenizer分词器
- tokenizer = MarianTokenizer.from_pretrained(model_name)
-
- # 从本地路径加载MarianMTModel模型
- model = MarianMTModel.from_pretrained(model_name)
-
- # 设置待翻译的英文文本
- input_text = "How old are you?"
-
- # 使用分词器编码输入文本,准备模型输入
- # return_tensors="pt"指示分词器返回PyTorch张量
- # padding=True表示对序列进行填充以匹配批次中的最大长度
- # truncation=True表示对序列进行截断以避免超过模型的最大输入长度
- inputs = tokenizer(input_text, return_tensors="pt", padding=True, truncation=True)
-
- # 使用模型生成翻译
- # input_ids和attention_mask作为模型的输入
- # num_beams=4表示使用4束束搜索来提高翻译的多样性和准确性
- # max_length=128限制了翻译输出的最大长度
- translated_ids = model.generate(
- input_ids=inputs["input_ids"],
- attention_mask=inputs["attention_mask"],
- num_beams=4,
- max_length=128
- )
-
- # 使用分词器解码模型生成的ID序列回文本字符串
- # skip_special_tokens=True表示跳过解码过程中遇到的特殊的控制标记
- translated_text = tokenizer.decode(translated_ids[0], skip_special_tokens=True)
-
- # 打印原始文本和翻译后的文本
- print("Input:", input_text)
- print("Translated:", translated_text)
10、可能现在还需要安装 tokenizers、和 sentencepiece 库
目前库的版本如下:
transformers 4.24.0
torch 2.2.1
tokenizers 0.13.3
sentencepiece 0.2.0
11、目前工程结构如下:
12、运行脚本
13、 结果输出
opus-mt-en-zh
- 这似乎是一个文件夹或模型的名称,代表一个英文到中文的机器翻译模型。
README.md
- 一个Markdown格式的文档,通常包含关于模型的基本信息、如何使用它以及可能的其他说明。
config.json
- 包含模型的配置信息,如层的数量、类型等,这是初始化模型时必需的。
flax_model.msgpack
- 一个可能包含Flax框架模型权重的文件。Flax是一个由Google研究人员开发的机器学习库,与PyTorch和TensorFlow兼容。
generation_config.json
- 可能包含模型生成文本时使用的配置,例如设置renormalize_logits=True
以改善性能。
metadata.json
- 包含模型的元数据,比如模型的名称、版本、作者信息等。
pytorch_model.bin
- 这是模型的主要权重文件,用于PyTorch框架。它是模型训练后学习到的知识的存储形式。
rust_model.ot
- 一个可能包含Rust语言模型实现的文件。这表明模型可能也可以在Rust环境中使用。
source.spm
和 target.spm
- 这两个文件是SentencePiece模型文件,用于文本的分词(tokenization)。source.spm
用于源语言(英文)的分词,而target.spm
用于目标语言(中文)的分词。
tf_model.h5
- 包含TensorFlow模型权重的文件。.h5
是HDF5格式的文件,常用于存储TensorFlow模型。
tokenizer_config.json
- 分词器的配置文件,包含分词器的设置和参数。
vocab.json
- 分词器的词汇表文件,包含了模型理解和生成文本时使用的所有词汇和标记。
图中还提到了一些提交信息,如joaogante HF STAFF
、set 'renormalize_logits=True' for better performance
等,这些信息表明了代码仓库的更新历史和一些性能改进的提交。
要本地运行这个模型,主要需要config.json
、pytorch_model.bin
(或其他框架对应的权重文件)、以及分词器相关的source.spm
、target.spm
、tokenizer_config.json
和vocab.json
文件。其他文件可能是模型在不同框架或环境中的实现。
transformers 4.24.0
torch 2.2.1
tokenizers 0.13.3
sentencepiece 0.2.0
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。