前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >PHP快速入门开源大模型平台魔塔ModelScope

PHP快速入门开源大模型平台魔塔ModelScope

作者头像
Tinywan
发布2024-01-23 21:09:57
6330
发布2024-01-23 21:09:57
举报
文章被收录于专栏:开源技术小栈

ModelScope 是什么?

ModelScope 旨在打造下一代开源的模型即服务共享平台,为泛AI开发者提供灵活、易用、低成本的一站式模型服务产品,让模型应用更简单!

我们希望在汇集行业领先的预训练模型,减少开发者的重复研发成本,提供更加绿色环保、开源开放的AI开发环境和模型服务,助力绿色“数字经济”事业的建设。 ModelScope平台将以开源的方式提供多类优质模型,开发者可在平台上免费体验与下载使用。

环境安装

环境配置

  • 操作系统:Linux
  • 多环境切换:Anaconda
  • Python版本:3.10
  • 深度学习框架:Pytorch
  • 计算平台:CPU

Anaconda 安装

Anaconda 是一个开源的Anaconda是专注于数据分析的Python发行版本,包含了conda、Python等190多个科学包及其依赖项。

Anaconda 就是可以便捷获取包且对包能够进行管理,包括了python和很多常见的软件库和一个包管理器conda。常见的科学计算类的库都包含在里面了,使得安装比常规 python 安装要容易,同时对环境可以统一管理的发行版本。

下载地址:https://www.anaconda.com/download#downloads

代码语言:javascript
复制
wget https://repo.anaconda.com/archive/Anaconda3-2023.09-0-Linux-x86_64.sh

命令行中切换到anaconda文件所在目录。默认安装路径,/home/{用户名}/anaconda3

代码语言:javascript
复制
sh Anaconda3-2022.05-Linux-x86_64.sh

accept the license terms--yes

查看 anaconda 版本。终端输入conda --version 或者conda -V

代码语言:javascript
复制
$ conda --version

conda 23.11.0

创建Python环境

创建新环境

语法:conda create -n your_env_name python=X.X

代码语言:javascript
复制
conda create -n tinywan-modelscope python=3.10
激活环境
代码语言:javascript
复制
conda activate tinywan-modelscope

其他conda命令

代码语言:javascript
复制
# 查看环境列表
conda env list

# 安装包。如:conda install numpy
conda install [package]

# 删除当前环境中的某个包
conda remove [package] 

# 退出当前虚拟环境
source deactivate  # Linux环境
conda deactivate # Windows环境

# 删除某个虚拟环境
conda remove -n your_env_name --all

安装深度学习框架 Pytorch

代码语言:javascript
复制
pip3 install torch torchvision torchaudio

安装过程

安装成功

代码语言:javascript
复制
Successfully installed MarkupSafe-2.1.3 certifi-2023.11.17 
charset-normalizer-3.3.2 filelock-3.13.1 
fsspec-2023.12.2 idna-3.6 jinja2-3.1.3 
mpmath-1.3.0 networkx-3.1 numpy-1.24.4 
nvidia-cublas-cu12-12.1.3.1 
nvidia-cuda-cupti-cu12-12.1.105 
nvidia-cuda-nvrtc-cu12-12.1.105 nvidia-cuda-runtime-cu12-12.1.105 nvidia-cudnn-cu12-8.9.2.26 nvidia-cufft-cu12-11.0.2.54 nvidia-curand-cu12-10.3.2.106 nvidia-cusolver-cu12-11.4.5.107 nvidia-cusparse-cu12-12.1.0.106 nvidia-nccl-cu12-2.18.1 nvidia-nvjitlink-cu12-12.3.101 nvidia-nvtx-cu12-12.1.105 pillow-10.2.0 requests-2.31.0 
sympy-1.12 torch-2.1.2 torchaudio-2.1.2 torchvision-0.16.2 
triton-2.1.0 typing-extensions-4.9.0 urllib3-2.1.0

安装 ModelScope Library 库

ModelScope Libarary由核心框架,以及不同领域模型的对接组件组成。如果只需要ModelScope模型和数据集访问等基础能力,可以只安装ModelScope的核心框架:

代码语言:javascript
复制
pip3 install modelscope

但如果需要进一步具体使用ModelScope平台上承载的,包括多模态,NLP,CV,语音等不同领域的模型,来进行模型推理以及模型训练、微调等能力,则需要安装各个领域上不同的依赖。例如:

如仅需体验多模态领域的模型,可执行如下命令安装领域依赖:

代码语言:javascript
复制
pip install "modelscope[multi-modal]" 

下载自然语言处理模型 NLP

代码语言:javascript
复制
pip3 install "modelscope[nlp]" -f https://modelscope.oss-cn-beijing.aliyuncs.com/releases/repo.html

安装验证

安装成功后,即可使用对应领域模型进行推理,训练等操作。这里我们以NLP领域为例。安装后,可执行如下命令,运行中文分词任务,来验证安装是否正确:

代码语言:javascript
复制
python -c "from modelscope.pipelines import pipeline;print(pipeline('word-segmentation')('今天天气不错,适合 出去游玩。开源技术小栈'))"

执行输入内容

编写一个python脚本modelscope.py。直接执行python modelscope.py结果和上面一样

modelscope.py 脚本

代码语言:javascript
复制
from modelscope.pipelines import pipeline
print(pipeline('word-segmentation')('今天天气不错,适合 出去游玩。开源技术小栈'))

PHP 通过 PHPY 调用魔塔库

