跳到主要内容

18 篇博文 含有标签「人工智能」

人工智能和机器学习

查看所有标签

探索Crawlab:您的企业级爬虫管理新选择

· 阅读需 3 分钟
Marvin Zhang
软件工程师 & 开源爱好者

引言

在现代的数据驱动时代,获取和管理网上信息变得至关重要。为企业和开发者提供强大支持的,Crawlab出现了,它是一个企业级的爬虫管理平台,特点是开箱即用。无论您的团队规模大小,Crawlab都能为您提供专业和高效的爬虫管理解决方案。

核心功能

Crawlab的核心功能包括分布式系统管理、爬虫任务管理和调度、文件编辑、消息通知、依赖管理、Git集成以及性能监控等多方面。其中,它的分布式节点管理让爬虫程序能够在多台服务器上高效运行。再也不用担心手动上传、监控和部署的麻烦,Crawlab将这一切全部自动化,确保您能轻松调度爬虫任务,并实时查看爬虫程序的运行状态以及任务日志。

爬虫列表

特色亮点

特别值得一提的是,Crawlab提供在线编辑爬虫代码的功能,支持主流编程语言高亮显示,让您轻松调试爬虫程序。此外,它还提供了Crontab风格的定时任务设置,让您能在指定时间自动执行爬虫任务,极大提高了工作效率。

代码编辑

释放你的阅读潜能:用思阅(SRead)开启全新的智能阅读体验

· 阅读需 3 分钟
Marvin Zhang
软件工程师 & 开源爱好者

“阅读是心灵的冒险,知识是灵魂的燃料。”

在信息爆炸的今天,阅读成了我们每个人不可或缺的一部分。然而,传统的阅读方式常常让我们陷入信息的海洋,难以分辨哪些是真正有用的知识。在这样的背景下,思阅(SRead)应运而生。

思阅

什么是思阅(SRead)?

思阅是一款基于人工智能(AI)的阅读助手,专门为提升你的阅读体验而设计。它不仅仅是一个电子书阅读器,更是你的个人阅读顾问和助手。

智能问答:随时解疑

不再需要在阅读中断的情况下去网上搜索或查阅其他资料,思阅的智能问答功能能够即时为你解答与文章内容或主题相关的任何问题。

浅谈生成式 AI 技术:检索增强生成 RAG

· 阅读需 4 分钟
Marvin Zhang
软件工程师 & 开源爱好者

引言

如今,生成式 AI (Generative AI)的应用雨后春笋的涌现出来,让人应接不暇。而大型语言模型(LLM,Large Language Model),随着 ChatGPT 的发布而变得异常火热,是生成式 AI 应用的一个典型。但是,LLM 存在缺陷。其中一个比较大的问题在于幻觉(Hallucination):对于不熟悉的问题,LLM 会瞎编乱造,编造出看似专业却没有任何事实依据的答案。而为了解决这个问题,很多基于 AI 的知识问答系统采用了**检索增强生成(RAG)**技术,从而让 LLM 能够做出基于事实的回答,从而消除幻觉。本篇文章将简单介绍 RAG 是如何在知识问答系统中发挥作用的。

LLM

要理解 RAG,我们首先需要简单理解一下 LLM。其实,LLM 在大量的参数训练下,已经可以完成很多难以置信的 NLP 任务,例如问答、写作、翻译、代码理解等等。但是,由于 LLM 的“记忆”停留在预训练时刻,肯定会存在它不知道的知识和问题。例如,OpenAI 开发的 ChatGPT 就不能回答 2021 年 9 月之后的问题。此外,由于幻觉的存在,LLM 会显得很有想象力且缺乏事实依据。因此,我们可以将 LLM 比做一个知识渊博且全能的智者,可以干很多事情,但却失忆了,记忆只停留在某一时间之前,而且不能形成新的记忆

而为了让这个智者能够在现代试题考试中得到高分,我们该怎么做呢?答案就是 RAG。

实战数据科学: 如何利用 sklearn 轻松上榜 Kaggle 入门 NLP 竞赛

· 阅读需 7 分钟
Marvin Zhang
软件工程师 & 开源爱好者

引子

Kaggle 是一个面向数据科学家、机器学习工程师和数据分析师的在线社区和数据科学竞赛平台,上面有很多带有奖励的数据科学竞赛(Competition)以及数据集(Dataset)。Kaggle 社区在数据科学领域非常出名,很多互联网业界大厂也在上面发布有奖竞赛,竞赛金额从几万到百万美元不等。本文介绍的是最近参与的 Kaggle 一个入门 NLP 竞赛,没有现金奖励,但可以学习到 NLP 相关的机器学习知识。

Kaggle Competition

竞赛简介

这个数据科学竞赛是希望竞赛参与者通过给定 Twitter 上的一条推文(Tweet),来判断推文是否是关于一场真实的灾害(Disaster)。下图是某一条推文的情况,推文中有 "ABLAZE"(燃烧的)关键词,预示着该推文是说有房子燃起来了。

Disater Tweet

浅谈理论:为什么图论是当今各行各业必备的知识?

· 阅读需 6 分钟
Marvin Zhang
软件工程师 & 开源爱好者

引子

“若无必要,勿增实体”--奥卡姆剃刀原理

