大象笔记

知者行之始,行者知之成

WSL Ubuntu 18.04 安装 PostgreSQL 数据库

安装 sudo apt update sudo apt install postgresql postgresql-contrib 查看版本号 > psql --version psql (PostgreSQL) 10.23 (Ubuntu 10.23-0ubuntu0.18.04.1) 目前,最新的 PostgreSQL 的版本是 15,这也落后太多了。。。 Windows WSL 中启动 postgresql 服务 因为 WSL1 中不支持 systemd, 所以启动服务采用: sudo service postgresql start 如果是正常服务器上,可以 sudo sy ...

阅读全文...

在 google colab 上申请免费的 gpu 资源

首先在 google colab 上新建一个笔记本,然后菜单里选择 “修改” - “笔记本设置” 在弹出的配置对话框里,选择 GPU 作为硬件加速器,即可。 点击保存。 GPU 加速数据处理的场景 机器学习和深度学习:GPU 对于大规模数据集的处理速度比 CPU 快得多,因此免费的 GPU 资源可以用于训练神经网络、图像识别、自然语言处理等任务。 科学计算:GPU 可以用于加速各种科学计算,如物理仿真、气象预测等。 游戏开发:使用 GPU 进行游戏开发可以提高渲染速度和图形质量。 数字艺术和设计:GPU 可以用于加速渲染和处理高分辨率图像和视频,从而加快数字艺术和设计的工作流程。 例如 ...

阅读全文...

对话机器人 rasa (四):生产环境部署,Ubuntu 服务器基于 docker

由于线上生产环境使用的是腾讯云的服务器,Ubuntu server 版本比较低,是 18.04。自带的 python 版本为 3.6,不满足对话机器人框架 rasa 对 python 版本的最低要求。 而升级 python 版本可能破坏系统的一些工具。至于 virtualenv, miniconda 的方案我都非常反感,因为手动操作也不少,增加了重复部署的复杂度,而且长时间不用,命令就忘了。(目前大部分服务端程序,我都采用了 golang,已经很少用 python)我觉得目前最佳的部署方案是 docker。 这也是我第一次线上生产环境尝试 docker 部署,所以记录一下流程。 如果有一定 d ...

阅读全文...

对话机器人 Rasa (三):基于规则添加一个意图对应的回复

使用 Rasa rules.yml 是最简单的指定回复内容的方式,即,添加一条匹配规则。 添加一个意图对应的回复,需要编辑三个文件。 以回复用户的夸奖为例: nlu.yml 意图识别: data/nlu.yml - intent: praise examples: | - 你真聪明 - 你怎么这么聪明 - 你太智能了 - you are really smart - you are so clever domain.yml 编辑返回的内容模板。domain.yml 中添加: version: "3.1" intents: ...

阅读全文...

对话机器人 Rasa (二):中文支持

Rasa 安装之后,默认是不支持中文对话的。 学习、配置的策略 查到的示例,pipeline 配置各不相同,不动手试,难以知道相互间的优劣。 所以,先从能运行的最简单配置开始。例如使用《Rasa 实战:构建开源对话机器人》这本书上的推荐的中文 pipeline。 里面有个医疗机器人的 nlu 配置示例。当然,只包含了 nlu 部分的配置,即识别意图和实体,没有回复配置。 效果 基于 Rasa websocket 的网页组件 实现。 最简单的中文配置 打开项目根目录下的 config.yml 配置文件,修改如下: recipe: default.v1 language: zh pipeli ...

阅读全文...

Rasa NLU pipeline 组件列表

官方文档 https://rasa.com/docs/rasa/components 记录几个感觉比较重要的: 语言模型 Language Model MitieNLP: 预训练的语言模型之一,需要指定模型文件,网上有可以下载到的用百度知道和维基百科训练好的中文模型文件。 SpacyNLP: 另一个预训练的语言模型。也需要指定模型文件,以中文为例,有几个版本,https://spacy.io/usage/models, 小的几十M,大的几百M. 推荐使用至少中型模型,即 md,否则影响意图分类的性能。 在一些文章里看到说是官方推荐使用 SpacyNLP, 但是我在官方文档里没有找到这样的说 ...

阅读全文...

