大模型的開源,使得每位小伙伴都能獲得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