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

news2024/11/28 8:47:35

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.coloradmin.cn/o/1848361.html

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

相关文章

ADI Trinamic tmc2209专为3D打印和激光雕刻打造的高性能解决方案

TMC2209-LA是专为3D打印机和激光雕刻机设计的一款高性能、超静音的两相步进电机驱动器IC。该芯片结合了Trinamic公司的先进技术,为设备提供了稳定、可靠且低噪音的动力驱动解决方案 TMC2209-LA与许多传统驱动器以及TMC2208-LA引脚兼容。TRINAMICS先进的StealthChop2…

【嵌入式开发】UART

目录 一、概述 1.1 常见的通信类别/特点 1.2 常见几种通信 二、UART通信协议 2.1 UART通信介绍 2.2 UART通信协议 物理连接示意图: 三、STM32的UART接口 3.1 STM32的UART特点 3.2 STM32的UART框图分析 3.3 UART初始化步骤 3.4 STM32中UART使用 一、概述…

一文读懂过零检测电路的作用、电路原理图及应用

过零检测电路是一种常见的应用,其中运算放大器用作比较器。它通常用于跟踪正弦波形的变化,例如过零电压从正到负或从负到正。它还可以用作方波发生器。过零检测电路有许多应用,例如标记信号发生器、相位计和频率计。#过零检测电路#可以采用多…

Claude3.5:编码螃蟹游戏就是这么轻松

大模型技术论文不断,每个月总会新增上千篇。本专栏精选论文重点解读,主题还是围绕着行业实践和工程量产。若在某个环节出现卡点,可以回到大模型必备腔调或者LLM背后的基础模型重新阅读。而最新科技(Mamba,xLSTM,KAN)则…

JupyterLab使用指南(三):JupyterLab的Cell详细介绍

JupyterLab Cell 使用教程 JupyterLab 的 cell 是一种强大的工具,提供了编写、执行、展示和记录的全方位支持,使得复杂的计算任务变得简单直观。通过熟练掌握 cell 的各种操作和快捷键,用户可以显著提高工作效率,专注于解决实际问…

四、SpringMVC实战:构建高效表述层框架(二)

二、SpringMVC接收数据 2.1 访问路径设置 RequestMapping注解的作用就是将请求的 URL 地址和处理请求的方式(handler方法)关联起来,建立映射关系。 SpringMVC 接收到指定的请求,就会来找到在映射关系中对应的方法来处理这个请求…

k8s部署wordpress及性能优化

镜像版本:wordpress mysql版本:mysql:8.0.27 部署wordpress:v1 此版本包含wordpress基础服务,可访问,但是一旦pod重新创建会丢失数据,文章中的图片等也会丢失,且只又一个pod,性能…

STM32——温湿度采集与显示

一、I2C协议 关于I2C协议的基本原理和时序协议 12C协议使用两条线:SDA(Serial Data Line,串行数据线)和SCL(Serial Clock Line,串行时钟线)。这两条线都是开漏输出,意味着它们需要上…

【自动驾驶】ROS小车系统

文章目录 小车组成轮式运动底盘的组成轮式运动底盘的分类轮式机器人的控制方式感知传感器ROS决策主控ROS介绍ROS的坐标系ROS的单位机器人电气连接变压模块运动底盘的电气连接ROS主控与传感器的电气连接ROS主控和STM32控制器两种控制器的功能运动底盘基本组成电池电机控制器与驱…

RocketMQ的安装和原理

.RocketMQ的安装 一.RocketMQ安装 1.1.下载RocketMQ 下载地址:http://rocketmq.apache.org/release_notes/release-notes-4.2.0/ 下载后解压 Bin : 可执行文件目录 config:配置文件目录 Lib : 依赖库,一堆Jar包 1.2.配置ROCKETMQ_HOME…

掌握 NumPy:高效数组处理综合指南(第 2/2 部分)

照片由 兹比内克布里瓦尔 on Unsplash 一、介绍 欢迎来到我关于 NumPy 的教程的第二部分!之前,我们已经介绍了以下列表中的前 7 章。现在在这篇文章中,我们将从第 8 章一直到第 14 章。 Numpy 安装数组初始化Numpy 数组限制计算速度和内存使用…

鸿蒙正在跨越“生态繁荣阈值”

作者 | 曾响铃 文 | 响铃说 先讲一个故事。 一个朋友曾经做了一个本地互联网装修平台,一边是装修服务的提供者——各工种工人等,一边是有装修需求的业主。这个平台要做独立生态,绕过旧有的装修公司渠道垄断,直接提供服务&#…

keepalived高可用,LVS+keepalived的实现

概述: keepalived是集群高可用的一个技术,它是一个软件,与网络技术中VRRP协议的实现相类似,都是在若干个服务集群后虚拟出的一个对外提供服务的VIP(Virtual IP),即虚拟IP,当某一台服务器发生故障时&#x…

汇聚荣做拼多多运营口碑怎么样?

拼多多作为国内领先的电商平台,其运营口碑一直是业界和消费者关注的焦点。汇聚荣作为拼多多的运营服务商,其服务质量直接影响到拼多多平台的用户体验和品牌形象。那么,汇聚荣做拼多多运营口碑怎么样呢? 一、服务响应速度 汇聚荣在服务响应速…

毕业答辩制作PPT【攻略】

毕业答辩制作PPT【攻略】 前言版权毕业答辩制作PPT【攻略】一、WPS AI 15天免费会员二、AI文档生成PPT三、修改完善PPT 最后 前言 2024-06-14 23:43:05 以下内容源自《【攻略】》 仅供学习交流使用 版权 禁止其他平台发布时删除以下此话 本文首次发布于CSDN平台 作者是CSDN…

【C++LeetCode】【热题100】移动零【简单】-不同效率的题解【4】

题目&#xff1a; 暴力方法&#xff1a; class Solution { public:void moveZeroes(vector<int>& nums) {int counts0;//零的数量int swapCounts0;for(int i0;i<nums.size();i){if(nums[i]0){counts1;}}swapCountscounts;for(int i0;i<nums.size();i){fo…

DSP应用市场的大蛋糕,国产厂商能吃下多少?

DSP是数字信号处理器&#xff08;Digital Signal Processor&#xff09;的简称&#xff0c;是一种专门用于高速数学运算的微处理器。DSP能够快速且准确地处理数字信号&#xff0c;同时具备可编程和低功耗等特点&#xff0c;如今在各个领域发挥着越来越重要的作用。 &#xff08…

基于STM32和人工智能的智能仓储管理系统

目录 引言环境准备智能仓储管理系统基础代码实现&#xff1a;实现智能仓储管理系统 4.1 数据采集模块4.2 数据处理与分析4.3 控制系统4.4 用户界面与数据可视化应用场景&#xff1a;智能仓储管理与优化问题解决方案与优化收尾与总结 1. 引言 智能仓储管理系统通过结合STM32嵌…

阿里巴巴橙点同学达摩院认证证书

网址&#xff1a;https://orange-class.com/ 为竞争激烈的职业做好充分的准备&#xff0c;无需相关经验立即开始学习。 阿里达摩院组织背书认证。 内容包括八个职业方向&#xff0c;涉及AI、开发、营销、设计等不同岗位&#xff1a; 其中&#xff0c;AI的高级认证情况如下&…