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.rhkb.cn/news/356397.html

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

相关文章

高阶图神经网络 (HOGNN) 的概念、分类和比较

图神经网络(GNNs)是一类强大的深度学习(DL)模型,用于对相互连接的图数据集进行分类和回归。它们已被用于研究人类互动、分析蛋白质结构、设计化合物、发现药物、识别入侵机器、模拟单词之间的关系、寻找有效的交通路线…

Aquila-Med LLM:开创性的全流程开源医疗语言模型

​论文链接:https://arxiv.org/pdf/2406.12182 开源链接:https://huggingface.co/BAAI/AquilaMed-RL http://open.flopsera.com/flopsera-open/details/AquilaMed_SFT http://open.flopsera.com/flopsera-open/details/AquilaMed_DPO 近年来&#xf…

微服务改造启动多个 SpringBoot 的陷阱与解决方案

在系统运行了一段时间后,业务量上升后,生产上发现java应用内存占用过高,服务器总共64G,发现每个SpringBoot占用近12G的内存,我们项目采用微服务架构,有多个springboot应用。 一下子内存就不够用了&#xf…

番外篇 | YOLOv8算法解析和实战应用:车辆检测 + 车辆追踪 + 行驶速度计算

前言:Hello大家好,我是小哥谈。YOLOv8是ultralytics公司在2023年1月10号开源的,是YOLOv5的下一个重大更新版本,目前支持图像分类、物体检测和实例分割任务,在还没有开源时就收到了用户的广泛关注。它是一个SOTA模型,建立在以前YOLO版本的成功基础上,并引入了新的功能和改…

【Research】Model Stealing

What is Model Stealing? Extract an approximation that of the target model that “closely matches” the original Accuracy? Fidelity? Funtional equivalence? Threat Models API Access Model extraction using: Prediction Vectors Labels Only Model Access …

2024头歌数据库期末综合(部分题)

目录 第7关:数据查询三 任务描述 知识补充 答案 第8关:数据查询四 任务描述 知识补充 答案 本篇博客声明:所有题的答案不在一起,可以去作者博客专栏寻找其它文章。 第7关:数据查询三 任务描述 本关任务&#x…

[C++][数据结构][B-树][下]详细讲解

目录 1.B-树的实现1.B-树的结点设计2.插入key的过程3.B-树的插入实现4.B-树的简单验证5.B-树的性能分析6.B树的删除 2.B树3.B*树4.B-树总结5.B-树的应用0.B树可以在内存中做内查找吗?1.索引2.MYSQL索引简介1.MyISAM2.InnoDB 3.B树做主键索引相比B树的优势 1.B-树的实…

Mybatis-Plus多种批量插入方案对比

背景 六月某日上线了一个日报表任务,因是第一次上线,故需要为历史所有日期都初始化一次报表数据 在执行过程中发现新增特别的慢:插入十万条左右的数据,SQL执行耗费高达三分多钟 因很早就听闻过mybatis-plus的[伪]批量新增的问题&…

BL104应用在智慧零售多协议采集监控远程实时查看

在智慧零售领域,如今的市场竞争日益激烈,传统的零售模式已经难以满足消费者对服务和体验的高需求。智能化技术的引入,尤其是基于物联网的解决方案,成为提升零售业务效率和服务质量的关键。钡铼BL104 Modbus转MQTT网关作为一种先进…

Linux常用命令(17)—pastesortcomm命令(有相关截图)

写在前面: 最近在学习Linux命令,记录一下学习Linux常用命令的过程,方便以后复习。仅供参考,若有不当的地方,恳请指正。如果对你有帮助,欢迎点赞,关注,收藏,评论&#xf…

STM32单片机USART串口打印和收发数据

文章目录 1. 串口通信 1.1 串口初始化 1.2 库函数 2. 串口打印 2.1 Serial.c 2.2 Serial.h 2.3 main.c 3. 串口收发数据 3.1 Serial.c 3.2 Serial.h 3.3 main.c 1. 串口通信 对于串口通信的详细解析可以看下面这篇文章 STM32单片机USART串口详解-CSDN博客 STM32单片…

JDK18特性

JDK18特性 一、JAVA18概述 Java 18 在 2022 年 3 月 22 日正式发布,Java 18 不是一个长期支持版本,这次更新共带来 9 个新功能。 https://openjdk.org/projects/jdk/18/ 二、具体新特性 1. 默认UTF-8字符编码 JDK 一直都是支持 UTF-8 字符编码,这次是把 UTF-8 设置为了默…

基于SpringBoot+Vue在线考试报名系统设计和实现(源码+LW+调试文档+讲解等)

💗博主介绍:✌全网粉丝10W,CSDN作者、博客专家、全栈领域优质创作者,博客之星、平台优质作者、专注于Java、小程序技术领域和毕业项目实战✌💗 🌟文末获取源码数据库🌟 感兴趣的可以先收藏起来,…

c++编译器优化不显示拷贝构造函数

一.错误情景&#xff08;无法打印拷贝函数&#xff09; #include<iostream> using namespace std;class person { public:person(){cout << "person默认构造函数调用" << endl;}person(int age){cout << "有参构造函数调用" <…

网络编程之XDP技术的基础eBPF

一、XDP和TC的技术支撑 在前面分析了XDP和TC技术&#xff0c;从它们的细节里可以看出&#xff0c;它们都在调用eBPF的钩子函数。那么eBPF是什么呢&#xff1f;在2021年曾经写过一篇《eBPF介绍》的初级文章&#xff0c;对eBPF做了一个入门级的普及。但是未曾在技术层面上进行展…

解决双击bootstrap.bat没有生成b2.exe文件

双击bootstrap.bat但是并没有没有生成b2.exe文件&#xff0c;会报如下错误&#xff1a; "cl" 不是内部或外部命令&#xff0c;也不是可运行的程序 或批处理文件。D:\cppsoft\boost_1_85_0\tools\build\src\engine>dir *.exe 驱动器 D 中的卷是 Data 卷的序列号是…

【机器学习 复习】第11章 神经网络与深度学习(重中之重)

一、概念 1.神经元模型 &#xff08;1&#xff09;神经网络的基本组成单位 &#xff08;2&#xff09;生物上&#xff0c;每个神经元通过树突接受来自其他被激活神经元的信息&#xff0c;通过轴突释放出来的化学递质改变当前神经元内的电位。当神经元内的电位累计到一个水平时…

广东省建筑施工安管人员考核报名流程及照片处理方法

广东省建筑施工企业安管人员考核工作现已全面启动&#xff0c;这对于提升建筑行业的安全生产管理水平至关重要。为了确保广大考生能够顺利报名并参与考核&#xff0c;本文精心梳理了考核报名流程&#xff0c;并提供了证件照的规范处理方法。同时&#xff0c;针对证件照这一关键…

嵌入式通信协议-----UART协议详解(基于智芯Z20k11X)

目录 一、简介 1.概念 2.结构 3.特点 4.优缺点 二、协议帧组成 1.起始位 2.数据位 3.奇偶校验位 4.停止位 三、UART通信过程 四、USART与UART区别 五、代码实现 1.硬件框图 2.软件实现 一、简介 1.概念 USART&#xff08;Universal Synchronous Asynchronous R…

数字营销新玩法:拓新与裂变的完美结合

在当今这个飞速发展的数字化时代&#xff0c;数字营销已经成为了企业发展中至关重要的一环。拓新&#xff0c;简单来说就是不断去开拓新的客户群体&#xff0c;让更多的人了解并接触到我们的产品或服务。要做到这一点&#xff0c;那可得充分利用各种线上渠道。像热闹非凡的社交…