图论(Graph Theory)是被大众严重低估的数学基础理论。它不是研究图像、图片、图表之类的理论,而是一个抽象而简单的数学理论。图论中的(Graph)是一个抽象概念,非常类似于关系网络(Relationship Network),有对应的节点(Node)或顶点(Vertext),节点之间又有关联关系或(Edge)。图论的概念非常简单,就是图、节点、边。本篇文章将简单的介绍一下图论的基础概念,以及图论在真实世界中的应用。(注意!本文不是科学论文,所以不会有枯燥的数学公式,请放心食用)

graph

图论简述

在图论中,有三个重要的概念:

  1. 节点(Node):可以理解为某个实体,例如关系网络中的张三、李四、王五;
  2. (Edge):可以理解为实体间的关系,例如,张三和李四是夫妻,王五是他们儿子;
  3. (Graph):可以理解为所有节点、边的集合,例如张三、李四、王五组成的幸福一家。

从上面的三个基本概念,我们可以推断出节点之间的关系,例如李四的大哥李一,就是王五的舅舅,王五也是他的侄子。

实战数据分析: 利用开源项目 Superset 搭建自助数据分析平台

· 阅读需 7 分钟
Marvin Zhang
软件工程师 & 开源爱好者

引子

数据分析(Data Analytics)以及商业智能(Business Intelligence)是很多企业实现数字化战略的重要业务模块。我们之前在《浅谈数据:数据领域需要掌握些什么?》中介绍过数据领域中不可获取的部分,也就是架构流程方面的软件工具辅助服务。本文将介绍的数据分析开源平台 Apache Superset 就能提供这样的服务。本文将简单介绍如何安装部署以及使用 Superset。

Superset Official Site

Superset 简介

Superset 是 Apache 基金会孵化的开源自助数据分析平台,可以看成开源版的 Power BITableau,不过 Superset 的交互界面仅限于 Web。整个系统基于 Python Flask,集成了 MySQL、Postgres、SQL Server 等主流关系性数据库,以及 ElasticSearch、ClickHouse、Snowflake 等现代数据库。前端可视化分析界面跟 Power BI 和 Tableau 非常类似,操作也相对简便。因此,如果需要搭建一个类似 Power BI 或 Tableau 这样的企业级数据分析平台,在不氪金的情况下,Superset 是个非常不错的选择。

Superset Dashboard

实战 CI/CD:微软加持的 GitHub Actions,怎么用才香?

· 阅读需 6 分钟
Marvin Zhang
软件工程师 & 开源爱好者

引子

GitHub Actions 是 GitHub 官方推出的 CI/CD 工作流(Workflow)服务,旨在减轻开源贡献者们运维负担,让云原生 DevOps 赋能开源社区。如果您不知道什么是 CI/CD、DevOps,请参考笔者之前在夜幕团队公众号写的文章《用开源软件轻松打造企业级DevOps工作流》。笔者的开源项目,例如 CrawlabArtiPub,都集成了 GitHub Actions。作为开发贡献者,我认为 GitHub Actions 不仅好用,而且是真香免费(这是最主要的)。希望很多不了解如何将 GitHub Actions 运用在自己的开源项目的开发者,可以从本文中得到灵感。

从官方文档开始

对于 GitHub Actions 不熟悉的朋友,我强烈推荐你先阅读 GitHub Actions 官方文档,这里有视频介绍快速开始例子、概念、原理等等。如果把文档研究透了,再结合自己平时运用 CI/CD 的经验,应该可以很轻松的在 GitHub 上做 DevOps。本文所用到的相关代码,都可以在官方文档上找到对应的参考指南。

GitHub Actions Docs

思路

先理清一下我们想要实现什么:用 GitHub Actions 来运行仓库中的爬虫获取每日 GitHub Trending

除了甘特图,你还应该了解些什么软件项目管理知识

· 阅读需 18 分钟
Marvin Zhang
软件工程师 & 开源爱好者

前言

A bad plan is better than no plan.

坏计划也好过没有计划。--彼得·蒂尔《从0到1》

在软件开发工程中,很少会有单打独斗的程序员。这是因为现代较常见的软件项目通常都非常复杂,所要求的人力、资源、时间也比较多,仅由一个开发者来完成大型软件项目无异于 “愚公移山”。因此,软件开发通常离不开团队协作和项目管理。所谓项目管理(Project Management),简单来就是有序的组织、规划、执行并完成项目中各个任务的一种方法论。当然,实际项目管理的范畴还远不止这些,通常还会涉及资源调配、优先级制定、进度追踪等。它是工业革命的产物,也是现代管理学的分支,它能够大幅提高工程完成效率以及成功率。本文讨论的主要是软件项目管理,相较于传统的建筑工程、机械工程等项目管理有很大的不同。早期的 IT 项目管理来自于建筑工程等传统项目管理方法论,在信息时代早期扮演了重要的角色,大幅提高了软件开发和协同效率。然而,随着 IT 行业高速发展,消费者产品需求瞬息万变,市场形势变得越来越不确定(Volatile),传统的软件项目管理模式已经不能再满足软件开发需求。因此,现代软件开发模式,例如敏捷开发(Agile Development),应运而生,成为了很多互联网企业的首选。

传统项目管理模式(例如瀑布流)有什么弊端?现代项目管理模式(例如敏捷)又有什么改进?我们是否应该完全摈弃瀑布流模式,全面拥抱敏捷开发?作为一个程序员,是否应该掌握一些项目管理知识以及相关工具?作为一个团队领导,应该如何制定项目管理流程保证开发效率和质量?如果读者有类似上述问题的疑惑,本篇文章将为您详细分析和解答。

传统方法论