Project Icon

JudgeLM

大语言模型开放场景高效评估技术

JudgeLM是一个用于训练和评估大语言模型评判器的开放平台。通过微调技术,该项目实现了对开放场景中大语言模型的高效评估,评判一致性超过人类水平。JudgeLM提供先进的评判器训练和评估代码,能够处理单一回答、多模态模型、多个回答和多轮对话等任务。此外,该平台还集成了分布式多模型服务系统和Web界面,方便用户使用和部署。

JudgeLM: 经过微调的大语言模型可作为可扩展的评判器


朱良辉1,2, 王兴刚1, 王欣龙2

1华中科技大学, 2北京智源人工智能研究院

概述

JudgeLM

摘要 在开放式场景中评估大语言模型(LLMs)具有挑战性,因为现有的基准和指标无法全面衡量它们。为解决这个问题,我们提出通过微调LLMs作为可扩展的评判器(JudgeLM),以在开放式基准中高效有效地评估LLMs。我们首先提出了一个全面的、大规模的、高质量的数据集,包含用于微调高性能评判器的任务种子、LLMs生成的答案和GPT-4生成的判断,以及一个用于评估评判器的新基准。我们训练了不同规模的JudgeLM,从7B、13B到33B参数,并对其能力和行为进行了系统分析。然后,我们分析了将LLM微调为评判器的关键偏差,并将其视为位置偏差、知识偏差和格式偏差。为解决这些问题,JudgeLM引入了一系列技术,包括交换增强、参考支持和参考丢弃,这些技术显著提高了评判器的性能。JudgeLM在现有的PandaLM基准和我们提出的新基准上都获得了最先进的评判器性能。我们的JudgeLM效率很高,JudgeLM-7B只需3分钟就可以用8个A100 GPU评判5K个样本。JudgeLM与教师评判器达成了高度一致,一致性超过90%,甚至超过了人与人之间的一致性。JudgeLM还展示了扩展能力,可以作为单一答案、多模态模型、多个答案和多轮对话的评判器。

JudgeLM是一个用于训练、服务和评估可扩展大语言模型评判器的开放平台。

  • JudgeLM是一个可扩展的语言模型评判器,旨在评估开放式场景中的LLMs。它实现了超过90%的一致性,超过了人与人之间的一致性。
  • JudgeLM数据集包含10万个用于训练的评判样本和5千个用于验证的评判样本。所有评判样本都有GPT-4生成的高质量判断。

JudgeLM的核心特性包括:

  • 用于训练和评估最先进LLM评判器的代码。
  • 处理扩展任务的广泛能力。(例如,单一答案、多模态模型、多个答案和多轮对话的评判)
  • 具有Web用户界面的分布式多模型服务系统。

新闻

  • [2023年10月] 我们发布了JudgeLM:经过微调的大语言模型可作为可扩展的评判器。查看论文

目录

安装:从源代码

  1. 克隆此仓库并进入JudgeLM文件夹
git clone https://github.com/baaivision/JudgeLM
cd JudgeLM
  1. 安装包
conda create -n judgelm python=3.10.10 -y
conda activate judgelm
pip3 install --upgrade pip 
pip3 install -e .
pip install flash-attn==2.0.4 --no-build-isolation

模型权重

JudgeLM基于LLaMA,应在LLaMA的模型许可下使用。

模型是否有参考?一致性↑精确度↑召回率↑F1↑一致性↑
JudgeLM-7B81.1169.6778.3972.2183.57
JudgeLM-7B84.0875.9282.5578.2884.46
JudgeLM-13B84.3373.6980.5176.1785.01
JudgeLM-13B85.4777.7182.9079.7787.23
JudgeLM-33B 🔥89.0380.9784.7682.6491.36
JudgeLM-33B 🔥89.3284.0086.2184.9892.37

评估

judge_pairs

judge_mmvet

JudgeLM可以评判LLMs的开放式答案,以及多模态模型。 请参阅 judgelm/llm_judge 中的 JudgeLM 运行说明。

