7天搭一个智能饮食规划LLM:从营养知识图谱到树莓派部署 📅 发布时间:2026/8/29 12:35:33 👁 浏览次数: 7天搭一个智能饮食规划LLM从营养知识图谱到树莓派部署【免费下载链接】llm-courseCourse to get into Large Language Models (LLMs) with roadmaps and Colab notebooks.项目地址: https://gitcode.com/GitHub_Trending/ll/llm-course通用的饮食建议是减脂计划失败的头号原因——通用LLM只能给出一张放之四海皆准的食谱清单很难结合用户真实的血糖趋势和身体状况。这个项目基于 llm-courseLLM 系统化课程的技术栈以营养知识图谱为数据底座QLoRA 微调为模型层4bit 量化为部署出口把智能饮食规划 LLM完整跑通在 8GB 内存的树莓派上。主链路如上图用户 query 先经过档案解析与生理指标窗口化再走营养知识图谱检索拿到三元组上下文7B 基座加 LoRA 适配器生成初版推荐最后经禁忌食物规则校验、4bit 量化模型llama.cpp 推理完成闭环。为什么要自己做饮食 LLM问题出在哪两个字不专。维度通用 LLM饮食规划 LLM本项目知识来源参数记忆更新滞后图谱按月更新附文献依据输入纯文本文本 BMI / 生理指标特征输出通用食谱列表三餐 分量 禁忌校验部署云端 API4bit 量化树莓派可跑差异的本质是饮食场景有安全这条硬约束禁忌食物通用模型没有这个概念。所以需要注入知识图谱、约束行为微调、兜底校验规则校验三件事缺一不可。数据底座把食物成分表变成三元组知识图谱不需要很大核心是食物-营养素-人群三类实体加上禁忌/烹饪两类关系10 万级实体关系主要来自 USDA 食物成分表。预处理只做三件事填充、标准化、导出。# 关键营养素用中位数填充缺失再标准化便于LLM理解相对含量 nutrient_cols [protein, carbohydrate, fat, vitamin_a, vitamin_c] food[nutrient_cols] food[nutrient_cols].fillna(food[nutrient_cols].median()) food[nutrient_cols] StandardScaler().fit_transform(food[nutrient_cols]) # 导出JSON供图谱导入 food.to_json(normalized_food_data.json, orientrecords)三元组形态很简单图谱检索阶段就是直接返回这些行作为上下文示例三元组用途(三文鱼, 包含, DHA)计算营养素覆盖率(高血压, 禁忌, 高盐食品)生成后安全校验(蔬菜, 烹饪方式, 维生素C流失)推荐中解释烹饪建议生理指标血糖、血压不进图谱转成滑动窗口特征7 天均值/方差/趋势后拼成一段文本注入 prompt——这是最廉价的多模态融合不需要多模态模型一段话就够。质量门槛要提前定好食物成分缺失率 5%图谱关系准确率 95%需领域专家审核不达标不入库。QLoRA 微调让模型内化格式与约束微调目标很小教模型按什么格式输出注意什么营养约束。不要把营养知识硬塞进权重——知识放在图谱里微调只管风格和约束。这个边界很重要我踩过坑事实塞进微调数据模型只会自信地胡说。关键配置就几行lora_config LoraConfig( r16, lora_alpha32, target_modules[q_proj, v_proj], # 按基座模型调整 lora_dropout0.05, task_typeCAUSAL_LM ) # 4bit加载7B基座冻结基座只训练LoRA适配器 model get_peft_model( AutoModelForCausalLM.from_pretrained(base, quantization_configbnb_4bit), lora_config )训练超参沿用课程默认学习率 2e-43 个 epochbatch 4 配 4 步梯度累积没做特殊调优。数据侧花的心思更多用知识图谱程序化生成用户画像 → 理想推荐样本对保证每条标准答案在营养学上站得住热量目标用 Mifflin-St Jeor 公式算。LoRA rank 16、alpha 32 对内化格式这个目标够用。想要更强个性化加大 rank 不如先把数据做干净——饮食场景里数据质量 参数规模。4bit 量化从 24G 单卡到 8GB 树莓派微调完了模型怎么进用户手里答案是 GGUF q4 llama.cpp。7B 基座在不同精度下的内存账精度近似内存可承载硬件FP1614 GB24G 单卡INT87 GB消费级 GPUNF4 双重量化QLoRA4 GB24G 单卡训练GGUF q44.1 GB纯 CPU无需显卡部署命令直白# 转换完成后跑推理4线程1024上下文 ./main -m diet-llm.gguf -p 推荐一份减脂午餐 -n 512 -c 1024 -t 4 # 或起API服务 ./server -m diet-llm.gguf -c 1024 --host 0.0.0.0 --port 8080一个实操判断量化后长输出的稳定性会略降数字和分量最敏感。本项目把算分量的职责放在后处理代码里而不是模型里——模型只负责选择和解释数量交给确定性计算。评估三层推荐真的安全吗Perplexity 回答不了这个饮食计划会不会出事。评估拆成三层四个指标指标定义目标营养素覆盖率推荐覆盖每日必需营养素的比例90%卡路里准确度|推荐 - 目标| / 目标10%偏好匹配度符合用户喜好的推荐食物占比85%安全评分无禁忌食物为 1.0每含一种扣 0.251.0前三项可自动计算解析餐单结构对照图谱算。安全是最后一道闸生成后跑禁忌规则校验把推荐食物清单对撞图谱里的人群禁忌三元组命中就重新生成。规则闸比模型笨但可解释性 100%在健康类场景里这很关键。落地要点⚠️事实别进权重知识进图谱、约束进微调、分量进代码三个职责分开出问题才知道往哪修。安全校验后置且规则化模型生成 规则校验 命中重生成是最小可用的安全闭环。量化不是终点4bit 是为了进边缘设备部署前务必用量化后的模型重跑一遍评估集重点盯分量字段的退化。数据闭环用户实际吃了什么的反馈回流偏好库图谱每月增量更新不需要全量重训。延伸阅读 / 资源数据集USDA 食物成分数据库10 万 食物、Open Food Facts 开源食品标签库工具llama.cppGGUF 推理、MergeKit模型合并、Axolotl / Unsloth微调框架课程资源llm-course 的微调、量化与部署章节是本项目的全部方法论来源clone 仓库即可拿到带 Colab 笔记本的完整路线git clone https://gitcode.com/GitHub_Trending/ll/llm-course【免费下载链接】llm-courseCourse to get into Large Language Models (LLMs) with roadmaps and Colab notebooks.项目地址: https://gitcode.com/GitHub_Trending/ll/llm-course创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考