PHPY 是识沃团队最新推出的开源项目,目标是为 PHP 引入 Python 生态,来弥补 PHP 生态的空缺和不足。phpy 使得 PHP 可以调用所有 Python 的包。

入门级教程:PHPY 打破语言界限,使PHP引入Python生态,开创PHP语言AI编程时代!

模型推理

在安装完成ModelScope之后即可使用ocr-recognition的能力。

代码范例 captcha.php 代码

代码语言:javascript
复制
<?php
/**
 * @link https://modelscope.cn/models/damo/cv_convnextTiny_ocr-recognition-general_damo/summary
 */
$pipeline = PyCore::import('modelscope.pipelines')->pipeline;
$Tasks = PyCore::import('modelscope.utils.constant')->Tasks;
// 模型可以换成 xiaolv/ocr_small
$pipe = $pipeline($Tasks->ocr_recognition, model: 'damo/cv_convnextTiny_ocr-recognition-general_damo');
$file = '/tmp/captcha.png';
file_put_contents($file, file_get_contents('https://business.swoole.com/page/captcha_register'));
echo '识别结果:' . $pipe($file)['text'][0], PHP_EOL;

官方案例:https://github.com/swoole/phpy/blob/main/examples/modelscope/captcha.php

模型介绍

  • 文字识别,即给定一张文本图片,识别出图中所含文字并输出对应字符串。
  • 本模型主要包括三个主要部分
    • Convolutional Backbone提取图像视觉特征
    • ConvTransformer Blocks用于对视觉特征进行上下文建模
    • 连接CTC loss进行识别解码以及网络梯度优化。

识别模型结构如下图:

依赖包

该模型依赖于opencv library。所以先需要再虚拟环境安装opencv库。

OpenCV(Open Source Computer Vision Library)库是一种计算机视觉的开源函数库,内置众多图像处理函数以及数百种计算机视觉算法并对它们进行了很大程度的优化,通过调用OpenCV库函数可加快程序开发的进度,快速实现程序所需图像处理等相关功能。

代码语言:javascript
复制
pip install opencv-python

安装过程

代码语言:javascript
复制
Collecting opencv-python
  Downloading https://mirrors.cloud.aliyuncs.com/pypi/packages/d9/64/7fdfb9386511cd6805451e012c537073a79a958a58795c4e602e538c388c/opencv_python-4.9.0.80-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (62.2 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 62.2/62.2 MB 50.5 MB/s eta 0:00:00
Requirement already satisfied: numpy>=1.21.2 in /home/www/anaconda3/envs/tinywan-modelscope/lib/python3.10/site-packages (from opencv-python) (1.26.3)
Installing collected packages: opencv-python
Successfully installed opencv-python-4.9.0.80

运行脚本

代码语言:javascript
复制
/usr/local/php-8.2.14/bin/php captcha.php

识别结果:7R2N

使用官方案例 url

http://duguang-labelling.oss-cn-shanghai.aliyuncs.com/mass_img_tmp_20220922/ocr_recognition.jpg

模型可视化效果

执行结果。输出:电子元器件提供BOM配单

代码语言:javascript
复制
(tinywan-modelscope) $ /usr/local/php-8.2.14/bin/php captcha.php 
2024-01-19 22:41:20,505 - modelscope - INFO - PyTorch version 2.1.2 Found.
2024-01-19 22:41:20,506 - modelscope - INFO - Loading ast index from /home/www/.cache/modelscope/ast_indexer
2024-01-19 22:41:20,596 - modelscope - INFO - Loading done! Current index file version is 1.11.0, with md5 fbfcef7834c830c39b620d603ee9aa45 and a total number of 953 components indexed
2024-01-19 22:41:22,219 - modelscope - WARNING - Model revision not specified, use revision: v2.4.0
2024-01-19 22:41:22,537 - modelscope - INFO - initiate model from /home/www/.cache/modelscope/hub/damo/cv_convnextTiny_ocr-recognition-general_damo
2024-01-19 22:41:22,537 - modelscope - INFO - initiate model from location /home/www/.cache/modelscope/hub/damo/cv_convnextTiny_ocr-recognition-general_damo.
2024-01-19 22:41:22,538 - modelscope - INFO - initialize model from /home/www/.cache/modelscope/hub/damo/cv_convnextTiny_ocr-recognition-general_damo
2024-01-19 22:41:22,833 - modelscope - INFO - cuda is not available, using cpu instead.
2024-01-19 22:41:22,833 - modelscope - INFO - loading model from dir /home/www/.cache/modelscope/hub/damo/cv_convnextTiny_ocr-recognition-general_damo
2024-01-19 22:41:22,837 - modelscope - INFO - loading model done
识别结果:电子元器件提供BOM配单
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-01-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 开源技术小栈 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • ModelScope 是什么?
  • 环境安装
    • 环境配置
      • Anaconda 安装
        • 创建Python环境
          • 创建新环境
          • 激活环境
        • 安装深度学习框架 Pytorch
          • 安装 ModelScope Library 库
            • 下载自然语言处理模型 NLP
              • 安装验证
              • PHP 通过 PHPY 调用魔塔库
                • 模型推理
                  • 模型介绍
                    • 依赖包
                      • 运行脚本
                        • 使用官方案例 url
                          • 模型可视化效果
                          相关产品与服务
                          AI 应用产品
                          文字识别(Optical Character Recognition,OCR)基于腾讯优图实验室的深度学习技术,将图片上的文字内容,智能识别成为可编辑的文本。OCR 支持身份证、名片等卡证类和票据类的印刷体识别,也支持运单等手写体识别,支持提供定制化服务,可以有效地代替人工录入信息。
                          领券
                          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档