对话机器人 Rasa(二十一):Rasa 项目的 gitignore 配置

rasa init 初始化项目之后,可以看到增加了很多不需要添加到 git 项目管理中的文件,例如 模型文件。默认的模型文件大小就有 24M。 cache 文件 等。 在开始动手修改各种 yml 配置文件之前,最好先提交原始的文件到 git 管理中,防止误操作。 网上找到一个规范的 rasa gitignore 文件,用来过滤这些文件。 参考 https://raw.githubusercontent.com/RasaHQ/rasa-nlu-examples/main/.gitignore gitignore 配置 # Byte-compiled / optimized / DLL fil ...

阅读全文...

开源对话机器人框架 Rasa (一):安装

需求是实现一个特定领域的问答功能,交互模式类似跟 ChatGPT/文心一言聊天一样,或者是购物平台中的客服机器人。 基于 ChatGPT 的开源实现来训练模型肯定不现实,毕竟这么大的模型,训练成本极高,而且现实需求也不需要这么庞大的功能,只需要专业的领域知识即可。 此外,涉及到医疗领域,自动回复不能太随意,容易引起纠纷。所以最近经常看到有人在问“怎样使用 ChatGPT 构造一个客服机器人?”,我的感觉是,对场景理解有偏差。 找了一下发现一个不错的开源对话管理框架 Rasa。 Rasa Open Source is the most popular open source framework ...

阅读全文...

yolov5 pytorch mobile 模型导入 Android,实现图片目标检测

由于 yolov5 相关的 TensorFlow Lite 示例代码太少,而且都是旧版本的示例,导致我完全不知道怎么上手。 所以转投 pytorch mobile 的方案,主要是 facebook 官方的示例代码非常完整,且清晰明了,容易修改。 再就是国内 Android 手机普遍不能使用 google play 的服务,所以 TensorFlow lite 安装包小的优势也就没有了。至于性能,暂时没有要求,而且实测来看,pytorch mobile 的识别速度就非常快,几乎瞬间完成,没有做计时,估计也是几十毫秒的范围,已经很满意了。 识别效果 以识别照片中小麦穗数量为例: 导出 pytor ...

阅读全文...

yolo v5 导出 Android 手机上可以运行的 TFLite 模型

TFLite 是 TensorFlow Lite 的缩写。TFLite 在 Android 上的运行速度更快,因为它专门针对移动设备进行了优化。但是,最后我发现我实在找不到在 Android 上执行 yolov5 TFLite 模型的示例,转而使用 pytorch mobile 的 torchscript lite 模型实现了在 Android 上的目标检测。 虽然没有在 Android 上用 tflite 模型实现功能,但是记录一下导出 tflite 模型的操作方法。 导出命令 python export.py --weights yolov5s.pt --include tflite ...

阅读全文...

YOLO v5 PyTorch 训练数据标注文件 YAML 格式

从 roboflow 标注数据之后,导出的 YOLO v5 PyTorch 配置文件 YAML 格式 (TXT annotations and YAML config used with YOLOv5),里面的文件路径非常不友好,每次都需要修改调整。 特别是要上传到 colab 训练,在 google drive 里在线修改 yaml 文件非常麻烦。因为为了防止 Exception: Dataset not found 我都是用的绝对路径。 我的疑问是,是否存在一种路径组织方式可以同时满足本地和线上 (colab / kaggle),不需要来回改本地绝对路径。 周末陪我妈在毓璜顶医院排队做 ...

阅读全文...

迟到的 ChatGPT 试用感受

ChatGPT 已经火了一段时间了,我之前没有在实际工作中体验过这个工具,但是这个周由于看了百度文心一言的发布会,突然来了兴趣。 总体感受 非常震撼。ChatGPT 在很多问题的解答上,已经远远超过 Google 搜索带来的解决能力。例如,我问了两个关于 TR069 协议的问题,这两个问题我在 Google 上怎么搜都都不到满意的解答,github 上的开源代码也没有标准的做法,官方 pdf 文档也乱七八糟没有头绪。但是,ChatGPT 瞬间梳理了整个逻辑,而且给出了两个行之有效的解决方案。 我又尝试问 ChatGPT 如何实现一些 golang,或者 android 相关的代码如何实现的问题 ...

阅读全文...