🚀 Llama-3-8B-Web
WebLlama
借助 Meta Llama 3 的强大能力,能够帮助你构建强大的代理,代表你进行网页浏览。其首款模型 Llama-3-8B-Web
在 WebLINX
基准测试中,零样本情况下超越 GPT - 4V 达 18%。
🚀 快速开始
你可以参考以下代码示例,使用 WebLlama
模型进行网页浏览代理的操作:
from datasets import load_dataset
from huggingface_hub import snapshot_download
from transformers import pipeline
valid = load_dataset("McGill-NLP/WebLINX", split="validation")
snapshot_download("McGill-NLP/WebLINX", "dataset", allow_patterns="templates/*")
template = open('templates/llama.txt').read()
state = template.format(**valid[0])
agent = pipeline(model="McGill-NLP/Llama-3-8b-Web", device=0, torch_dtype='auto')
out = agent(state, return_full_text=False)[0]
print("操作:", out['generated_text'])
action = process_pred(out['generated_text'])
env.step(action)
✨ 主要特性
- 强大的性能:在
WebLINX
基准测试中,超越 GPT - 4V(零样本)达 18%,在域外测试集上整体得分 28.8%(GPT - 4V 为 10.5%)。
- 精准的决策:能选择更有用的链接(seg - F1:34.1% 对比 18.9%),点击更相关的元素(IoU:27.1% 对比 13.6%),并生成更符合要求的响应(chr - F1:37.5% 对比 3.1%)。
- 广泛的应用:适用于从简单的指令跟随式网页导航到复杂的对话引导式浏览等多种任务。
📦 安装指南
文档未提及具体安装步骤,暂不提供。
💻 使用示例
基础用法
from datasets import load_dataset
from huggingface_hub import snapshot_download
from transformers import pipeline
valid = load_dataset("McGill-NLP/WebLINX", split="validation")
snapshot_download("McGill-NLP/WebLINX", "dataset", allow_patterns="templates/*")
template = open('templates/llama.txt').read()
state = template.format(**valid[0])
agent = pipeline(model="McGill-NLP/Llama-3-8b-Web", device=0, torch_dtype='auto')
out = agent(state, return_full_text=False)[0]
print("操作:", out['generated_text'])
action = process_pred(out['generated_text'])
env.step(action)
高级用法
文档未提及高级用法代码示例,暂不提供。
📚 详细文档
建模
我们的首个代理是基于最近由 Meta GenAI 团队发布的 Meta-Llama-3-8B-Instruct
模型进行微调的。我们在 WebLINX
数据集上对该模型进行了微调,该数据集包含超过 100K 个网页导航和对话实例,每个实例都由专业注释人员收集和验证。我们使用了 24K 个精心挑选的子集进行数据训练。训练和评估数据可在 Huggingface Hub 上以 McGill-NLP/WebLINX
的形式获取。
关于 WebLlama
WebLlama |
我们项目的目标是构建有效的以人为中心的网页浏览代理。我们不想取代用户,而是为他们配备强大的助手。 |
建模 |
我们基于前沿的库来训练用于网页导航任务的 Llama 代理。我们将提供训练脚本、优化的配置以及训练前沿 Llama 模型的说明。 |
评估 |
用于在真实网页浏览场景中测试 Llama 模型的基准测试。这包括通过对话进行的“以人为中心”的浏览(WebLINX ),并且我们很快将添加更多用于自动网页导航的基准测试(例如 Mind2Web)。 |
数据 |
我们的首个模型在超过 24K 个网页交互实例上进行了微调,包括 点击 、文本输入 、提交 和对话行为。我们希望持续整理、编译并发布用于训练更好代理的数据集。 |
部署 |
我们希望使 Llama 网页代理能够轻松集成到现有的部署平台中,包括 Microsoft 的 Playwright、ServiceNow Research 的 BrowserGym 以及其他合作伙伴。 |
评估
我们认为仅通过简短的演示视频来判断一个代理的性能是不够的。简单来说,如果没有好的基准测试,我们就无法判断一个代理是否优秀。我们需要在广泛的任务上系统地评估代理,从简单的指令跟随式网页导航到复杂的对话引导式浏览。
这就是我们选择 WebLINX
作为首个基准测试的原因。除了训练集之外,该基准测试还有 4 个真实世界的分割集,旨在测试多个维度的泛化能力:新网站、新领域、未见的地理位置以及“用户无法看到屏幕并依赖对话”的场景。它还涵盖了 150 个网站,包括预订、购物、写作、知识查询,甚至像操作电子表格这样的复杂任务。
数据
尽管来自 WebLINX
的 24K 个训练示例为训练一个有能力的代理提供了良好的起点,但我们认为需要更多的数据来训练能够泛化到广泛网页导航任务的代理。尽管该模型已经在 150 个网站上进行了训练和评估,但仍有数百万个网站是模型从未见过的,而且每天都有新的网站被创建。
这促使我们持续整理、编译并发布用于训练更好代理的数据集。作为下一步,我们将把 Mind2Web
的训练数据纳入其中,该数据也涵盖了超过 100 个网站。
部署
我们正在努力使你能够轻松地将 Llama 网页代理部署到网页上。我们希望将 WebLlama
集成到现有的部署平台中,包括 Microsoft 的 Playwright、ServiceNow Research 的 BrowserGym 以及其他合作伙伴。
代码
用于微调模型并在 WebLINX
基准测试上进行评估的代码现已可用。你可以在 modeling 中找到详细说明。
🔧 技术细节
文档未提及足够详细的技术实现细节,暂不提供。
📄 许可证
本项目使用 llama3
许可证。使用此模型即表示你接受 Meta Llama 3 社区许可协议 的条款。
📖 引用
如果你在研究中使用了 WebLlama
,请引用以下论文(数据、训练和评估最初基于此论文):
@misc{lù2024weblinx,
title={WebLINX: Real-World Website Navigation with Multi-Turn Dialogue},
author={Xing Han Lù and Zdeněk Kasner and Siva Reddy},
year={2024},
eprint={2402.05930},
archivePrefix={arXiv},
primaryClass={cs.CL}
}