基于 ChatGLM2-6B 微调的雅思(IELTS)备考助手。本项目旨在探索大语言模型在垂直教育领域的应用潜力,专注于提供更符合雅思评分标准的写作批改与口语模拟。
本项目通过参数高效微调(PEFT)技术,将通用大模型 ChatGLM2 适配到雅思备考场景。解决了通用模型在特定考试规则下“评分不准”、“风格不符”的问题,旨在打造一个低成本、本地化、高隐私的 AI 雅思陪练。
- 雅思备考学生:需要高质量、即时的口语陪练和作文批改,但预算有限或希望保护隐私(如口语录音不上传云端)的考生。
- NLP 开发者/研究者:探索在消费级显卡上进行垂直领域 LLM 微调与落地流程的同行。
⚠️ 核心价值说明:本部分记录了项目开发过程中的技术决策、遇到的困难及解决方案,展示了从 Demo 到落地的工程思维。
- 现状:基座模型具有优秀的通用对话能力,但在雅思“Task Response”和“Coherence”评分维度上较为模糊。
- 评估方法:
- 定性评估:构建包含 1500 篇不同分数段(5.0 - 8.0)的真题范文测试集,人工对比模型评分与考官真实评分的差异。
- 定量评估 (LLM-as-a-Judge):引入 Gemini 作为 Referee,计算微调后模型输出的评语与标准评语的语义相似度,以及打分误差率(MSE)。
| 挑战分类 | 具体痛点 | 解决方案 |
|---|---|---|
| 算力瓶颈 | 只有消费级显卡(如 RTX 30/40系列),无法进行全参数微调。 | 采用 INT4 量化 加载模型,配合 P-Tuning v2 或 LoRA 技术,将显存需求控制在 6GB-10GB 之间。 |
| 数据质量 | 开源雅思数据杂乱,大量范文缺乏准确的分数标注,且格式不统一。 | 开发数据清洗脚本(正则去噪);利用 GPT-4 生成高质量的“合成数据”作为微调的 Seed Data,构建标准 JSONL 格式。 |
| 幻觉问题 | 模型偶尔会捏造不存在的雅思评分细则,或在口语模拟中自行结束话题。 | 在 Prompt 中引入 CoT (思维链) 引导;在微调数据中强化“基于规则引用”的回答模式;通过 System Prompt 强制约束角色边界。 |
结论:仅靠微调(SFT)不是最优解,它更多是调整模型的“说话语气”而非“注入知识”。
- 当前方案:ChatGLM2 + LoRA 微调。
- 存在局限:模型对于最新的雅思题库(如当季口语题卡)缺乏实时知识,且长逻辑推理能力在参数量限制下有天花板。
- 改进方向 (Next Step):
- RAG (检索增强生成):外挂《剑桥雅思》真题库和评分标准文档,解决知识时效性和准确性问题。
- RLHF (人类反馈强化学习):构建 Reward Model,基于真实考生的偏好(点赞/修改建议)进行对齐训练,使模型反馈更像真实考官。
若将本项目转化为长期可用的商业/开源产品,面临以下核心难点:
- 推理延迟与成本:口语陪练对延迟极度敏感。本地部署用户门槛高,云端部署 GPU 成本高昂(Token 经济模型需优化)。
- 语音交互链路:目前的 STT (Whisper) -> LLM -> TTS 链路中,语音转文字的准确率受口音影响大,且全链路延迟难以控制在 500ms 以内(这是流畅对话的阈值)。
- 长上下文记忆:雅思口语 Part 3 需要结合 Part 1/2 的内容,长窗口下的记忆丢失会导致体验下降。
git clone [https://github.com/richardoo-707/ChatGLM2-IELTS-Finetune.git](https://github.com/richardoo-707/ChatGLM2-IELTS-Finetune.git)
cd ChatGLM2-IELTS-Finetune
pip install -r requirements.txt