跳转至

项目应用工具介绍

学习目标

  • 了解整体项目中使用了哪些工具
  • 掌握各个工具的概念、作用、安装以及基本使用方法

整体项目中使用的工具

  • Doccano数据标注平台
  • Flask web服务框架
  • Gunicorn服务组件
  • Supervisor服务监控器
  • Neo4j图数据库

1 Doccano数据标注平台

  • Doccano是一种用于文本标注的开源工具,旨在简化和加速标注任务的进行。它提供了一个直观的用户界面,使标注人员能够轻松地对文本数据进行标注,并创建高质量的训练数据集用于机器学习和自然语言处理任务。

  • Doccano的一些主要特点和功能:
    • 多种标注类型:Doccano支持多种常见的文本标注任务,如命名实体识别、文本分类、关系抽取等。您可以根据具体任务的需求选择适当的标注类型。
    • 协作标注:多个标注人员可以同时使用Doccano进行协作标注。标注人员可以独立地对同一份数据进行标注,并进行交互和讨论,以提高标注的一致性和准确性。
    • 快速导入和导出:您可以将原始文本数据以各种格式(如CSV、JSON、TXT等)导入到Doccano中进行标注。标注完成后,您可以将标注结果导出为各种格式,方便后续的数据分析和模型训练。

具体标注方法,我们将在下节课详细介绍


2 Flask web服务框架


  • Flask框架是当下最受欢迎的python轻量级框架,也是pytorch官网指定的部署框架。 Flask的基本模式为在程序里将一个视图函数分配给一个URL,每当用户访问这个URL时,系统就会执行给该URL分配好的视图函数,获取函数的返回值,其工作过程见图:

  • 在项目中,Flask框架主要作用是对模型的封装和API接口的制作。

  • 安装:

    pip install flask
    
  • 基本使用方法:

    # 导入Flask类
    from flask import Flask
    # 创建一个该类的实例app, 参数为__name__, 这个参数是必需的,
    # 这样Flask才能知道在哪里可找到模板和静态文件等东西。
    app = Flask(__name__)
    
    # 使用route()装饰器来告诉Flask触发函数的URL
    @app.route('/')
    def hello_world():
        """请求指定的url后,执行的主要逻辑函数"""
        # 在用户浏览器中显示信息:'Hello, World!'
        return 'Hello, World!'
    
    if __name__ == '__main__':
        app.run(host="0.0.0.0", port=5000)
    
  • 启动服务:

    python app.py
    
  • 启动效果:

    • 通过浏览器打开地址http://0.0.0.0:5000可看见打印了'Hello, World'.

3 Gunicorn服务组件

  • 简介:
  • Gunicorn是一个被广泛使用的高性能的Python WSGI UNIX HTTP服务组件(WSGI: Web Server Gateway Interface),移植自Ruby的独角兽(Unicorn )项目,具有使用非常简单,轻量级的资源消耗,以及高性能等特点。
  • 作用:
  • 在项目中,Gunicorn和Flask框架一同使用,能够开启服务,处理请求,因其高性能的特点能够有效减少服务丢包率。
  • 安装:
# 使用pip安装gunicorn
pip install gunicorn
  • 基本使用方法:
# 使用其启动Flask服务:
gunicorn -w 1 -b 0.0.0.0:5000 app:app
# -w 代表开启的进程数,我们只开启一个进程
# -b 服务的IP地址和端口
# app:app 是指执行的主要对象位置,在app.py中的app对象
# 如果使其在后台运行可使用:
# nohup gunicorn -w 1 -b 0.0.0.0:5000 app:app 2>&1 &

4 Neo4j图数据库

  • 因为在项目中,Neo4j图数据库作为核心的存储和查询数据库,因此会在后续章节对其进行详细介绍。

小节总结

  • 本章节主要学习项目架构中用到的主要工具:
    • Doccano标注平台
      • 作用:在项目中,基于Doccano平台完成数据的标注,供模型训练使用
    • Flask web服务框架
      • 作用:在项目中,Flask框架是主逻辑服务和句子相关模型服务使用的服务框架。
    • Gunicorn服务组件
      • 作用:在项目中,Gunicorn和Flask框架一同使用,能够开启服务,处理请求,因其高性能的特点能够有效减少服务丢包率。
    • Neo4j图数据库