Chinese-LLaMA-Alpaca-2 技术实战指南:中文词表扩充、16K/64K 长上下文模型与推理部署全解析

发布时间:2026/10/15 10:30:02
Chinese-LLaMA-Alpaca-2 技术实战指南:中文词表扩充、16K/64K 长上下文模型与推理部署全解析
人工智能大模型预训练微调RLHFLoRA本地部署模型量化【免费下载链接】Chinese-LLaMA-Alpaca-2中文LLaMA-2 Alpaca-2大模型二期项目 64K超长上下文模型 (Chinese LLaMA-2 Alpaca-2 LLMs with 64K long context models)项目地址https://gitcode.com/gh_mirrors/ch/Chinese-LLaMA-Alpaca-2点击查看免费下载本指南以 Chinese-LLaMA-Alpaca-2 开源项目的官方英文文档README_EN.md为主体系统讲解基于 Meta Llama-2 二次开发的中文 LLaMA-2 基座模型与 Alpaca-2 指令模型从 55296 词表重设计、FlashAttention-2 高效注意力、PI/YaRN 长上下文扩展等核心技术到模型选型、LoRA 合并、CPU/GPU 量化部署、训练精调与效果评测的完整实战链路。读完本文你将掌握该项目标准版4K、长上下文版16K/64K、RLHF 版全系列模型的正确使用方法并能够直接复现推理、部署、评测与微调流程。一、项目概览与开源模型体系Chinese-LLaMA-Alpaca-2 是中文 LLaMA Alpaca 大模型项目的第二期基于 Meta 发布的 Llama-2 开发在保留原版模型能力的基础上扩充并优化了中文词表并使用大规模中文数据进行增量预训练显著提升中文基础语义与指令理解能力。项目同时开源了预训练与指令精调脚本支持用户在自有数据上继续训练也支持在个人电脑 CPU/GPU 上直接量化和部署体验。1.1 已开源模型矩阵模型系列上下文参数规模类型Chinese-LLaMA-24K标准版1.3B / 7B / 13B基座模型Base ModelChinese-Alpaca-24K标准版1.3B / 7B / 13B指令/Chat 模型Chinese-LLaMA-2-16K16K7B / 13B长上下文基座模型PIChinese-Alpaca-2-16K16K7B / 13B长上下文指令模型PIChinese-LLaMA-2-64K64K7B超长上下文基座模型YaRNChinese-Alpaca-2-64K64K7B超长上下文指令模型YaRNChinese-Alpaca-2-RLHF4K标准版1.3B / 7B人类偏好对齐模型其中基座模型LLaMA-2 系列适用于文本续写类任务指令模型Alpaca-2 系列适用于问答、写作、聊天、交互等指令理解类任务二者不可混用详见下文模型选型。1.2 五大核心技术特点 重新设计的中文词表55296一期项目针对原版 LLaMA 的 32K 词表扩充了中文字词LLaMA 词表 49953、Alpaca 词表 49954本项目则重新设计了统一的新词表大小为 55,296进一步提升了中文字词的覆盖程度同时统一了 LLaMA 与 Alpaca 的词表避免混用词表带来的编码问题提升了模型对中文文本的编解码效率。注意一代与二代词表不同请勿混用。⚡ 基于 FlashAttention-2 的高效注意力FlashAttention-2 相比其一代技术具有更快的速度和更优化的显存占用。当上下文长度变长时注意力矩阵的显存开销会呈爆炸式增长因此高效注意力技术尤为关键。本项目所有模型均使用 FlashAttention-2 进行训练推理端也有对应加速支持见 flash_attn_patch_for_inference.py。 基于 PI 和 YaRN 的自适应上下文扩展一期项目曾实现基于 NTK 的上下文扩展可在不继续训练的情况下支持更长上下文本项目基于位置插值 PIPosition Interpolation和 NTK 等方法推出 16K 长上下文版模型支持 16K 上下文并可通过 NTK 方法进一步扩展至 24K~32K基于YaRN方法进一步推出 64K 长上下文版模型在此基础上设计了自适应经验公式无需针对不同上下文长度手动设置 NTK 超参显著降低使用难度源码实现在 attn_and_long_ctx_patches.py 中alpha参数支持传具体数值或auto传入auto时会依据序列长度自动计算扩展系数。 简化的中英双语系统提示语一期项目的 Alpaca 模型使用 Stanford Alpaca 的指令模板与冗长系统提示语初步实验发现 Llama-2-Chat 的长系统提示语未带来统计显著的性能提升。本项目 Alpaca-2 系列简化了系统提示语同时遵循 Llama-2-Chat 指令模板以便更好地适配相关生态。实际使用的系统提示语为You are a helpful assistant. 你是一个乐于助人的助手。完整模板见 prompts/alpaca-2.txt[INST] SYS You are a helpful assistant. 你是一个乐于助人的助手。 /SYS {instruction} [/INST]该模板同时贯穿于推理inference_hf.py、训练build_dataset.py、Gradio 演示gradio_demo.py、LangChainlangchain_qa.py与 privateGPTprivateGPT.py等全部配套脚本中。 人类偏好对齐RLHF一期 Alpaca 模型仅完成预训练与指令精调本项目通过基于人类反馈的强化学习RLHF实验发现可显著提升模型传递正确价值观的能力由此推出 Alpaca-2-RLHF 系列模型其使用方式与 SFT 模型一致。二、模型下载与选型指引2.1 基座模型 vs 指令模型如何选型官方文档给出了明确的对比结论——如需聊天交互请选择 Alpaca 而不是 LLaMA。核心差异如下对比项Chinese LLaMA-2Chinese Alpaca-2模型类型基座模型指令/Chat 模型类 ChatGPT已开源大小1.3B、7B、13B1.3B、7B、13B训练类型Causal-LMCLM指令精调SFT训练方式7B/13BLoRA 全量 emb/lm-head1.3B全量参数7B/13BLoRA 全量 emb/lm-head1.3B全量参数基于什么模型训练原版 Llama-2非 chat 版Chinese LLaMA-2训练语料无标注通用语料120G 纯文本有标注指令数据500 万条词表大小55,29655,296上下文长度标准 4KNTK 可扩至 12K-18K16K 版NTK 可扩至 24K-32K64K 版YaRN同左输入模板不需要需要套用特定模板类似 Llama-2-Chat适用场景文本续写指令理解、问答、写作、聊天、交互不适用场景指令理解、多轮聊天无限制自由文本生成偏好对齐无RLHF 版本1.3B、7B几点补充说明来自官方注释括号内表示基于 NTK 上下文扩展支持的最大长度Alpaca-2 采用 Llama-2-chat 系列模板格式相同、提示语不同而非一代 Alpaca 模板1.3B 模型不建议单独使用而是通过投机采样搭配更大的 7B/13B 模型使用仓库配套脚本见 speculative_sample.py。2.2 完整模型直接可用推荐带宽充足用户完整版模型下载后即可直接使用无需合并步骤。各模型均提供 Hugging Face、ModelScope、百度网盘三个渠道并附对应 GGUF 量化版模型名称类型大小Chinese-LLaMA-2-13B基座模型24.7 GBChinese-LLaMA-2-7B基座模型12.9 GBChinese-LLaMA-2-1.3B基座模型2.4 GBChinese-Alpaca-2-13B指令模型24.7 GBChinese-Alpaca-2-7B指令模型12.9 GBChinese-Alpaca-2-1.3B指令模型2.4 GB2.3 长上下文版模型推荐长文本下游任务模型名称类型大小上下文Chinese-LLaMA-2-7B-64K基座模型12.9 GB64KYaRNChinese-Alpaca-2-7B-64K指令模型12.9 GB64KYaRNChinese-LLaMA-2-13B-16K基座模型24.7 GB16KPINTK 可扩至 24K-32KChinese-LLaMA-2-7B-16K基座模型12.9 GB16KPINTK 可扩至 24K-32KChinese-Alpaca-2-13B-16K指令模型24.7 GB16KPINTK 可扩至 24K-32KChinese-Alpaca-2-7B-16K指令模型12.9 GB16KPINTK 可扩至 24K-32K长上下文版模型可直接应用于下游任务如 privateGPT 多文档问答若非长文本任务建议仍使用标准版。2.4 RLHF 版与 AWQ 版模型RLHF 版Chinese-Alpaca-2-7B-RLHF12.9 GB与 Chinese-Alpaca-2-1.3B-RLHF2.4 GB对涉及法律、道德等问题较标准版有更优的价值导向AWQ 版AWQActivation-aware Weight Quantization是一种高效的模型量化方案可兼容 transformers、llama.cpp 等主流框架。本项目模型的 AWQ 预搜索结果公开在 Hugging Face 仓库hfl/chinese-llama-alpaca-2-awq中用户可据此生成对应 AWQ 量化模型并在 llama.cpp 中使用。2.5 LoRA 模型轻量下载与合并LoRA 模型含 emb/lm-head与完整模型一一对应无法直接使用必须与原版 Llama-2 合并后才能推理、量化或继续训练。适用于网络带宽不足、手头已有原版 Llama-2 的用户模型名称类型合并所需基模型LoRA 大小Chinese-LLaMA-2-LoRA-13B基座模型Llama-2-13B-hf1.5 GBChinese-LLaMA-2-LoRA-7B基座模型Llama-2-7B-hf1.1 GBChinese-Alpaca-2-LoRA-13B指令模型Llama-2-13B-hf1.5 GBChinese-Alpaca-2-LoRA-7B指令模型Llama-2-7B-hf1.1 GBChinese-LLaMA-2-LoRA-7B-64K / Chinese-Alpaca-2-LoRA-7B-64K长上下文Llama-2-7B-hf1.1 GBChinese-LLaMA-2-LoRA-13B-16K / 7B-16K、Chinese-Alpaca-2-LoRA-13B-16K / 7B-16K长上下文对应 Llama-2-hf1.5/1.1 GB仓库提供了低显存版合并脚本merge_llama2_with_chinese_lora_low_mem.py命令行用法如下python merge_llama2_with_chinese_lora_low_mem.py \ --base_model path/to/llama2-hf-model \ --lora_model path/to/chinese-llama2-or-alpaca2-lora \ --output_type [huggingface|pth] \ --output_dir path/to/output-dir关键参数说明--base_model为原版 Llama-2 的 Hugging Face 格式权重路径--lora_model为下载的 LoRA 权重路径--output_type可选huggingface默认供 transformers 推理或pth供量化工具使用--output_dir为合并输出目录。从源码看脚本会校验 LoRA 词表与 tokenizer 词表一致性不一致会报错并提示合并时通过lora_A.weight lora_B.weight计算增量并乘上lora_alpha / r缩放系数后叠加进原权重pth输出模式还会自动按模型层数识别规格1.3B/7B/13B/70B并执行权重分片与unpermute等处理。离线转换通常先生成 Hugging Face 格式再转 GGUF 供 llama.cpp 量化。三、推理与部署实战3.1 部署方式总览项目官方文档给出了七种主流部署方案的特性对比✅ 表示支持、❌ 表示不支持工具特点CPUGPU量化GUIAPIvLLM16K64K投机采样llama.cpp丰富量化选项 高效本地推理✅✅✅❌✅❌✅✅✅ Transformers原生 transformers 推理接口✅✅✅✅❌✅✅✅✅Colab Demo在 Colab 中启动 Gradio 交互界面✅✅✅✅❌✅✅✅✅OpenAI API Calls仿 OpenAI API 接口的服务器 Demo✅✅✅❌✅✅✅✅❌text-generation-webui前端 Web UI 部署✅✅✅✅✅❌✅❌❌LangChain适合二次开发的应用框架✅✅✅❌❌❌✅✅❌privateGPT基于 LangChain 的多文档本地问答✅✅✅❌❌❌✅❌❌说明长上下文支持16K/64K 列需要第三方库支持自定义 RoPEvLLM 后端不支持本项目长上下文版模型text-generation-webui 的 API 与 LangChain 的 CPU/量化特性虽被工具本身支持但官方教程未实现。3.2 Transformers 推理核心参数逐项解读项目提供了功能最完整的推理脚本 inference_hf.py支持交互式单轮问答、批量文件推理、8/4 bit 量化、vLLM 后端、CFG 采样、投机采样、FlashAttention-2 与 NTK 扩展。核心命令行参数参数默认值说明--base_model必填基座模型路径完整模型或合并后模型--lora_modelNoneLoRA 路径为 None 时直接基于 base_model 推理--tokenizer_pathNone未指定时依次回退到 lora_model / base_model--data_fileNone含指令的文本文件每行一条缺省使用内置示例--interactiveFalse进入单轮问答模式不支持多轮--with_promptFalse自动套用[INST]...[/INST]模板--gpus0指定 GPU 编号多卡用逗号分隔--only_cpuFalse纯 CPU 推理--alpha1.0NTK 方法缩放因子可为浮点数或auto--use_ntkFalse启用动态 NTK 扩展上下文--load_in_8bit/--load_in_4bitFalse8/4 bit 量化加载仅 GPU--use_vllmFalse使用 vLLM 后端--system_prompt内置双语提示语自定义系统提示语--negative_prompt/--guidance_scaleNone / 1.0CFG 采样guidance_scale 1时启用--speculative_samplingFalse启用投机采样加速--draft_base_model/--draft_lora_modelNone投机采样的草稿模型--draft_k-1草稿模型每次猜测的 token 数0 时使用自适应 K--use_flash_attention_2False用 FlashAttention 替换 LLaMA 注意力典型命令批量文件推理套用 Alpaca-2 模板并开启 NTK 扩展python scripts/inference/inference_hf.py \ --base_model path/to/chinese-alpaca-2-model \ --data_file path/to/instructions.txt \ --with_prompt \ --predictions_file predictions.json \ --use_ntk --alpha auto从源码看脚本内部默认GenerationConfig为temperature0.2、top_k40、top_p0.9、do_sampleTrue、num_beams1、repetition_penalty1.1、max_new_tokens400与项目官方评测所用解码参数保持一致。此外脚本对冲突参数做了防御性校验--load_in_8bit与--load_in_4bit不能同时开启CPU 模式不支持量化vLLM 模式不支持 LoRA、量化、CFG 与投机采样会直接抛出 ValueError。加载时若检测到模型词表与 tokenizer 词表不一致会自动执行resize_token_embeddings适配新词表。3.3 FlashAttention-2 推理加速推理侧通过 flash_attn_patch_for_inference.py 将LlamaAttention.forward替换为基于flash_attn_with_kvcache的实现要求 flash-attention 2.2并重写_prepare_decoder_attention_mask以保证 mask 语义正确。推理时加--use_flash_attention_2即可启用长上下文场景下可显著降低显存占用并提升速度。3.4 NTK 动态扩展自适应经验公式长上下文支持的关键在于 attn_and_long_ctx_patches.py。apply_ntk_scaling_patch(alpha)会替换LlamaRotaryEmbedding的初始化与 forward当alpha为数值时直接按base * alpha ** (dim / (dim - 2))调整 RoPE base当alpha auto时进入自适应模式——根据当前seq_len与max_position_embeddings动态计算alpha无需为不同上下文长度手动设置超参。该文件同时提供 xformersmemory_efficient_attention替换apply_attention_patch供非 FlashAttention 环境使用。3.5 投机采样加速投机采样Speculative Sampling用轻量 1.3B 模型作草稿模型、7B/13B 作目标模型保持输出分布等价的同时显著提速。仓库实现speculative_sample.py参考 DeepMind 论文思路草稿模型每次先串行生成draft_k个候选 token目标模型单次前向并行校验按min(1, p_target/p_draft)概率逐个接受被拒绝的位置用归一化后的残差分布重新采样draft_k 0时启用自适应 K全部接受则draft_k 2有拒绝则draft_k max(1, draft_k - 1)。启用方式python scripts/inference/inference_hf.py \ --base_model path/to/chinese-alpaca-2-7b \ --draft_base_model path/to/chinese-alpaca-2-1.3b \ --speculative_sampling --draft_k 4 --interactive3.6 vLLM 与 OpenAI 兼容 APIvLLM 加速--use_vllm将推理切换到 vLLM 后端tokenizer_modeslow、trust_remote_codeTrue可按--gpus0,1,...做张量并行注意 vLLM 当前不支持 LoRA、量化、CFG、投机采样以及长上下文版模型。OpenAI 兼容服务仓库提供 openai_api_server.py基于 FastAPI uvicorn 实现/v1/chat/completions、/v1/completions、/v1/embeddings等 OpenAI 风格接口协议定义见同目录 openai_api_protocol.py支持流式 SSE 输出与多轮对话方便将模型无缝接入既有 OpenAI SDK 生态。3.7 llama.cpp、Gradio、LangChain 与 privateGPTllama.cpp支持从 GGUF 模型出发做 CPU/GPU 量化推理仓库示例脚本见 scripts/llama-cppchat.sh提供与 Alpaca-2 对话的调用封装server_curl_example.sh演示架设 server 后用 curl 调用Gradio 多轮对话gradio_demo.py 提供带历史记录的多轮 Web 界面默认端口 19324支持 8/4 bit、CPU、vLLM、NTK 等选项并内置回复尽可能多内容等长回复提示语模板LangChain 二次开发langchain_qa.py 演示了RecursiveCharacterTextSplitter切分文档 →HuggingFaceEmbeddings FAISS 建库 →RetrievalQA问答的完整链路支持stuff与refine两种 chain 类型privateGPT 多文档问答privateGPT.py 基于 Chroma 向量库 LlamaCpp/GPT4All 后端并针对 Chinese-Alpaca-2 定制了[INST]...[/INST]提示模板长上下文版16K可直接用于多文档问答。环境依赖requirements.txtpeft0.3.0、torch2.0.1、transformers4.35.0、sentencepiece0.1.99、bitsandbytes0.41.1。四、系统效果评测4.1 生成效果模型竞技场项目仿照 Fastchat Chatbot Arena 推出在线对战平台提供胜率与Elo 评分指标题库源自一期项目人工制作的 200 题及新增题目。需要注意生成回复具有随机性受解码超参与随机种子影响相关评测并非绝对严谨结果仅供参考。截至 2023 年 9 月 1 日的部分结果系统对战胜率无平局Elo 评分Chinese-Alpaca-2-13B-16K86.84%1580Chinese-Alpaca-2-13B72.01%1579Chinese-Alpaca-Pro-33B一期64.87%1548Chinese-Alpaca-2-7B64.11%1572Chinese-Alpaca-Pro-7B一期62.05%1500Chinese-Alpaca-2-7B-16K61.67%1540Chinese-Alpaca-Pro-13B一期61.26%1567Chinese-Alpaca-Plus-33B一期31.29%1401Chinese-Alpaca-Plus-13B一期23.43%1329Chinese-Alpaca-Plus-7B一期20.92%1379部分生成样例可查看仓库 examples 目录。4.2 客观效果评测C-EvalC-Eval 是全面的中文基础模型评测套件验证集 1.3K 题、测试集 12.3K 题、覆盖 52 个学科结果以zero-shot / 5-shot呈现。仓库配套推理脚本为 scripts/ceval/eval.py基于 C-Eval 官方代码改造支持 few-shot、CoT、约束解码、测试集输出 submission.json 等选项LLaMA 模型ValidTestAlpaca 模型ValidTestChinese-LLaMA-2-13B40.6 / 42.738.0 / 41.6Chinese-Alpaca-2-13B44.3 / 45.942.6 / 44.0Chinese-LLaMA-2-7B28.2 / 36.030.3 / 34.2Chinese-Alpaca-2-7B41.3 / 42.940.3 / 39.5Chinese-LLaMA-Plus-33B一期37.4 / 40.035.7 / 38.3Chinese-Alpaca-Plus-33B一期46.5 / 46.344.9 / 43.5Chinese-LLaMA-Plus-13B一期27.3 / 34.027.8 / 33.3Chinese-Alpaca-Plus-13B一期43.3 / 42.441.5 / 39.9Chinese-LLaMA-Plus-7B一期27.3 / 28.326.9 / 28.4Chinese-Alpaca-Plus-7B一期36.7 / 32.936.4 / 32.34.3 客观效果评测CMMLUCMMLU 专用于评估模型在中文语境下的知识与推理能力覆盖 67 个主题、共 11.5K 道选择题。仓库配套脚本为 scripts/cmmlu/eval.pyLLaMA 模型Test (0/few-shot)Alpaca 模型Test (0/few-shot)Chinese-LLaMA-2-13B38.9 / 42.5Chinese-Alpaca-2-13B43.2 / 45.5Chinese-LLaMA-2-7B27.9 / 34.1Chinese-Alpaca-2-7B40.0 / 41.8Chinese-LLaMA-Plus-33B一期35.2 / 38.8Chinese-Alpaca-Plus-33B一期46.6 / 45.3Chinese-LLaMA-Plus-13B一期29.6 / 34.0Chinese-Alpaca-Plus-13B一期40.6 / 39.9Chinese-LLaMA-Plus-7B一期25.4 / 26.3Chinese-Alpaca-Plus-7B一期36.8 / 32.64.4 长上下文评测LongBenchLongBench 由 6 大类、20 个任务组成多数任务平均长度 5K~15K共约 4.75K 条测试样本。以下为中文任务含代码任务结果仓库配套脚本为 scripts/longbench/pred_llama2.py模型单文档QA多文档QA摘要Few-shot 学习代码补全合成任务AvgChinese-Alpaca-2-7B-64K44.728.114.439.044.65.029.3Chinese-LLaMA-2-7B-64K27.216.46.533.07.85.016.0Chinese-Alpaca-2-13B-16K47.926.713.022.346.621.529.7Chinese-Alpaca-2-13B38.420.011.917.346.58.023.7Chinese-Alpaca-2-7B-16K46.423.314.329.049.69.028.6Chinese-Alpaca-2-7B34.017.411.821.350.34.523.2Chinese-LLaMA-2-13B-16K36.717.73.129.813.83.017.3Chinese-LLaMA-2-13B28.314.44.616.310.45.413.2Chinese-LLaMA-2-7B-16K33.215.96.523.510.35.315.8Chinese-LLaMA-2-7B19.013.96.411.011.04.711.0可见长上下文版模型在长文本任务上相较标准版有系统性提升如 Chinese-Alpaca-2-13B-16K 相对 13B 在单文档 QA 上由 38.4 提升至 47.9。4.5 量化效果评测以 Chinese-LLaMA-2-7B 为例不同精度下的模型大小、PPL4K 上下文与 C-Evalvalid 集 zero-shot / 5-shot精度模型大小PPLC-EvalFP1612.9 GB9.37328.2 / 36.08-bit 量化6.8 GB9.47626.8 / 35.44-bit 量化3.7 GB10.13225.5 / 32.8llama.cpp 下不同量化方法的详细基准速度 ms/tok测试设备 M1 Maxllama.cppF16Q2_KQ3_KQ4_0Q4_1Q4_KQ5_0Q5_1Q5_KQ6_KQ8_0PPL9.12811.1079.5769.4769.5769.2409.1569.2139.1689.1339.129Size12.91G2.41G3.18G3.69G4.08G3.92G4.47G4.86G4.59G5.30G6.81GCPU 速度11742513944434851505465GPU 速度531921171820xx2526x总体规律Q4_K 与 Q5_K 在速度、体积与 PPL 损失之间取得较均衡的取舍是个人电脑本地部署的常用档位。4.6 投机采样加速效果在 1×A40-48G 上、模型均为 fp16、按官方竞技场题目测得的平均解码速度ms/token草稿模型草稿模型速度目标模型目标模型速度投机采样速度加速比Chinese-LLaMA-2-1.3B7.6Chinese-LLaMA-2-7B49.336.01.37xChinese-LLaMA-2-1.3B7.6Chinese-LLaMA-2-13B66.047.11.40xChinese-Alpaca-2-1.3B8.1Chinese-Alpaca-2-7B50.234.91.44xChinese-Alpaca-2-1.3B8.2Chinese-Alpaca-2-13B67.041.61.61x这解释了官方推荐1.3B 模型与 7B/13B 搭配使用的原因小模型本身推理极快作为草稿模型能带来约 1.4~1.6 倍的目标模型加速。4.7 RLHF 版模型评测对齐水平官方自建评测数据集覆盖道德、色情、毒品、暴力等价值偏好维度以价值体现正确率正确体现价值观题数 / 总题数呈现Alpaca 模型AccuracyAlpaca 模型AccuracyChinese-Alpaca-2-1.3B79.3%Chinese-Alpaca-2-7B88.3%Chinese-Alpaca-2-1.3B-RLHF95.8%Chinese-Alpaca-2-7B-RLHF97.5%RLHF 后价值对齐水平提升约 9~16 个百分点同时客观评测基本持平Alpaca 模型C-Eval (0/few-shot)CMMLU (0/few-shot)Chinese-Alpaca-2-1.3B23.8 / 26.824.8 / 25.1Chinese-Alpaca-2-7B42.1 / 41.040.0 / 41.8Chinese-Alpaca-2-1.3B-RLHF23.6 / 27.124.9 / 25.0Chinese-Alpaca-2-7B-RLHF40.6 / 41.239.5 / 41.0五、训练与精调项目开源了完整的预训练与指令精调脚本LoRA 全量 emb/lm-head 方案1.3B 为全量参数训练并配套 DeepSpeed ZeRO-2 配置文件ds_zero2_no_offload.json。5.1 增量预训练Chinese LLaMA-2在原版 Llama-2 基础上用大规模无标注数据增量训练训练语料与一期 Plus 版本一致约 120G 纯文本。入口脚本为 run_pt.sh核心参数主脚本 run_clm_pt_with_peft.pylr2e-4 lora_rank64 lora_alpha128 lora_trainableq_proj,v_proj,k_proj,o_proj,gate_proj,down_proj,up_proj modules_to_saveembed_tokens,lm_head lora_dropout0.05 block_size512即对 7 个线性投影模块应用 LoRArank64、alpha128同时对embed_tokens与lm_head做全量微调以适配新词表单卡 batch size 1、梯度累积 8 步、fp16、cosine 学习率、warmup 5%。脚本由 transformers 官方run_clm.py改造而来使用torchrun启动并接入 DeepSpeed。5.2 指令精调Chinese Alpaca-2在 Chinese-LLaMA-2 基础上用约 500 万条标注指令数据精调比一期略增。入口脚本为 run_sft.sh与预训练的主要差异学习率降至lr1e-4、增加验证集与--do_eval、max_seq_length512、warmup 3%。指令数据的组织方式可参考 build_dataset.py每条样本由instruction / input / output三字段组成处理时把instruction含 input套入[INST]...[/INST]模板作为源output eos_token作为目标训练标签中源部分全部置为IGNORE_INDEX -100不参与损失计算即只监督模型生成答案部分——这与推理时的模板完全一致保证了训练-推理一致性。5.3 RLHF 精调Chinese Alpaca-2-RLHF在 Chinese-Alpaca-2 基础上利用偏好数据与PPO 算法进行人类偏好对齐精调偏好数据基于多个开源项目的人类偏好数据与本项目指令精调数据采样而来奖励模型阶段约 69.5K 条、强化学习阶段约 25.6K 条样本训练代码基于 DeepSpeed-Chat 开发分为奖励建模与强化学习两个阶段输出即 Chinese-Alpaca-2-RLHF 系列。六、常见问题FAQ官方文档建议提 Issue 前先核对 FAQ完整问答见项目 Wiki问题清单如下本项目和一期项目的区别模型能否商用接受第三方 Pull Request 吗为什么不对模型做全量预训练而是用 LoRA二代模型支不支持某些支持一代 LLaMA 的工具Chinese-Alpaca-2 是 Llama-2-Chat 训练得到的吗为什么 24G 显存微调 Chinese-Alpaca-2-7B 会 OOM可以使用 16K 长上下文版模型替代标准版模型吗如何解读第三方公开榜单的结果会出 34B 或者 70B 级别的模型吗为什么长上下文版模型是 16K不是 32K 或者 100K为什么 Alpaca 模型会回复说自己是 ChatGPT为什么 pt_lora_model 或者 sft_lora_model 下的 adapter_model.bin 只有几百 k因为只保存了 LoRA 适配器权重并非完整模型其中第 13 个问题正是 merge_llama2_with_chinese_lora_low_mem.py 存在的原因第 4 问则解释了 run_pt.sh、run_sft.sh 采用 LoRA 训练的原因。七、引用、致谢与使用说明若在论文或产品中使用本项目资源官方建议引用技术报告《Efficient and Effective Text Encoding for Chinese LLaMA and Alpaca》article{Chinese-LLaMA-Alpaca, title{Efficient and Effective Text Encoding for Chinese LLaMA and Alpaca}, author{Cui, Yiming and Yang, Ziqing and Yao, Xin}, journal{arXiv preprint arXiv:2304.08177}, year{2023} }本项目主要基于 Meta Llama-2、llama.cpp、FlashAttention-2 等开源项目二次开发使用时应遵守 Llama-2 开源许可协议及第三方代码的相应协议。需要特别留意的是模型生成内容可能因计算方法、随机因素、量化精度损失等产生误差官方不对输出准确性作任何保证用于商业用途时开发者应遵守当地法律法规并确保内容合规。官方同时声明了局限性模型可能产生不可预测的有害内容、因算力与数据限制训练并不充分、中文理解能力有待提升。实践建议汇总聊天交互选 Alpaca-2模板用 Llama-2-Chat 风格[INST]...[/INST]勿用一代模板长文本任务选 16K/64K 长上下文版注意 vLLM 不支持带宽有限选 LoRA 版并按 merge_llama2_with_chinese_lora_low_mem.py 合并个人电脑本地部署优先 llama.cpp Q4_K/Q5_K GGUF追求推理速度可将 1.3B 草稿模型与 7B/13B 目标模型搭配启用投机采样涉及价值观敏感场景优先选用 RLHF 版。赞分享人工智能大模型预训练微调RLHFLoRA本地部署模型量化【免费下载链接】Chinese-LLaMA-Alpaca-2中文LLaMA-2 Alpaca-2大模型二期项目 64K超长上下文模型 (Chinese LLaMA-2 Alpaca-2 LLMs with 64K long context models)项目地址https://gitcode.com/gh_mirrors/ch/Chinese-LLaMA-Alpaca-2点击查看免费下载相关推荐pyimgui字体配置完全指南自定义字体与多语言支持pyimgui字体配置完全指南自定义字体与多语言支持 pyimgui是一个基于Cython的Python绑定库用于dear imgui它允许开发者轻松创建中文LLaMA-Alpaca-2大模型革命性升级16K超长上下文RLHF对齐技术深度解析中文LLaMA Alpaca 2大模型革命性升级16K超长上下文RLHF对齐技术深度解析 你是否还在为处理长文档时模型失忆而烦恼是否因AI生成内容价值人工智能大模型预训练微调RLHFLoRA本地部署模型量化模型评测从安装到调试PlatformIO IDE for VSCode一站式用户指南从安装到调试PlatformIO IDE for VSCode一站式用户指南 PlatformIO IDE for VSCode是一款专为物联网开发打造的下一创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考