当前位置: 首页 > news >正文

AI书籍大模型微调-基于亮数据获取垂直数据集

大模型的开源,使得每位小伙伴都能获得AI的加持,包括你可以通过AIGC完成工作总结,图片生成等。这种加持是通用性的,并不会对个人的工作带来定制的影响,因此各个行业都出现了垂直领域大模型。

垂直大模型是如何训练出来的

简单来说,就是各个大模型公司通过大量的数据集,训练出一个base模型或SFT模型,就是下图的Pre-trained LLM预训练大模型,这个大模型就是通用大模型。
在基于垂直领域的数据集Custom knowledge进行微调Fine tuning,微调的过程也是一个训练的过程,最终获得一个微调后的垂直领域大模型Fine-tuned LLM。
在这里插入图片描述

如果想制作一个与书籍相关的垂直领域大模型,就需要大量的书籍数据,这时就需要获得相关数据,以下通过亮数据(Bright Data) 完成书籍相关数据的获取工作。

如果获取AI书籍大模型的数据集

想构建一个AI书籍大模型,完成一个更懂人类书籍的大模型,为喜欢阅读书籍的朋友提供定制服务,比如可以更懂古代文献,更懂专业书籍的大模型。首先就需要获取书籍的相关数据,包括评论数据和书籍内容。
数据采集技术很多,基于Python的框架也是足够的丰富,如requests和selenium,这就要求读者会进行网页解析。
对于想快速获取数据集的同学来说,可以基于一个数据采集工具,🌰,本文基于亮数据(Bright Data)获取相关数据集,链接如下:

https://get.brightdata.com/

书籍领域的数据获取

数据获取平台-亮数据(Bright Data)介绍

亮数据(Bright Data) ,是一款低代码爬虫平台,既有现成的爬虫解锁框架,还提供IP代理服务。

亮数据首页
在这里插入图片描述
亮数据提供的产品主要包括代理服务,抓取自动化与数据洞察等
在这里插入图片描述
本文主要基于抓取自动化中的完成数据采集的测试与爬取
在这里插入图片描述

亮数据使用步骤

新用户有亮数据的免费赠送的$,可以率先体验下,比较友好。

1.注册亮数据

点击链接进入主页
亮数据(Bright Data)
在这里插入图片描述
单击登录
在这里插入图片描述
首次使用可以点击注册
在这里插入图片描述
输入必备的信息后,点击创建账户,创建完毕后,可进入控制台

2.创建爬虫任务

在控制台页面可以看到右上角提供了一个AI对话功能
在这里插入图片描述
询问以下如何获取相关数据集
在这里插入图片描述
也可以直接单击代理&抓取集成设置下的代理产品
在这里插入图片描述
单击获取代理产品
在这里插入图片描述

单击开始使用
在这里插入图片描述

输入通道名称为:scraping_browser1_douban
通道描述为:获取某瓣的图书数据

单击向下箭头,也可以切换抓取器类型,这里选择默认的抓取浏览器
在这里插入图片描述
单击添加和确定,完成通道添加
在这里插入图片描述
会提示配置信息
在这里插入图片描述
单击 continue with Scraping browser playground,完成爬虫任务创建

3.生成代码-测试亮数据的ip池

在弹出的页面配置中,选择概览,在选择探索测试环境
在这里插入图片描述
在操作平台中可以切换要生成的爬虫案例代码,这里选择python语言的selenium框架
在这里插入图片描述

按照提示安装selenium依赖

pip3 install selenium

提示如下:

Successfully installed cffi-1.17.1 outcome-1.3.0.post0 pycparser-2.22 pysocks-1.7.1 selenium-4.31.0 sortedcontainers-2.4.0 trio-0.29.0 trio-websocket-0.12.2 wsproto-1.2.0

在本地创建 scrapydemo.py,复制代码到本地

在这里插入图片描述

代码如下,这里的AUTH已经填充完毕,如果需要更改,可以在配置中复制用户名即可

在这里插入图片描述

代码如下:
把测试的网址替换为: http://httpbin.org/get,该网站可以返回请求的信息
备注:这里的代理信息会在后文删除,在使用过程中,替换为自己的信息就好

from selenium.webdriver import Remote, ChromeOptions
from selenium.webdriver.chromium.remote_connection import ChromiumRemoteConnection
from selenium.webdriver.common.by import By
AUTH = 'brd-customer-hl_bb7deac0-zone-scraping_browser1_douban:orrix11nxwh4'
SBR_WEBDRIVER = f'https://{AUTH}@brd.superproxy.io:9515'
def main():print('Connecting to Scraping Browser...')sbr_connection = ChromiumRemoteConnection(SBR_WEBDRIVER, 'goog', 'chrome')with Remote(sbr_connection, options=ChromeOptions()) as driver:print('Connected! Navigating...')# 这里把测试网站替换位 http://httpbin.org/geturl = "http://httpbin.org/get"# url = "https://example.com"driver.get(url)print('Taking page screenshot to file page.png')driver.get_screenshot_as_file('./page.png')print('Navigated! Scraping page content...')html = driver.page_sourceprint(html)
if __name__ == '__main__':main()

运行测试,输出如下:

控制台输出
在这里插入图片描述

保存的页面png如下
在这里插入图片描述
再次运行该代码,返回如下:
在这里插入图片描述
在这里插入图片描述
可以看到两次的地址发生了改变,可以减少被屏蔽ip的情况发生。
同时点击控制台中的左下角的支付,可以查看消费情况
在这里插入图片描述