使用网页图形界面提供服务

gradio

我们使用 gradio 为用户提供网络服务器和界面,以评估大语言模型在开放式任务中的表现。 可以在这里试用演示。

请参阅 judgelm/serve 中运行 JudgeLM 网络服务器的说明。

微调

数据

JudgeLM-100K 数据集可在 HuggingFace Datasets 获取。

代码和超参数

我们的代码基于 Vicuna,并增加了对答案对评判的支持。 我们使用的超参数与 Vicuna 相似。

超参数全局批量大小学习率训练轮数最大长度权重衰减
JudgeLM-13B1282e-5320480

使用本地 GPU 微调 JudgeLM-7B

  • 您可以使用以下命令在 4 个 A100 (40GB) 上训练 JudgeLM-7B。请将 --model_name_or_path 更新为 Vicuna 权重的实际路径,将 --data_path 更新为 JudgeLM 数据的实际路径。
torchrun --nproc_per_node=4 --master_port=20001 judgelm/train/train_mem.py \
    --model_name_or_path="/share/project/lianghuizhu/vicuna-weights-collection-v1.3/vicuna-7b-v1.3" \
    --data_path /share/project/lianghuizhu/JudgeLM-Project/JudgeLM/judgelm/data/JudgeLM/judgelm_train_100k.jsonl \
    --bf16 True \
    --output_dir="/home/zhulianghui/ProjectC_ChatGPT/alpaca/output/judgelm-debug-evaluator" \
    --num_train_epochs 3 \
    --per_device_train_batch_size 1 \
    --per_device_eval_batch_size 1 \
    --gradient_accumulation_steps 32 \
    --evaluation_strategy no \
    --save_strategy steps \
    --save_steps 1000 \
    --save_total_limit 1 \
    --learning_rate 2e-5 \
    --weight_decay 0. \
    --warmup_ratio 0.03 \
    --lr_scheduler_type cosine \
    --logging_steps 1 \
    --fsdp "full_shard auto_wrap offload" \
    --fsdp_transformer_layer_cls_to_wrap "LlamaDecoderLayer" \
    --tf32 True \
    --model_max_length 2048 \
    --gradient_checkpointing True \
    --run_name 7B-full-model \
    --swap_aug_ratio 0.5 \
    --ref_drop_ratio 0.5

提示:

  • 如果您使用的是不支持 FlashAttention 的 V100,可以使用 xFormers 中实现的内存高效注意力。安装 xformers 并将上面的 judgelm/train/train_mem.py 替换为 judgelm/train/train_xformers.py
  • 如果您遇到由于 "FSDP Warning: When using FSDP, it is efficient and recommended... " 导致的内存不足,请参见这里的解决方案。
  • 如果您在模型保存过程中遇到内存不足,请参见这里的解决方案。

致谢 :heart:

本项目基于 Vicuna(博客代码)、PandaLM(论文代码)、LLM-Blender(论文代码)。感谢他们出色的工作。

引用

本仓库中的代码(训练、服务和评估)主要是为以下论文开发或源自该论文。 如果您觉得本仓库有帮助,请引用它。

@article{zhu2023judgelm,
      title={JudgeLM: Fine-tuned Large Language Models are Scalable Judges}, 
      author={Lianghui Zhu and Xinggang Wang and Xinlong Wang},
      year={2023},
      eprint={2310.17631},
      archivePrefix={arXiv},
      primaryClass={cs.CL}
}
项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

SubCat字幕猫

SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。

Project Cover

美间AI

美间AI创意设计平台,利用前沿AI技术,为设计师和营销人员提供一站式设计解决方案。从智能海报到3D效果图,再到文案生成,美间让创意设计更简单、更高效。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

Project Cover

天工AI音乐

天工AI音乐平台支持音乐创作,特别是在国风音乐领域。该平台适合新手DJ和音乐爱好者使用,帮助他们启动音乐创作,增添生活乐趣,同时发现和分享新音乐。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号