OpenPO Preference Dataset|语言模型数据集|偏好数据数据集
收藏OpenPO 🐼
概述
OpenPO 是一个开源库,旨在简化收集、管理和利用偏好数据以优化大型语言模型(LLM)的过程。通过自动化不同LLM输出的比较并收集人类偏好,OpenPO帮助开发者以最小的努力构建更好、更精细调优的语言模型。
主要功能
- 多LLM支持:支持从HuggingFace和OpenRouter调用任何模型,包括GPT、Claude、Llama和Mixtral等流行模型。
- OpenAI API兼容性:无缝集成OpenAI风格的客户端API,便于迁移和熟悉的开发者体验。
- 灵活存储:可插拔的适配器支持多种数据持久化选项。
- 精细调优准备:结构化数据输出,可立即用于模型精细调优和偏好优化。
安装
从PyPI安装(推荐)
使用pip安装OpenPO: bash pip install openpo
从源码安装
克隆仓库后运行以下命令: bash cd openpo poetry install
快速开始
默认情况下,OpenPO客户端使用HuggingFace的InferenceClient调用HuggingFace Model Hub上的模型。
python import os from openpo.client import OpenPO
client = OpenPO(api_key="your-huggingface-api-key")
response = client.chat.completions.create_preference( model="Qwen/Qwen2.5-Coder-32B-Instruct", messages=[ {"role": "system", "content": PROMPT}, {"role": "system", "content": MESSAGE}, ], diff_frequency=0.5, # 生成偏好响应50%的时间 )
print(response.choices[0].message.content)
OpenPO也支持OpenRouter。
python import os from openpo.client import OpenPO
client = OpenPO( api_key=your-openrouter-api-key, base_url="https://openrouter.ai/api/v1/chat/completions" )
response = client.chat.completions.create_preference( model= "qwen/qwen-2.5-coder-32b-instruct", message=[ {"role": "system", "content": PROMPT}, {"role": "user", "content": MESSAGE}, ], diff_frequency=0.5 )
print(response.choices[0].message.content)
可以通过pref_params
参数控制第二个响应的随机性。当前支持的参数包括temperature
和frequency_penalty
。
python response = client.chat.completions.create_preference( model="Qwen/Qwen2.5-Coder-32B-Instruct", message=[ {"role": "system", "content": PROMPT}, {"role": "user", "content": MESSAGE}, ], diff_frequency=0.5, pref_params={"temperature": 1.5, "frequency_penalty": 0.5}, )
数据保存
使用提供者轻松上传和下载数据。
python import os from openpo.client import OpenPO from openpo.providers.huggingface import HuggingFaceStorage
storage = HuggingFaceStorage(repo_id="my-dataset-repo", api_key="hf-token") client = OpenPO(api_key="your-huggingface-token")
preference = {} # 偏好数据需要以{"prompt": ..., "preferred": ..., "rejected": ...}格式保存以进行精细调优 storage.save_data(data=preference, filename="my-data.json")
结构化输出(JSON模式)
OpenPO支持使用Pydantic模型进行结构化输出。
python from pydantic import BaseModel from openpo.client import OpenPO
client = OpenPO(api_key="your-huggingface-api-key")
class ResponseModel(BaseModel): response: str
res = client.chat.completions.create_preference( model="Qwen/Qwen2.5-Coder-32B-Instruct", messages=[ {"role": "system", "content": PROMPT}, {"role": "system", "content": MESSAGE}, ], diff_frequency=0.5, response_format=ResponseModel, )
试用
设置环境变量后运行以下命令以在本地试用演示: bash export HF_API_KEY=<your-api-key> docker compose up --build

MultiTalk
MultiTalk数据集是由韩国科学技术院创建,包含超过420小时的2D视频,涵盖20种不同语言,旨在解决多语言环境下3D说话头生成的问题。该数据集通过自动化管道从YouTube收集,每段视频都配有语言标签和伪转录,部分视频还包含伪3D网格顶点。数据集的创建过程包括视频收集、主动说话者验证和正面人脸验证,确保数据质量。MultiTalk数据集的应用领域主要集中在提升多语言3D说话头生成的准确性和表现力,通过引入语言特定风格嵌入,使模型能够捕捉每种语言独特的嘴部运动。
arXiv 收录
中国区域交通网络数据集
该数据集包含中国各区域的交通网络信息,包括道路、铁路、航空和水路等多种交通方式的网络结构和连接关系。数据集详细记录了各交通节点的位置、交通线路的类型、长度、容量以及相关的交通流量信息。
data.stats.gov.cn 收录
VQA
我们提出了自由形式和开放式视觉问答 (VQA) 的任务。给定图像和关于图像的自然语言问题,任务是提供准确的自然语言答案。反映许多现实世界的场景,例如帮助视障人士,问题和答案都是开放式的。视觉问题有选择地针对图像的不同区域,包括背景细节和底层上下文。因此,与生成通用图像说明的系统相比,在 VQA 上取得成功的系统通常需要对图像和复杂推理有更详细的理解。此外,VQA 适合自动评估,因为许多开放式答案仅包含几个单词或一组封闭的答案,可以以多项选择的形式提供。我们提供了一个数据集包含 100,000 的图像和问题并讨论它提供的信息。提供了许多 VQA 基线,并与人类表现进行了比较。
OpenDataLab 收录
FER2013
FER2013数据集是一个广泛用于面部表情识别领域的数据集,包含28,709个训练样本和7,178个测试样本。图像属性为48x48像素,标签包括愤怒、厌恶、恐惧、快乐、悲伤、惊讶和中性。
github 收录
LinkedIn Salary Insights Dataset
LinkedIn Salary Insights Dataset 提供了全球范围内的薪资数据,包括不同职位、行业、地理位置和经验水平的薪资信息。该数据集旨在帮助用户了解薪资趋势和市场行情,支持职业规划和薪资谈判。
www.linkedin.com 收录