30分钟完整教程:Tianji-天机智能体如何用LoRA微调出懂中文社交的大模型
【免费下载链接】self-llm《开源大模型食用指南》针对中国宝宝量身打造的基于Linux环境快速微调(全参数/Lora)、部署国内外开源大模型(LLM)/多模态大模型(MLLM)教程项目地址: https://gitcode.com/GitHub_Trending/se/self-llm
送祝福、写敬酒词、化解饭局尴尬——这些中文社交场景里最让人头大的事,正是Tianji-天机智能体要解决的。它来自 self-llm 仓库的示例项目,完整走通了大模型微调的路径:用LoRA把开源模型调教成"人情世故助手"。下面按"它是什么→它怎么做到→效果实测→你如何玩"的顺序来拆。
它是什么:🎯 替你说好话的中文社交智能体
中国文化讲人情世故:长辈面前要恭敬,同事之间要得体,朋友之间要有趣。通用大模型写祝福常常"端着",出来的文字像群发模板。Tianji-天机智能体专治这个毛病——覆盖生日、节日、升职、敬酒、请客、送礼、化解尴尬、应对矛盾等场景,能按对象(28种角色)和语气(3种风格)定制输出。
它不只是一个好玩的社交demo。整个项目把提示词工程、智能体制作、模型微调、RAG数据清洗串成了完整链路,读完 examples/Tianji-天机/readme.md 基本等于跟完一门大模型应用入门课。
数据怎么来:📝 用大模型批量"造"祝福语料
微调效果的上限由数据决定。天机没有爬语料,而是让另一个"聪明"的大模型当数据工厂,批量生成QA对:
- 28个角色:大舅、李总、导师、领导……
- 18个场景:生日、春节、乔迁新居、谈判顺利、工作升职……
- 3种风格:正常、小红书(带emoji)、商业严肃
两个容易忽略的细节:一是把"造数据时的提示词"替换成真实用户会输入的短句(如"祝姐姐生日快乐,小红书风格"),模型学到的才是真人输入;二是维护一个随机语句列表,随机注入提示词,让生成结果更多样。
多轮跑完的json合并成一份训练集tianji-wishes-chinese-v0.1.json,再做二次清洗:去重、过滤长度异常、修正标点。作者在文档里说得实在——"真正复杂的工作都在清洗、处理、生成数据上,这才是影响效果的最大难点。"
快速跑通:🚀 30分钟完成一次QLoRA微调
准备一台24G显存的机器(3090即可),Python 3.10环境,装好 xtuner v0.1.18(可以理解为大模型微调的"训练控制台")。基座选 internlm2-chat-7b,走QLoRA路线——把模型量化到4bit塞进显存,只训练一组LoRA低秩矩阵,改动小、显存省。
从模板拷贝配置后只改三处:模型本地路径、数据集路径、评估样例(换成"祝姐姐生日快乐"这类输入):
mkdir /home/finetune cd /home/finetune && xtuner copy-cfg internlm2_chat_7b_qlora_oasst1_e3 ./ # 改完配置后启动训练,显存吃紧可换 --deepspeed deepspeed_zero3 xtuner train ./internlm2_chat_7b_qlora_oasst1_e3_copy.py --deepspeed deepspeed_zero2训练每50步存一个检查点,过程中还会拿评估样例实时"试考"。注意:这类任务通常训1轮就够,LLM容易过拟合,多训反而把话说"死"。
效果实测:合并权重后直接开聊
LoRA权重转成HF格式、与原模型合并,然后开个对话窗口验证:
xtuner convert pth_to_hf "${SCRIPT_PATH}" "${WEIGHTS_PATH}" "./hf" xtuner convert merge "${SRC_MODEL_PATH}" "./hf" "./merge" --max-shard-size "2GB" xtuner chat ./merge --prompt-template internlm2_chat \ --system "你现在是一个送祝福大师,帮我针对不同人和事情、节日送对应的祝福" \ --temperature 0.7实测输出(README中的示例):
输入:祝弟弟工作升职,小红书风格 输出:"弟弟呀,你的才华如同春日里的花朵,绽放出绚烂的光彩。工作如鱼得水,升职之路顺顺利利……"
风格切换同样在线:严肃风格下给老师写生日祝福,是"恭祝您福寿安康,事业蒸蒸日上"的职场腔;小红书风格则自带emoji和语气词。嫌命令行不方便,把 InternLM 的web_demo.py中模型路径指向合并后的目录,用 streamlit 起个6006端口的网页版就能浏览器里聊。
你如何玩:🧩 从祝福模型改造成自己的场景
这套流程的价值在于可复制。想加"面试话术""敬酒词",只需往角色和场景列表里补条目,重跑"生成→合并→微调"三件套;想换基座、调LoRA超参(模板里 r=64、学习率2e-4),配置里改两行就行。想走全量微调,参考 examples/InternLM2/04-InternLM2-7B-chat Xtuner Qlora 微调.md,需要2张A100 80G并用 deepspeed_zero3 多卡跑。同目录下 Chat-嬛嬛、AMchat-高等数学 等案例展示的是同一套方法论换数据的玩法,入口在 examples/readme.md。
下一步可以做什么
- 补齐饭局全流程:往训练集加入敬酒、请客、送礼语料,让智能体覆盖从开场到散场的完整社交链路
- 接入RAG:把"对方是谁、什么关系、有什么忌讳"做成可检索的知识库,对话时动态注入上下文
- 对比实验:换更大的LoRA rank、混入日常对话数据防遗忘,或试DPO偏好对齐,量化不同风格下的表达质量
【免费下载链接】self-llm《开源大模型食用指南》针对中国宝宝量身打造的基于Linux环境快速微调(全参数/Lora)、部署国内外开源大模型(LLM)/多模态大模型(MLLM)教程项目地址: https://gitcode.com/GitHub_Trending/se/self-llm
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考