Gorse v0.3.3更新

280 阅读2分钟

Github: Gorse v0.3.3更新

新特性

  • 添加控制台登录验证

新版本添加了控制台登录支持,登录状态会在主节点重启之后失效。

FireShot Capture 020 - Gorse Dashboard - 192.168.101.22.png

用户名和密码需要在配置文件中设定,如果两者都为空就会跳过登录验证过程。

dashboard_user_name = "admin"   # dashboard user name
dashboard_password = "password" # dashboard password
  • 点击率可视化界面支持多种反馈类型

在旧版本中,系统使用点击率衡量推荐系统线上效果,点击率为用户给出正反馈的次数除以阅读次数。在新版本中,系统计算每种正反馈的“点击率”,展示用户针对推荐结果给出每种正反馈的概率。

60b794e9-4753-48a4-9ef8-340cde648d66.png

性能优化

  • 使用AVX2指令加速向量计算

推荐算法中有大量的向量计算过程,可以使用CPU提供的SIMD指令一次对多个浮点数进行计算。大部分AMD64架构下的CPU会提供AVX2指令集,在实验中,AVX2指令将训练排序模型的时间从192秒降低为70秒。

0607f6d5-492c-4d5b-aa1b-fabab9385dea.png

AMD64架构下还有SSE、SSE2、AVX512等SIMD指令集,由于AVX2是目前支持最广泛并且性能最强的SIMD指令集,因此Gorse仅支持了AVX2。

  • 使用Neon指令加速向量计算

ARM64架构下的SIMD指令集为NEON。在实验中,NEON将排序模型的训练时间从856秒降低到324秒(实验所用的ARM服务器性能较差,因此花费时间比较多)。

1644123348338-x9u.png

修复问题

  • 修复了为未训练用户生成推荐结果的逻辑

在之前的版本中,工作节点从协同过滤模型中获取用户列表,这种方式会丢失协同过滤模型训练之后才插入的用户。在新版本中,工作节点直接匆匆数据库读取用户列表,能够为全部用户生成推荐。

  • 自动创建日志文件所在目录

节点启动参数--log-path可以将日志输出到文件,如果日志文件目录不存在则会panic。新版本自动创建日志文件所在目录,如果没有权限操作才会panic。

  • 修复了评估索引召回率时产生NaN值的问题

当所有精确查询的结果为空的时候,召回率计算得到NaN,在新版本中会返回0。

升级指南

  • Redis: 由于存储忽略物品的数据结构发生了变化,需要清空原先的缓存。
redis-cli KEYS "ignore_items*" | xargs redis-cli DEL