在人工智能的世界里,数据是驱动创新和提升模型性能的核心动力。尤其对于大型预训练模型和微调模型,数据的质量直接决定了模型的能力。特别是在处理AI代码相关任务时,高质量的数据集更是不可或缺的基础。然而,构建这样一个高质量且符合需求的AI数据集,往往需要克服许多挑战——从获取到清洗,再到格式化,环环相扣,精细的操作和策略至关重要。
针对这一问题,本文将分享两种实用的解决方案:一种是基于动态住宅代理 + 手动处理的传统方式,另一种则是通过Web Scraper API工具实现的自动化数据抓取。无论你是偏好手动定制化的数据采集方式,还是希望借助自动化工具高效生成数据集,这两种方法都能帮助你快速高效地构建出高质量的AI代码数据集。
@toc
在许多情况下,尽管新的自动化工具层出不穷,传统的手动数据采集方法依然在一些特定场景中发挥着重要作用,尤其是当目标数据源的结构复杂,或者需要进行深度定制化处理时。这里,我们以GitHub仓库的issues数据采集为例,详细讲解如何通过动态住宅代理和手动处理方式获取高质量数据集。
动态住宅代理是一种利用住宅IP地址池进行数据抓取的方法。通过不断切换IP地址,模拟真实用户的行为,可以有效避免在抓取大量数据时遭遇封禁或速率限制的情况。住宅代理提供了一个真实的IP地址来源,能够在数据抓取过程中实现更高的隐蔽性和稳定性。
操作步骤:
操作步骤演示:
点击左侧第一个菜单-> proxies&Scraping->点击 开始使用创建一个通道 即可
以GitHub仓库为例,GitHub的API在请求频率上有一定限制。为避免超出API的请求频率限制,可以采用分页读取数据的方式,逐步获取所有的issues数据。
操作步骤:
page
和per_page
,设置适当的参数进行分页抓取。详细步骤演示:
抓取到的数据通常是杂乱无章的JSON或者HTML格式,这些数据往往需要经过清洗和转换,才能成为训练AI模型所需的结构化数据。
操作步骤:
详细步骤:
# 处理获取的数据
for issue in issues_data:
issue_info = {
"issue_id": issue['id'],
"title": issue['title'],
"url": issue['html_url'],
"state": issue['state'],
"created_at": issue['created_at'],
"updated_at": issue['updated_at'],
"closed_at": issue['closed_at'], # 已关闭时间
"user": issue['user']['login'],
"comments": issue['comments'],
"labels": [label['name'] for label in issue['labels']] # 提取标签
}
all_issues.append(issue_info)
# 保存为 CSV 文件
df = pd.DataFrame(all_issues)
df.to_csv('github_closed_issues_data.csv', index=False, encoding='utf-8')
# 保存为 JSONL 格式
with open('github_closed_issues_data.jsonl', 'w', encoding='utf-8') as jsonl_file:
for issue in all_issues:
# 将每个 issue 以 JSON 格式写入每一行
jsonl_file.write(json.dumps(issue, ensure_ascii=False) + '\n')
完整代码案例:
import requests
import json
import pandas as pd
# 配置亮数据代理
proxy = {
"http": "http://your_proxy_ip:33335", # 将 'your_proxy_ip' 替换为亮数据提供的代理 IP 地址
}
# GitHub Issues API 基础 URL(添加查询参数 state=closed)
base_url = "https://api.github.com/repos/yangzongzhuan/RuoYi/issues"
params = {
"state": "closed",
"per_page": 30, # 每页显示 30 条
"page": 1 # 从第 1 页开始
}
# 请求头(可选)
headers = {
"Accept": "application/vnd.github.v3+json"
}
# 初始化数据列表
all_issues = []
# 循环翻页,直到没有更多数据
while True:
# 发起请求获取已关闭的 issues 数据
response = requests.get(base_url, proxies=proxy, headers=headers, params=params)
# 检查请求是否成功
if response.status_code == 200:
issues_data = response.json()
# 如果没有更多数据,则跳出循环
if not issues_data:
break
# 处理获取的数据
for issue in issues_data:
issue_info = {
"issue_id": issue['id'],
"title": issue['title'],
"url": issue['html_url'],
"state": issue['state'],
"created_at": issue['created_at'],
"updated_at": issue['updated_at'],
"closed_at": issue['closed_at'], # 已关闭时间
"user": issue['user']['login'],
"comments": issue['comments'],
"labels": [label['name'] for label in issue['labels']] # 提取标签
}
all_issues.append(issue_info)
# 增加页面参数以获取下一页数据
params["page"] += 1
else:
print(f"请求失败,错误码: {response.status_code}")
break
# 保存为 CSV 文件
df = pd.DataFrame(all_issues)
df.to_csv('github_closed_issues_data.csv', index=False, encoding='utf-8')
# 保存为 JSONL 格式
with open('github_closed_issues_data.jsonl', 'w', encoding='utf-8') as jsonl_file:
for issue in all_issues:
# 将每个 issue 以 JSON 格式写入每一行
jsonl_file.write(json.dumps(issue, ensure_ascii=False) + '\n')
print("数据抓取成功并保存为 'github_closed_issues_data.csv' 和 'github_closed_issues_data.jsonl'")
运行结果:
传统方式虽然效果显著,但通常需要较强的编程能力和一定的业务基础。为了降低门槛并提高效率,我将介绍一款支持可视化操作的数据集处理工具。通过简单的配置,你就可以轻松完成大批量数据的处理,并直接将其输出为所需的数据集格式。
随着AI大模型技术的快速发展,自动化的数据抓取工具逐渐成为了主流,尤其是在需要快速、高效、可定制化的数据抓取时,Web Scraper API工具成为了许多开发者和数据科学家的首选工具。与第一种方式不同,Web Scraper API工具提供了图形化界面以及灵活的配置选项,能够帮助用户更快、更高效地抓取数据。
Web Scraper API工具允许用户通过简单的配置,指定抓取的目标网站及数据源。例如,用户可以通过该工具配置抓取GitHub仓库中的数据、tiktok上的评论数据,甚至是其他技术论坛、博客上的内容。
操作步骤:
详细步骤演示:
入口:https://www.bright.cn/?utm_source=brand&utm_campaign=brnd-mkt_cn_csdn_maotouhu202503&promo=APIS25
选择左侧的web Scrapers->之后选择 web 爬虫库
根据实际业务情况选择即可
对于大规模数据集的管理和存储,Web Scraper提供了云端上传功能,用户可以直接将抓取的数据上传到云存储平台。
操作步骤:
Web Scraper API工具最大的优势之一就是能够自动化生成符合机器学习要求的数据集。通过预定义的配置,工具会自动抓取并处理数据,转化为机器学习中常用的格式。
操作步骤:
运行中...
等待运行完成即可
可根据实际情况选择需要 下载的数据集格式,支持 json,jsonl,csv等多种格式。
下载后的数据集格式如下:
基本操作步骤就这些,大家可以根据自己的实际业务场景调整。
在AI大模型的训练过程中,数据的质量和获取效率至关重要。无论是传统的动态住宅代理 + 手动处理方式,还是更为现代的Web Scraper API工具,二者都各有优势,具体使用哪一种方案取决于团队的需求、技术能力以及目标数据源的复杂性。
通过本文的操作步骤演示,大家可以更清楚地了解如何使用这两种方案高效地构建高质量的数据集。随着AI技术的不断发展,未来的数据采集和处理工具将变得越来越智能化和自动化,帮助我们更快速、更便捷地获取高质量数据,为AI模型的训练提供强有力的支持。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。