作者: admin

  • 🚀 从零到一:LLMBox让大语言模型训练与应用触手可及

    🌟 引言:开启AI新纪元

    在人工智能的浩瀚宇宙中,大语言模型(Large Language Models, LLMs)无疑是当前最耀眼的星辰。它们就像是智能世界中的”万能钥匙”,能够解锁无数可能性的大门。然而,对于许多研究者和开发者来说,驾驭这些强大的模型却如同驯服一匹烈马,既充满挑战,又令人向往。今天,让我们一起揭开一个令人兴奋的项目面纱——LLMBox,这个项目将彻底改变我们与大语言模型互动的方式!

    想象一下,如果有一个工具箱,里面装满了训练和使用大语言模型所需的一切工具,会是什么样子?这正是LLMBox的愿景。它就像是为AI世界量身定制的瑞士军刀,集训练、评估、应用于一体,让每个人都能轻松驾驭大语言模型的力量。

    💡 LLMBox:一站式大语言模型解决方案

    LLMBox的诞生,犹如AI领域的一场革命。它不仅仅是一个简单的工具库,更是一个完整的生态系统。通过精心设计的架构,LLMBox在训练和应用阶段都实现了高度的灵活性和效率。让我们深入了解这个神奇工具箱的关键特性:

    🎓 训练篇:打造你的专属AI助手

    1. 多样化的训练策略
      LLMBox支持多种训练策略,包括监督微调(SFT)、预训练(PT)、PPO和DPO。这就像是给你提供了多种”烹饪方法”,你可以根据自己的”口味”(需求)选择最适合的方式来”烹饪”(训练)你的模型。
    2. 丰富的SFT数据集
      提供9种SFT数据集作为训练输入。这就像是给你的AI助手准备了丰富多样的”学习材料”,让它能够从多个角度学习和理解人类的语言和知识。
    3. 分词器词汇表合并
      支持分词器合并功能以扩展词汇表。这就像是给你的AI助手增加了新的”词汇书”,让它能够理解和使用更多的词语,提高语言处理能力。
    4. 数据构建策略
      支持合并多个数据集进行训练,并提供Self-Instruct和Evol-Instruct等数据处理方法。这就像是为你的AI助手设计了个性化的”学习计划”,让它能够更有针对性地学习和进步。
    5. 参数高效微调
      在SFT或PT中支持LoRA和QLoRA。这就像是给你的AI助手提供了”快速学习”的方法,让它能够在短时间内掌握新技能,而不需要重新学习所有内容。
    6. 高效训练
      支持Flash Attention和Deepspeed以提高训练效率。这就像是给你的AI助手配备了”超级大脑”,让它能够更快速地学习和处理信息。

    🚀 应用篇:释放AI的无限潜能

    1. 超快速推理
      通过管理前缀的KV缓存,本地推理速度最高可提升6倍。这就像是给你的AI助手装上了”火箭推进器”,让它能够以惊人的速度回答你的问题。
    2. 全面评估
      支持56+常用数据集和基准,全方位评估LLMs的性能。这就像是为你的AI助手准备了一系列”考试”,全面测试它的各项能力。
    3. 多样化评估方法
      准确重现OpenAI、LLaMA、Mistral等模型原始论文的结果。这就像是让你的AI助手参加”模拟考试”,检验它是否达到了业界标准。
    4. 上下文学习
      支持多种ICL策略,包括KATE、GlobalE和APE。这就像是教会你的AI助手”举一反三”的能力,让它能够更灵活地应对各种问题。
    5. 思维链
      对某些数据集支持三种CoT评估:基础、从少到多和PAL。这就像是训练你的AI助手进行”逻辑推理”,让它能够解决更复杂的问题。
    6. 高效推理支持
      支持vLLM和Flash Attention,提高推理效率。这就像是给你的AI助手配备了”超级计算机”,让它能够更快速地处理复杂任务。
    7. 量化支持
      支持BitsAndBytes和GPTQ量化。这就像是给你的AI助手进行”体积压缩”,让它能够在更小的设备上运行,而不失其强大的能力。

    🛠️ 快速上手:开启你的AI之旅

    安装LLMBox

    首先,让我们通过以下命令克隆LLMBox仓库并安装必要的依赖:

    git clone https://github.com/RUCAIBox/LLMBox.git && cd LLMBox
    pip install -r requirements.txt

    如果你只需要评估OpenAI(或兼容OpenAI的模型,如DeepSeek、Perplexity),可以安装最小依赖:

    pip install -r requirements-openai.txt

    训练你的第一个模型

    让我们从训练一个基于LLaMA-2(7B)的SFT模型开始,使用deepspeed3:

    cd training
    bash download.sh
    bash bash/run_ds3.sh

    这个简单的命令序列就能启动一个强大的模型训练过程。想象一下,你正在为你的AI助手灌输知识,很快它就能成为你的得力助手!

    使用和评估模型

    训练完成后,你可以立即开始使用和评估你的模型。以下命令将在CoPA数据集上以零样本方式运行OpenAI GPT 3.5 turbo模型:

    python inference.py -m gpt-3.5-turbo -d copa

    这就像是让你的AI助手参加一次”能力测试”,看看它在理解因果关系方面的表现如何。

    🌈 进阶应用:释放LLMBox的全部潜力

    训练进阶

    LLMBox支持各种训练策略和数据集构建策略,以及一些提高效率的模块。以下是一个更复杂的训练命令示例:

    python train.py \
        --model_name_or_path meta-llama/Llama-2-7b-hf \
        --data_path data/ \
        --dataset alpaca_data_1k.json \
        --output_dir $OUTPUT_DIR \
        --num_train_epochs 2 \
        --per_device_train_batch_size 8 \
        --gradient_accumulation_steps 2 \
        --save_strategy "epoch" \
        --save_steps 2 \
        --save_total_limit 2 \
        --learning_rate 1e-5 \
        --lr_scheduler_type "constant"

    这个命令看似复杂,但每个参数都有其特定的用途。比如,--num_train_epochs 2设定训练两个完整周期,--learning_rate 1e-5设置一个较小的学习率以微调模型。这就像是为你的AI助手制定了一个详细的”学习计划”,指导它如何更好地吸收新知识。

    分词器合并

    如果你想在非英语语料上预训练模型,LLMBox提供了分词器合并功能:

    bash bash/run_7b_pt.sh

    这个功能就像是教会你的AI助手”新的语言”,让它能够理解和处理更多种类的文本。

    数据集合并

    LLMBox允许你混合多个数据集进行训练:

    bash bash/run_7b_hybrid.sh

    这就像是为你的AI助手提供了”多元化的学习材料”,让它能够从不同角度学习知识,成为一个全面发展的AI助手。

    Self-Instruct和Evol-Instruct

    LLMBox还支持Self-Instruct和Evol-Instruct来增强或改进输入数据:

    python self_instruct/self_instruct.py --seed_tasks_path=seed_tasks.jsonl

    这个功能就像是让AI自己产生”练习题”,通过不断的自我提问和回答来提升能力,真是AI版的”自我修炼”啊!

    🎯 模型评估:全方位测试你的AI助手

    LLMBox提供了广泛的模型支持,包括Huggingface模型(如LLaMA-3、Mistral)、OpenAI、Anthropic、QWen等。它还支持56+种常用数据集,包括HellaSwag、MMLU、GSM8K、GPQA、AGIEval、CEval和CMMLU等。

    以下是一个复杂的评估命令示例:

    CUDA_VISIBLE_DEVICES=0 python inference.py \
      -m llama-2-7b-hf \
      -d mmlu agieval:[English] \
      --model_type chat \
      --num_shot 5 \
      --ranking_type ppl_no_option

    这个命令在MMLU和AGIEval(英语部分)数据集上评估llama-2-7b-hf模型,使用5-shot设置和特定的排序类型。这就像是让你的AI助手参加一次综合能力考试,测试它在多个领域的表现。

    📊 性能展示:见证AI的进化

    以下是一些模型在不同任务上的表现:

    模型Hellaswag (0-shot)MMLU (5-shot)GSM (8-shot)
    GPT-3.5 Turbo79.9869.2575.13
    LLaMA-2 (7B)7645.9514.63

    这些数据展示了不同模型在各种任务上的能力。GPT-3.5 Turbo在所有任务上都表现出色,而LLaMA-2 (7B)虽然在某些任务上稍逊一筹,但考虑到它更小的模型大小,其表现也是相当不错的。

    🚄 高效评估:让AI思考如闪电般迅速

    LLMBox默认启用前缀缓存以提高评估效率,同时也支持vLLM。以下是不同方法的时间对比:

    模型效率方法Hellaswag (0-shot)MMLU (5-shot)GSM (8-shot)
    LLaMA-2 (7B)原始0:05:320:18:302:10:27
    LLaMA-2 (7B)vLLM0:06:370:14:550:03:36
    LLaMA-2 (7B)前缀缓存0:05:480:05:510:17:13

    从这些数据中我们可以看到,使用vLLM或前缀缓存可以显著减少评估时间,尤其是在处理较大数据集如GSM时。这就像是给你的AI助手配备了”超级大脑”,让它能够以惊人的速度处理复杂任务。

    要使用vLLM,你可以使用以下命令:

    python inference.py -m ../Llama-2-7b-hf -d mmlu:abstract_algebra,anatomy --vllm True

    如果你想使用量化评估,可以使用以下命令:

    python inference.py -m model -d dataset --load_in_4bits

    这些高级功能就像是为你的AI助手提供了”思维加速器”,让它能够更快速、更高效地完成各种任务。

    🧠 多样化评估方法:全方位检验AI能力

    LLMBox支持多种评估方法,适用于不同类型的数据集:

    • 对于GenerationDataset,使用generation方法。
    • 对于MultipleChoiceDataset,可以使用get_ppl(变体包括ppl_no_optionppl)或get_prob方法。

    默认情况下,MultipleChoiceDataset使用get_ppl方法和ppl_no_option排序类型,GenerationDataset使用generation方法。你可以通过以下命令更改评估方法:

    python inference.py -m model -d dataset --ranking_type prob

    LLMBox还支持上下文学习和思维链评估:

    python inference.py -m model -d dataset --kate
    python inference.py -m model -d dataset --cot least_to_most

    这些多样化的评估方法就像是为你的AI助手设计了一系列全面的”能力测试”,从不同角度检验它的理解力、推理能力和创造力。

    🌟 结语:AI新纪元的曙光

    LLMBox的出现,无疑为AI领域带来了一股清新的风。它不仅仅是一个工具,更是一个改变游戏规则的创新。通过LLMBox,无论你是AI研究者、开发者,还是对AI充满好奇的探索者,都能轻松驾驭大语言模型的力量。

    想象一下,在不久的将来,每个人都能轻松训练和使用自己的AI助手,解决各种复杂问题,创造令人惊叹的内容。这不再是科幻小说中的场景,而是触手可及的现实。LLMBox正在为我们开启一个AI民主化的新时代,在这个时代,人工智能的力量将不再局限于少数精英,而是成为每个人都能掌握的工具。

    让我们一起拥抱这个激动人心的未来,用LLMBox释放你的创造力,探索AI的无限可能!无论你是想要一个能写诗的AI,还是一个精通科学的虚拟助手,LLMBox都能帮你实现。现在,是时候开始你的AI冒险之旅了!

    📚 参考文献

    1. Brown, T. B., Mann, B., Ryder, N., Subbiah, M., Kaplan, J., Dhariwal, P., … & Amodei, D. (2020). Language models are few-shot learners. arXiv preprint arXiv:2005.14165.
    2. Touvron, H., Lavril, T., Izacard, G., Martinet, X., Lachaux, M. A., Lacroix, T., … & Lample, G. (2023). Llama 2: Open foundation and fine-tuned chat models. arXiv preprint arXiv:2307.09288.
    3. Ouyang, L., Wu, J., Jiang, X., Almeida, D., Wainwright, C., Mishkin, P., … & Lowe, R. (2022). Training language models to follow instructions with human feedback. arXiv preprint arXiv:2203.02155.
    4. Wei, J., Wang, X., Schuurmans, D., Bosma, M., Xia, F., Chi, E., … & Le, Q. (2022). Chain-of-thought prompting elicits reasoning in large language models. arXiv preprint arXiv:2201.11903.
    5. Hu, E. J., Shen, Y., Wallis, P., Allen-Zhu, Z., Li, Y., Wang, S., … & Chen, W. (2022). Lora: Low-rank adaptation of large language models. arXiv preprint arXiv:2106.09685.
  • 从头开发的大语言模型:YuLan-Chat的技术突破与应用前景

    在人工智能领域,大语言模型(Large Language Model, LLM)的发展如火如荼。近日,中国人民大学高瓴人工智能学院的研究团队发布了一款全新的开源大语言模型——YuLan-Chat,引起了学术界和产业界的广泛关注。这款模型不仅在技术上有诸多创新,更体现了中国科研人员在人工智能领域的雄心壮志。让我们一起来深入了解这个名为”玉兰”的AI助手背后的故事。

    玉兰绽放:一朵独特的AI之花

    “玉兰”这个名字的由来颇有意思。它并非随意取的,而是源自中国人民大学的校花——玉兰花。玉兰花素有”木本花卉之王”的美誉,象征着纯洁、高雅和坚韧。研究团队选择这个名字,无疑是希望他们开发的AI助手也能像玉兰花一样,在人工智能的广袤天地中绽放出独特的魅力。

    想象一下,在人工智能的花园里,各种各样的模型如繁花似锦。有些像是娇艳的玫瑰,吸引眼球;有些则像是坚韧的松柏,历久弥新。而YuLan-Chat,就好比是这个花园中的一株玉兰,它不张扬,却散发着独特的芬芳,吸引着那些真正懂得欣赏的人。

    技术创新:YuLan-Chat的三大特色

    YuLan-Chat的开发过程犹如精心培育一株珍稀植物。研究团队从零开始,一步一个脚印地构建这个模型。让我们来看看YuLan-Chat的三大技术特色:

    1. 双语能力的全面提升

    YuLan-Chat就像是一个精通中英双语的翻译官。研究团队在大规模的中英双语数据上进行了深入的预训练,这就好比是让YuLan-Chat在一个中英双语家庭中成长,自然而然地掌握了两种语言的精髓。这种双语能力的提升,使得YuLan-Chat在处理中英文任务时都能游刃有余,犹如一位能在中英两种语境中自如切换的文化大使。

    1. 课程学习:AI的”德智体美劳”全面发展

    YuLan-Chat的训练过程采用了一种叫做”课程学习”的方法。这就好比是为AI设计了一套完整的”教育课程”。就像人类学生需要学习德智体美劳全面发展一样,YuLan-Chat也经历了从基础到进阶的全面训练。

    这个”课程”包括了高质量的指令数据和人类偏好数据。可以想象,研究团队就像是一群耐心的老师,精心设计了各种”课程”,教导YuLan-Chat如何更好地理解人类的需求,如何提供有用、诚实且无害的回答。这种训练方法大大增强了YuLan-Chat在真实场景中的表现,使它不仅”学习成绩”好,还能成为一个”品学兼优”的AI助手。

    1. 扩展词表和上下文长度:让AI更懂”中国话”

    为了更好地支持中文,研究团队还专门为YuLan-Chat扩充了词表和上下文长度。这就好比是给YuLan-Chat配备了一本更加全面的”中文词典”,并且增强了它的”记忆力”。

    扩展词表,意味着YuLan-Chat能够理解和使用更多的中文词汇和表达方式。这就像是让一个外国人学习了更多的中国俚语和成语,能够更贴切地表达中国人的思维方式。

    而扩展上下文长度则相当于增强了YuLan-Chat的”短期记忆”。现在的YuLan-Chat能够处理长达4k个token的上下文,这意味着它在进行长篇对话或者处理复杂问题时,能够保持更长的”注意力”,不会轻易”忘记”之前的对话内容。

    模型家族:YuLan的成长历程

    YuLan-Chat的发展历程,就像是一个家族的成长史。从最初的YuLan-Chat-1系列,到后来的YuLan-Chat-2系列,再到最新的YuLan-Chat-3系列,每一代都有其独特的特点和进步。

    让我们用一个形象的比喻来理解这个家族的成长过程:

    • YuLan-Chat-1系列: 这就像是家族的第一代,刚刚起步,充满潜力。它们基于LLaMA模型,进行了初步的中英文指令微调,为家族奠定了基础。
    • YuLan-Chat-2系列: 这是家族的第二代,已经显示出不俗的实力。它们基于LLaMA-2模型,进行了更深入的双语继续预训练和指令微调,在各项基准测试中都有不错的表现。
    • YuLan-Chat-3系列: 这是目前家族的最新一代,代表着YuLan-Chat的最高水平。它完全从头训练,不再依赖于其他模型,体现了研究团队的独立创新能力。

    每一代的进步,都像是家族基因的优化和传承,让YuLan-Chat在AI的世界中越来越出色。

    性能评估:YuLan-Chat的实力展示

    要评估一个AI模型的能力,就好比是让学生参加各种考试。研究团队对YuLan-Chat进行了多项测试,包括MMLU、C-Eval和AGI-Eval-Gaokao等。这些测试涵盖了从基础知识到高级推理的各个方面,可以全面评估模型的能力。

    让我们用一些具体的例子来理解这些测试:

    1. MMLU测试:这就像是一场涵盖多个学科的综合考试。YuLan-Chat-3-12B在这个测试中的平均得分达到了55.7分,特别是在社会科学领域得分最高,达到64.3分。这说明YuLan-Chat不仅在自然科学方面有所建树,在人文社科领域也有不错的表现。
    2. C-Eval测试:这是一个专门针对中文能力的考试。YuLan-Chat-3-12B在这个测试中的平均得分高达50.5分,远超其他版本。特别是在社会科学领域,得分达到了惊人的61.8分。这充分证明了YuLan-Chat在理解和处理中文内容方面的卓越能力。
    3. AGI-Eval-Gaokao测试:这个测试就像是让AI参加中国高考。YuLan-Chat-3-12B在这个测试中的表现尤为亮眼,平均得分达到49.5分。特别是在历史科目上,得分高达69.4分,展现出了对中国历史文化的深刻理解。

    这些成绩单不仅仅是一串数字,它们展示了YuLan-Chat在各个领域的均衡发展。就像一个全面发展的学生,YuLan-Chat不仅在科学技术领域表现出色,在人文社科方面也有深厚的积累。这种全面性使得YuLan-Chat能够在各种场景下为用户提供高质量的服务。

    实际应用:YuLan-Chat如何改变我们的生活

    YuLan-Chat的强大能力不仅仅体现在各种测试中,更重要的是它如何在实际生活中发挥作用。让我们想象几个YuLan-Chat可能的应用场景:

    1. 教育辅助:想象一下,一个学生在准备高考时遇到了难题。他可以向YuLan-Chat寻求帮助。YuLan-Chat不仅能够解答问题,还能根据学生的理解程度,循序渐进地引导学生思考,真正达到”授人以渔”的效果。
    2. 跨语言交流:在国际商务场合,YuLan-Chat可以充当一个得力的翻译助手。它不仅能够准确翻译语言,还能理解不同文化背景下的微妙差异,帮助双方更好地沟通。
    3. 科研助手:对于研究人员来说,YuLan-Chat可以成为一个强大的辅助工具。它可以帮助研究人员快速梳理大量文献,提供研究思路,甚至协助撰写论文。
    4. 创意写作:对于作家或内容创作者,YuLan-Chat可以成为一个灵感的源泉。它可以提供各种创意点子,帮助突破写作瓶颈,甚至协助进行文学创作。
    5. 心理咨询:虽然YuLan-Chat不能替代专业的心理咨询师,但它可以成为一个初步的倾诉对象。它的理解能力和表达能力可以为用户提供情感支持和初步的建议。

    这些只是YuLan-Chat潜在应用的冰山一角。随着技术的不断进步和优化,YuLan-Chat在未来还将在更多领域发挥重要作用,为我们的生活带来更多便利和创新。

    未来展望:YuLan-Chat的无限可能

    YuLan-Chat的发展历程,就像是一朵玉兰花从含苞待放到盛开的过程。但是,这朵AI之花的绽放并非终点,而是新的起点。研究团队对YuLan-Chat的未来发展充满期待。

    首先,YuLan-Chat的语言能力还有很大的提升空间。虽然目前在中英双语方面表现出色,但未来可能会扩展到更多语言,成为一个真正的多语言AI助手。想象一下,未来的YuLan-Chat可能能够流利地用世界上大部分主要语言进行交流,成为跨文化交流的重要桥梁。

    其次,YuLan-Chat的知识面还可以进一步拓展。目前的测试结果显示,YuLan-Chat在社会科学领域表现尤为出色,但在STEM(科学、技术、工程、数学)领域还有提升空间。未来的研究可能会着重提升YuLan-Chat在这些领域的能力,使其成为一个真正的全能型AI助手。

    再者,YuLan-Chat的应用场景还可以进一步拓展。除了目前的文本交互,未来可能会融入更多的多模态能力,比如图像识别、语音交互等。这将大大拓展YuLan-Chat的应用范围,使其能够在更多领域发挥作用。

    最后,YuLan-Chat的伦理和安全性也将是未来研究的重点。如何确保AI在提供有用信息的同时,也能保持诚实、无害,避免产生偏见或歧视性内容,将是一个长期的研究课题。

    正如玉兰花象征着纯洁、高雅和坚韧,YuLan-Chat的未来发展也将秉承这些特质,不断进化,为人类社会带来更多价值。

    参考文献:

    1. RUC-GSAI. (2023). YuLan: An Open-Source Large Language Model. GitHub repository. https://github.com/RUC-GSAI/YuLan-Chat
    2. Hendrycks, D. et al. (2020). Measuring Massive Multitask Language Understanding. arXiv preprint arXiv:2009.03300.
    3. C-Eval Team. (2023). C-Eval: A Multi-Level Multi-Discipline Chinese Evaluation Suite for Foundation Models. https://cevalbenchmark.com/
    4. Microsoft Research. (2023). AGI-Eval: A Human-Centric Benchmark for Evaluating Foundation Models. https://github.com/microsoft/AGIEval
人生梦想 - 关注前沿的计算机技术 acejoy.com 🐾 步子哥の博客 🐾 背多分论坛 🐾 借一步网 沪ICP备2024052574号-1