AGI 之 【Hugging Face】 的[ 简单介绍 ] [ 基础环境搭建 ] 的简单整理

AGI 之 【Hugging Face】 的[ 简单介绍 ] [ 基础环境搭建 ] 的简单整理

目录

AGI 之 【Hugging Face】 的[ 简单介绍 ] [ 基础环境搭建 ] 的简单整理

一、简单介绍

二、Hugging Face

三、环境搭建

python 环境的搭建

Pycharm 环境搭建

1、下载 Pycharm 安装包

2、安装 Pycharm

3、打开 Pycharm

4、Pycharm 的简单使用

Hugging face 基础环境搭建

附录

一、模型中的一些文件说明

二、本案例的环境中一些关键库的版本


一、简单介绍

AGI,即通用人工智能(Artificial General Intelligence),是一种具备人类智能水平的人工智能系统。它不仅能够执行特定的任务,而且能够理解、学习和应用知识于广泛的问题解决中,具有较高的自主性和适应性。AGI的能力包括但不限于自我学习、自我改进、自我调整,并能在没有人为干预的情况下解决各种复杂问题。

AGI能做的事情非常广泛:

  1. 跨领域任务执行:AGI能够处理多领域的任务,不受限于特定应用场景。
  2. 自主学习与适应:AGI能够从经验中学习,并适应新环境和新情境。
  3. 创造性思考:AGI能够进行创新思维,提出新的解决方案。
  4. 社会交互:AGI能够与人类进行复杂的社会交互,理解情感和社会信号。

关于AGI的未来发展前景,它被认为是人工智能研究的最终目标之一,具有巨大的变革潜力:

  1. 技术创新:随着机器学习、神经网络等技术的进步,AGI的实现可能会越来越接近。
  2. 跨学科整合:实现AGI需要整合计算机科学、神经科学、心理学等多个学科的知识。
  3. 伦理和社会考量:AGI的发展需要考虑隐私、安全和就业等伦理和社会问题。
  4. 增强学习和自适应能力:未来的AGI系统可能利用先进的算法,从环境中学习并优化行为。
  5. 多模态交互:AGI将具备多种感知和交互方式,与人类和其他系统交互。

Hugging Face作为当前全球最受欢迎的开源机器学习社区和平台之一,在AGI时代扮演着重要角色。它提供了丰富的预训练模型和数据集资源,推动了机器学习领域的发展。Hugging Face的特点在于易用性和开放性,通过其Transformers库,为用户提供了方便的模型处理文本的方式。随着AI技术的发展,Hugging Face社区将继续发挥重要作用,推动AI技术的发展和应用,尤其是在多模态AI技术发展方面,Hugging Face社区将扩展其模型和数据集的多样性,包括图像、音频和视频等多模态数据。

在AGI时代,Hugging Face可能会通过以下方式发挥作用:

  1. 模型共享:作为模型共享的平台,Hugging Face将继续促进先进的AGI模型的共享和协作。
  2. 开源生态:Hugging Face的开源生态将有助于加速AGI技术的发展和创新。
  3. 工具和服务:提供丰富的工具和服务,支持开发者和研究者在AGI领域的研究和应用。
  4. 伦理和社会责任:Hugging Face注重AI伦理,将推动负责任的AGI模型开发和应用,确保技术进步同时符合伦理标准

AGI作为未来人工智能的高级形态,具有广泛的应用前景,而Hugging Face作为开源社区,将在推动AGI的发展和应用中扮演关键角色。

二、Hugging Face

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

python 环境的搭建

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

Pycharm 环境搭建

1、下载 Pycharm 安装包

1)在百度上搜索 Pycharm download

2)或者下面的 下载地址进行下载 :下载 PyCharm:JetBrains 出品的用于数据科学和 Web 开发的 Python IDE

3)根据自己的需要选择版本(专业版、社区版),基础的学习开发社区版本就好

2、安装 Pycharm

1)双击安装包 .exe ,如果你有老版本,根据需要是否卸载

2)由于 Pycharm 安装较大,建议安装到 C 盘之外的大盘中

3)安装中,根据需要,添加桌面启动图标,其他设置根据需要选取即可

4)接着进行安装,等待安装完成即可

3、打开 Pycharm

1)点击图片打开 Pycharm

2)第一次会提示要求配置,如果有配置可以导入进来,如果没有,可以不导入,如下图

3)查阅条款,勾选接手即可,如下图

4)根据需要选择是否收集信息发送 Pycharm 开发团队,如下图

5)选择 Pycharm 界面风格,如下图

6)新建一个 pyhon 工程

7)选择工程保存的位置,建议不放在 C 盘,并选择Previously configured interpreter(而不是每次新建工程都建立一个虚拟环境,可能较占空间),如下图

8)Interpreter 为 Python 安装的位置的 python.exe,根据自己的安装的位置,添加即可,如下图

4、Pycharm 的简单使用

1)选择新建的工程名,右键新建一个 Python File,如下图

2)然后编写一个,hello world 打印代码,在编辑栏空白处,右键 "Run XXX" 即可,如下图