4.修改代码获取豆瓣的书籍数据(可用代码)
import time
from lxml import etree
import csv
from selenium.webdriver import Remote, ChromeOptions
from selenium.webdriver.chromium.remote_connection import ChromiumRemoteConnection
from selenium.webdriver.common.by import By
AUTH = 'brd-customer-hl_bb7deac0-zone-scraping_browser1_douban:orrix11nxwh4'
SBR_WEBDRIVER = f'https://{AUTH}@brd.superproxy.io:9515'
def main():print('Connecting to Scraping Browser...')sbr_connection = ChromiumRemoteConnection(SBR_WEBDRIVER, 'goog', 'chrome')with Remote(sbr_connection, options=ChromeOptions()) as driver:print('Connected! Navigating...')# url = "http://httpbin.org/get"start_url = "https://book.douban.com/subject_search?search_text=python&cat=1001&start=%25s0"# url = "https://example.com"content = driver.get(start_url)num=0while True:num+=1# 停一下,等待加载完毕time.sleep(2)# 获取网页内容Elementscontent = driver.page_source# 提取数据data_list = etree.HTML(content).xpath('//div[@class="item-root"]')[1:]for data in data_list:item = {}item["name"] = data.xpath("./div/div[1]/a/text()")[0]item["score"] = data.xpath("./div/div[2]/span[2]/text()")[0]with open("./豆瓣图书.csv", "a", encoding="utf-8") as file:writer = csv.writer(file)writer.writerow(item.values())print(item)# 找到后页next = driver.find_element(By.XPATH,'//a[contains(text(),"后页")]')# 判断if next.get_attribute("href"):# 单击next.click()else:# 跳出循环breakif num>3:breakprint('Taking page screenshot to file page.png')driver.get_screenshot_as_file(f'./page{num}.png')print('Navigated! Scraping page content...',num)# html = driver.page_source# print(html)
if __name__ == '__main__':main()

输出如下:

在这里插入图片描述
保存的页面快照如下
在这里插入图片描述

5.删除亮数据的代理

如果数据采集任务完成,我们可以选择删除代理,便于控制使用费用,这点是十分友好的,避免定时爬虫的反复消费。
在这里插入图片描述
删除后状态如下
在这里插入图片描述

通过亮数据的WEB Datasets下载

如果是对爬虫技术不了解的朋友,也可以在亮数据的WEB Datasets中下载数据,步骤如下:

单击Web Datasets -->输入book–>选择Goodreads books
Goodreads是“美国版豆瓣”。
它是全球最大的在线读者社区和图书推荐平台,拥有庞大的书籍数据库,涵盖各种类型的书籍。同时会员数量过亿,分布在全世界各地。Goodreads的用户们可以对读过的书籍撰写书评并打分,其他用户也可以进行点赞、评论,加入讨论、分享观点。

在这里插入图片描述
进入页面后,可以下载样例数据
在这里插入图片描述
下载后的样例如下:
在这里插入图片描述

数据获取总结

如果需要获取垂直领域的数据集,可以通过代理自行下载,也可以查找亮数据(Bright Data) 是否有现有的数据集,这两点可以满足不同的需求,比较友好💯。

垂直大模型举例

氢界专利大模型
在这里插入图片描述

医疗领域大模型
在这里插入图片描述
链接:https://baijiahao.baidu.com/s?id=1808887323039887765


http://www.mrgr.cn/news/99119.html

相关文章:

  • 【Rust 精进之路之第11篇-借用·实践】切片 (Slices):安全、高效地引用集合的一部分
  • 车载测试用例开发-如何平衡用例覆盖度和测试效率的方法论
  • Linux学习——TCP
  • 【Flutter】使用LiveKit和Flutter构建实时视频聊天应用
  • LicheeRV Nano 与Ubuntu官方risc-v 镜像混合
  • [OpenGL]使用OpenGL实现基于物理的渲染模型PBR(下)
  • kotlin知识体系(六) : Flow核心概念与与操作符指南
  • (mac)Grafana监控系统之监控Linux的Redis
  • 【Rust 精进之路之第13篇-生命周期·进阶】省略规则与静态生命周期 (`‘static`)
  • 【SpringBoot】99、SpringBoot中整合RabbitMQ实现重试功能
  • Linux 生产者消费者模型
  • (done) 吴恩达版提示词工程 1. 引言 (Base LLM 和 Instruction Tuned LLM)
  • C++:详解命名空间
  • 【Rust 精进之路之第14篇-结构体 Struct】定义、实例化与方法:封装数据与行为
  • 【TeamFlow】4 团队人员管理系统的实现
  • 【Rust 精进之路之第6篇-流程之舞】控制流:`if/else`, `loop`, `while`, `for` 与模式匹配初窥
  • 【Rust 精进之路之第15篇-枚举 Enum】定义、变体与数据关联:表达多种可能性
  • 【Rust 精进之路之第4篇-数据基石·上】标量类型:整数、浮点数、布尔与字符的精妙之处
  • 【Rust 精进之路之第10篇-借用·规则】引用 (``, `mut`):安全、高效地访问数据
  • 【Rust 精进之路之第2篇-初体验】安装、配置与 Hello Cargo:踏出 Rust 开发第一步