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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

SAP_ABAP模块-记录第三方通过Webservice调用SAP接口时的问题

一、业务背景: 最近SAP有个货物移动的接口需要优化,之前与第三方销售管理平台对接,一直都没有问题的,但是现在SAP这边优化后,然后对方平台的开发同事说,调用不成功,报错了,最开始一直…

Linux测试服务器端口是否打开

前言 服务器端口在计算机网络通信中扮演着至关重要的角色,其作用可以归纳如下: 区分不同的应用程序或服务: 服务器端口用于标识和定位不同应用程序或服务在服务器上的通信入口。 通过不同的端口号,服务器可以同时运行多个应用程…

基于单电阻采样的电流重构

1. 单电阻采样电流重构原理 图1(a)所示是电压型三相逆变器,定义三相开 关信号为 Sa 、Sb 、Sc 。当 Sa = 1 表示A相上桥臂导 通,下桥臂关断;Sa = 0 表示相反。三相逆变器采用 SVPWM调制方式控制,有8种开关工作状态,包括 6个非零电压矢量V1 ~ V6 和2个零电压矢量V0 、V7…

连接和断开信号演示之二

代码; #include <gtk-2.0/gtk/gtk.h> #include <gtk-2.0/gdk/gdkkeysyms.h> #include <glib-2.0/glib.h> #include <stdio.h>void button_press(GtkEventBox *ebox,GdkEventButton *event,GtkLabel *label) {const char *citem;switch(event->type…

ESU-EM213热作模具钢粉末推动3D打印在压铸行业应用

模具的种类繁多&#xff0c;依据制造方式和产品特性&#xff0c;可以分为注塑模具、压铸模具、冲压模具等多种类型。其中&#xff0c;压铸模具因工况恶劣&#xff0c;特别是在铝压铸过程中&#xff0c;模具需承受高温&#xff08;50-300℃&#xff09;及高压高速金属液的冲击&a…

JMeter的基本概念

一、主流测试工具 1&#xff0c;Loadrunner HP Loadrunner是一种工业级标准性能测试负载工具&#xff0c;可以模拟上万用户实施测试&#xff0c;并在测试时可实时检测应用服务器及服务器硬件各种数据&#xff0c;来确认和查找存在的瓶颈 支持多协议:Web(HTTP/HTML)、Windows…

修改SpringBoot项目配置文件

方法一&#xff1a; 修改application.properties文件 //示例 server.port9090 server.servlet.context-path/start 重启后效果&#xff1a; 方法二&#xff1a;&#xff08;推荐&#xff09; 修改application.yml文件&#xff08;文件后缀亦可为.yaml&#xff09;&#xff…

MLP多层感知器:AI人工智能神经网络的基石

MLP 是指多层感知器&#xff08;Multilayer Perceptron&#xff09;&#xff0c;是一种基础人工神经网络模型&#xff08;ANN&#xff0c;Artificial Neural Network&#xff09;。MLP 的核心是通过深度学习从大量数据中学习特征和模式&#xff0c;并训练参数。通过参数与激活函…

Java——IO流(一)-(6/8):字节流-FileInputStream 每次读取多个字节(示例演示)、一次读取完全部字节(方式一、方式二,注意事项)

目录 文件字节输入流&#xff1a;每次读取多个字节 实例演示 注意事项 文件字节输入流&#xff1a;一次读取完全部字节 方式一 方式二 注意事项 文件字节输入流&#xff1a;每次读取多个字节 用到之前介绍过的常用方法&#xff1a; 实例演示 需求&#xff1a;用每次读取…

Star、Star求Star

本章是介绍博主自己的一个小工具的。使用的PythonPyQt5开发的。顺带来求一波star&#x1f31f;&#x1f31f;&#xff01;&#xff01;&#xff01; 地址&#xff1a;https://gitee.com/qinganan_admin/PyCom Pycom是博主开发的串口工具&#xff0c;要是说对比其他串口工具&…

异步复位同步释放

目录 描述 输入描述&#xff1a; 输出描述&#xff1a; 参考代码 描述 题目描述&#xff1a; 请使用异步复位同步释放来将输入数据a存储到寄存器中&#xff0c;并画图说明异步复位同步释放的机制原理 信号示意图&#xff1a; clk为时钟 rst_n为低电平复位 d信号输入…

为何人类需重复学习与记忆?人工智能与人类认知机制的融合 —— 生物体AI

零、 AI 与人的认知背景知识 人作为一种生物智能体&#xff0c;学习和记忆的过程往往需要重复与实践。这是因为人的大脑并非一次性就能完美地吸收和储存信息&#xff0c;而是通过反复的认知加工&#xff0c;将短期记忆转化为长期记忆&#xff0c;并通过深度理解、归纳总结以及…

【GUI】LVGL无操作系统移植以及移植过程错误处理

目录 介绍 1. 删除源码 2. 导入lvgl到项目screen_mcu中 3. keil添加分组和头文件 4. 移植显示 5. 移植触摸 6. 添加测试案例 6.1. 测试按钮 6.2. 测试音乐界面 7. 提供时钟 错误处理 L6218E错误 出现花屏 屏幕颜色不对 内存分配 介绍 本文 主要介绍GD32移植…

qt经典界面框架

目的 其实就是一个简单的界面显示&#xff0c;是很常用的形式。 说起来简单也是简单&#xff0c;但当初&#xff0c;刚开始做时&#xff0c;感觉非常的复杂&#xff0c;不知如何下手。 现在感觉简单多了。 这个框架利用了QT的现成的MainWindow与QDockWidget&#xff0c;这样就…

福建聚鼎:装饰画现在做起来难吗

在当代社会&#xff0c;艺术创作已经成为很多人表达自我、追求美学生活的方式之一。装饰画作为家居装饰的重要元素&#xff0c;也受到了越来越多人的喜爱。但做一个优质的装饰画真的容易吗? 从技术层面讲&#xff0c;随着科技的发展&#xff0c;制作装饰画的手段和材料都比以往…

Python基础教程(二十八):pip模块

&#x1f49d;&#x1f49d;&#x1f49d;首先&#xff0c;欢迎各位来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里不仅可以有所收获&#xff0c;同时也能感受到一份轻松欢乐的氛围&#xff0c;祝你生活愉快&#xff01; &#x1f49d;&#x1f49…

NUC980-OLED实现全中文字库的方法

1.背景 有一个产品&#xff0c;客户需要屏幕展示一些内容&#xff0c;要带一些中文&#xff0c;实现了OLED12864的驱动&#xff0c;但是它不带字库&#xff0c;现在要实现OLED全字库的显示 2.制作原始字库 下载软件pctolcd2002 设置 制作字库 打开原始文件 用软件自带的&…

Linux常用命令(14)—查看文件内容(有相关截图)

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

12.爬虫---PyMysql安装与使用

12.PyMysql安装与使用 1.安装 PyMySQL2.使用PyMySQL2.1创建数据表2.2连接数据库2.3增加数据2.4修改数据2.5查询数据2.6删除数据2.7关闭连接 3.总结 MySQL 安装可以看这篇文章MySql 安装与使用&#xff08;非常详细&#xff09; 1.安装 PyMySQL PyMySQL是Python中用于连接MySQL…

【linux】shell脚本中设置字体颜色,背景颜色详细攻略

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,阿里云开发者社区专家博主,CSDN全栈领域优质创作者,掘金优秀博主,51CTO博客专家等。 🏆《博客》:Python全…