3)运行后,即可看到运行结果,如下图

Hugging face 基础环境搭建

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.spmtarget.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、 结果输出

附录

一、模型中的一些文件说明

  1. opus-mt-en-zh - 这似乎是一个文件夹或模型的名称,代表一个英文到中文的机器翻译模型。

  2. README.md - 一个Markdown格式的文档,通常包含关于模型的基本信息、如何使用它以及可能的其他说明。

  3. config.json - 包含模型的配置信息,如层的数量、类型等,这是初始化模型时必需的。

  4. flax_model.msgpack - 一个可能包含Flax框架模型权重的文件。Flax是一个由Google研究人员开发的机器学习库,与PyTorch和TensorFlow兼容。

  5. generation_config.json - 可能包含模型生成文本时使用的配置,例如设置renormalize_logits=True以改善性能。

  6. metadata.json - 包含模型的元数据,比如模型的名称、版本、作者信息等。

  7. pytorch_model.bin - 这是模型的主要权重文件,用于PyTorch框架。它是模型训练后学习到的知识的存储形式。

  8. rust_model.ot - 一个可能包含Rust语言模型实现的文件。这表明模型可能也可以在Rust环境中使用。

  9. source.spmtarget.spm - 这两个文件是SentencePiece模型文件,用于文本的分词(tokenization)。source.spm用于源语言(英文)的分词,而target.spm用于目标语言(中文)的分词。

  10. tf_model.h5 - 包含TensorFlow模型权重的文件。.h5是HDF5格式的文件,常用于存储TensorFlow模型。

  11. tokenizer_config.json - 分词器的配置文件,包含分词器的设置和参数。

  12. vocab.json - 分词器的词汇表文件,包含了模型理解和生成文本时使用的所有词汇和标记。

图中还提到了一些提交信息,如joaogante HF STAFFset 'renormalize_logits=True' for better performance等,这些信息表明了代码仓库的更新历史和一些性能改进的提交。

要本地运行这个模型,主要需要config.jsonpytorch_model.bin(或其他框架对应的权重文件)、以及分词器相关的source.spmtarget.spmtokenizer_config.jsonvocab.json文件。其他文件可能是模型在不同框架或环境中的实现。

二、本案例的环境中一些关键库的版本

transformers       4.24.0

torch              2.2.1

tokenizers         0.13.3

sentencepiece      0.2.0

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

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

相关文章

装机必备一WinRAR安装使用以及常见问题

WinRAR是一款功能强大的压缩包管理器,支持多种压缩格式,如RAR、ZIP等。作为一款经典且广泛使用的压缩软件,WinRAR不仅在文件压缩率和速度方面表现出色,还提供了备份数据、缩减电子邮件附件大小以及解压缩网络下载文件等功能。 为…

