跳到主要内容

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

人工智能和机器学习

查看所有标签

Crawlab AI: 借助大语言模型 (LLM) 打造智能爬虫

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

“如果我当年去问顾客他们想要什么,他们肯定会告诉我:一匹更快的马” -- 亨利•福特

前言

当我初入职场时,作为数据分析师的我,偶然体验到了网络爬虫(Web Crawler)自动化提取网页数据的能力,自此我一直对这个神奇的技术充满好奇。随着后来我不断钻研爬虫技术,逐渐了解到网络爬虫的核心技术,其中就包括网页解析(Parsing),即通过分析网页 HTML 结构而构建基于 XPath 或 CSS Selector 数据提取规则的过程。这个过程长期以来都需要人工介入,虽然对于爬虫工程师来说相对简单,但如果需要大规模抓取,这个过程是非常消耗时间的,而且随着网页结构变化会增加爬虫维护成本。本篇文章将介绍我开发的基于**大语言模型(LLM)**的智能爬虫产品:Crawlab AI。虽然它还处于早期开发阶段,但已经展现出强大的潜力,有望让数据从业者轻松获取数据。

相关工作

作为爬虫管理平台 Crawlab 的创始人,一直都热衷于让数据获取变得简单和轻松。跟数据从业者不断交流,我意识到智能爬虫(或通用爬虫)的大量需求,即不用人工编写解析规则就可以抓取任何网站的目标数据。当然,也不止我一个人在研究和试图解决这个问题:2020年1月,青南大佬发布了基于标点密度的通用文章解析库 GeneralNewsExtractor,可以 4行代码实现通用新闻爬虫;2020年7月,崔庆才大佬发布了 GerapyAutoExtractor,基于 SVM 算法实现了列表页数据抓取;2023年4月,我通过高维度向量聚类算法,开发了 Webspot,同样可以自动提取列表页。这些开源软件的主要问题在于,识别的精准度与人工编写的爬虫规则有一定差距。

此外,商业爬虫软件 Diffbot八爪鱼 通过自研的机器学习算法,也实现了部分通用数据抓取的功能。但可惜的是它们的使用成本相对较高。例如,Diffbot 的最低套餐就需要每月支付 299 美元的订阅费。

SRead Chrome Extension Released!

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

Introduction to SRead

SRead is a smart reading assistant, whether you enjoy reading articles or viewing electronic papers, you can utilize SRead for assisted reading. SRead supports intelligent summarization, capable of extracting key information from the reading material and summarizing it; additionally, it can perform intelligent Q&A, answering any relevant information within the article. Moreover, SRead's mind map feature can help readers quickly grasp the outline of the entire piece.

Chrome Extension

The new Chrome extension of SRead brings a major upgrade to the browser reading experience. Once this extension is installed, users can directly enjoy all the features of SRead on Chrome browser without the need to download any additional applications. This extension includes a simplified toolbar, making it easy for users to quickly access the intelligent summarization, intelligent Q&A, and mind-mapping features while reading. Another important feature of this extension is that it can automatically recognize web page content, providing real-time intelligent assistance to users, making the reading experience smoother and more efficient.

Installation and Usage

Installing the SRead Chrome extension is very straightforward. Users first need to log on to the SRead website (https://sread.ai), and register/login with Gmail or WeChat. Then visit the Chrome Web Store, search for "SRead", and click the "Add to Chrome" button. Once the installation is complete, the SRead icon will appear on the toolbar, clicking the icon activates the extension and users can start using it.

Chrome Web Store

实战 AI: Langchain 库中的 OpenAI 函数调用 API

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

引言

在探索人工智能领域时,我们常常需要利用现有的 API 来实现特定的功能。近日,在研究 Langchain 库时,我发现了一个很有趣的功能:利用 OpenAI 的函数调用 API 在一个链中执行特定操作。这不仅展示了如何从 ChatOpenAI 获取结构化输出,还展示了如何创建和执行函数链。这个功能为我们提供了一种新的可能性,使得在一个链中执行多个函数成为可能。通过这种方式,我们能够根据特定的输入,获得结构化的输出,从而为后续的操作提供更准确的数据。

LangChain OpenAI 函数

首先,我们需要了解如何从 ChatOpenAI 获取结构化的输出。在 Langchain 库中,有一个 create_structured_output_chain 函数,它可以接受一个 Pydantic 类或 JsonSchema 作为结构化输出的格式。通过这种方式,我们可以强制模型返回特定结构的输出,从而方便后续的处理。

例如,我们可以创建一个 Person 类,用于描述一个人的基本信息:

from langchain.pydantic_v1 import BaseModel, Field   

实战 AI:使用Langchain构建高效的知识问答系统

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

引言

知识问答系统(KQA)是自然语言处理领域的核心技术之一,它能够帮助用户从大量数据中快速准确地检索到所需信息。知识问答系统成为了帮助个人和企业快速获取、筛选和处理信息的重要工具。它们在很多领域都发挥着重要作用,例如在线客服、智能助手、数据分析和决策支持等。

Langchain不仅提供了构建基本问答系统的必要模块,还支持更为复杂和高级的问答场景。例如,它可以处理结构化数据和代码,使得我们能够针对数据库或代码库进行问答。这极大地扩展了知识问答系统的应用范围,使其能够适应更多复杂的实际需求。本篇文章将通过一个简单的实战例子,介绍如何使用Langchain构建基本的知识问答系统。

flow.jpeg

实战

下面,我们将通过实战例子手把手介绍如何使用Langchain搭建知识问答系统。

1. 文档加载和预处理

构建知识问答系统的第一步是加载和预处理文档。Langchain提供了WebBaseLoader模块,可以帮助我们轻松加载文档:

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

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

引言

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

核心功能

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

爬虫列表

特色亮点

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

代码编辑

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

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

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

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

思阅

什么是思阅(SRead)?

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

智能问答:随时解疑

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

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

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

引言

如今,生成式 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
软件工程师 & 开源爱好者

引子

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

Kaggle Competition

竞赛简介

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

Disater Tweet

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

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

引子

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

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

graph

图论简述

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

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

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

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

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

引子

数据分析(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