数据结构与算法:回溯算法约束条件:剪枝详解、示例(C#、C++)与回溯典型例题详解

文章目录 一、约束条件二、剪枝三、典型例题四、常用术语五、示例N 皇后问题 C# 示例N 皇后问题 C 示例 六、常见用用回溯算法解决的问题汇总组合问题:图论问题:棋盘游戏问题:优化问题:调度问题:其他问题: …

How to persist LangChain conversation memory (save and load)

题意:如何持久化 LangChain 对话记忆(保存和加载) 问题背景: Im creating a conversation like so: 我正在创建一个对话,如下所示: llm ChatOpenAI(temperature0, openai_api_keyOPENAI_API_KEY,…

【CTF】BUU BURP COURSE 11

打开靶机之后,显示只能在本地打开(一度以为靶机出问题)。 解题步骤: 1.分析请求包信息 2.构建本地请求IP X-Real-IP:记录真实客户端IP地址信息; X-Forward-for:记录了请求IP到目标ip所经历的…

新型基坑气膜:施工开挖的得力干将—轻空间

随着城市建设的加速推进,施工过程中的环境问题日益受到关注。新型基坑气膜以其卓越的防尘、降噪、节能和防火功能,成为施工开挖领域中的得力干将,极大地提升了绿色施工的水平。 基坑气膜的作用 基坑气膜在施工现场形成了一个完全封闭的作业空…

JavaWeb系列七: 动态WEB开发核心(Servlet) 下

韩老师学生 ServletConfigServletContext网站计数器 HttpServletRequest细节1细节2细节3 Dispathcer请求转发应用实例请求转发细节和注意事项习题 HttpServletResponse请求重定向请求重定向注意事项动态获取到application context练习题 ServletConfig ●ServletConfig基本介绍…

1.文件上传漏洞渗透及防御(OWASP实战训练)

1.文件上传漏洞渗透及防御(OWASP实战训练) OWASPupload上传漏洞实验一:低安全模式下,上传任意类型的文件,文件大小不受限制实验二,安全级别调整将其变为中等安全级别实验三:将其设为高安全级别 …

【教程】如何一步一步训练一个SOM神经网络-自组织竞争神经网络(Self-organizing Feature Map)

本文来自《老饼讲解-BP神经网络》https://www.bbbdata.com/ 目录 一、什么是SOM神经网络1.1.SOM神经网络有什么用1.2.SOM神经网络是如何聚类的 二、如何训练一个SOM神经网络2.1. 训练一个SOM神经网络的代码示例2.2. 如何查看SOM神经网络的聚类中心 SOM神经网络全称为自组织竞争…

Redis-主从复制-测试主从模式下的读写操作

文章目录 1、在主机6379写入数据2、在从机6380上写数据报错3、从机只能读数据,不能写数据 1、在主机6379写入数据 127.0.0.1:6379> keys * (empty array) 127.0.0.1:6379> set uname jim OK 127.0.0.1:6379> get uname "jim" 127.0.0.1:6379>…

rancher快照备份至S3

巧用rancher的S3快照备份功能,快速实现集群复制、集群转移、完全崩溃后的极限修复 1.进入集群管理,在对应的集群菜单后,点击编辑配置 2.选择ETCD,启用,Backup Snapshots to S3选项 并填入你的minio 3 配置成功后 手…

C# 信号量的使用

学习来源:《.net core 底层入门》 第六章第9节:信号量 案例:主线程负责添加数据,子线程负责获取数据 使用SemaphoreSlim(轻信号量)实现: using System; using System.Collections.Generic; us…

python中的<class ‘complex‘>

一般编程里面不怎么会讲&#xff0c;但是还是挺强大的一个类。 在 Python 中&#xff0c;<class complex> 表示复数类型。复数是一种包含实部和虚部的数学数&#xff0c;可以用 a bj 的形式表示&#xff0c;其中 a 表示实部&#xff0c;b 表示虚部&#xff0c;j 是虚数…

13 物理层介质及设备

物理层介质及设备 一、线缆的连接 &#xff08;一&#xff09;线序 ​ 线序&#xff1a; RJ-45连接头12345678568A绿白绿橙白蓝蓝白橙棕白棕568B橙白橙绿白蓝蓝白绿棕白棕 ​ 1、2发送&#xff0c;3、6接收 &#xff08;二&#xff09;线缆的应用 1.线缆的连接 ​ 标准…

Spring自定义标签体系和应用

我们知道&#xff0c;在使用Dubbo框架时&#xff0c;需要指定配置文件中的application、protocol、registry、provider、service等服务器端和客户端的配置项&#xff0c;典型的配置方法如下所示。通过这些配置项&#xff0c;我们可以基于Spring容器来启动Dubbo服务。 <!-- …

【2024.6.23】今日科技时事:科技前沿大事件

人不走空 &#x1f308;个人主页&#xff1a;人不走空 &#x1f496;系列专栏&#xff1a;算法专题 ⏰诗词歌赋&#xff1a;斯是陋室&#xff0c;惟吾德馨 目录 &#x1f308;个人主页&#xff1a;人不走空 &#x1f496;系列专栏&#xff1a;算法专题 ⏰诗词歌…

探索PHP中的函数

在PHP编程中&#xff0c;函数是一个非常重要的概念。函数可以帮助我们将代码组织成可重复使用的块&#xff0c;从而提高代码的可读性和可维护性。本文将介绍PHP中的函数&#xff0c;包括函数的定义、参数传递、返回值、内置函数和自定义函数等内容&#xff0c;帮助读者更好地理…

WPF 深入理解八、Binding 绑定

Binding 创建一个Demo 1 1.创建三个输入框&#xff0c;按钮 2.为按钮创建点击方法 3.点击按钮 三个输入框&#xff0c;分别更新了自己的内容。 上面的展示&#xff0c;是一个传统的模式&#xff0c;事件驱动程序&#xff0c;通过事件来变更UI控件元素的内容。 示例二 创建…

OS_虚拟机

2024.06.21&#xff1a;操作系统虚拟机学习笔记 第4节 虚拟机 4.1 虚拟机基本概念4.2 一型虚拟机管理程序4.3 二型虚拟机管理程序4.4 用户态与内核态 本节的主要内容就是来分辨两种不同的虚拟机管理程序 4.1 虚拟机基本概念 利用虚拟化技术&#xff0c;把一台物理机器虚拟成多…

2024年在WordPress中创建销售活动的入门级优惠券方法

2024年在WordPress中创建销售活动的入门级优惠券方法 今天我想和大家分享一些关于如何在WordPress网站上创建销售活动的经验。无论你是电商新手还是已经有一定经验的店主&#xff0c;优惠券都是吸引顾客、增加销量的有力工具。在这篇文章中&#xff0c;我将介绍三款适合初学者…

链轮简单认识一下

今天咱们聊的话题是——链轮&#xff0c;这个应用非常广泛的机械零件。 什么是链轮&#xff1f; 链轮是一种带有齿或尖刺的机械轮&#xff0c;用于与链条或皮带啮合&#xff0c;以促使“轮子”的旋转和运动。这种啮合可确保同步运动&#xff0c;使链轮和皮带能够高效地协同运行…