中国住房和城乡建设部建造师网站wordpress自定义页面分页
中国住房和城乡建设部建造师网站,wordpress自定义页面分页,深圳龙岗建设网站,接加工订单的网站一、什么是“幻觉”定义#xff1a;大模型生成“看起来合理但事实错误/捏造/不受证据支持”的内容。两个常用维度#xff1a;Faithfulness#xff08;对来源证据是否忠实#xff09;Factuality#xff08;是否与客观事实一致#xff09;幻觉不等同于“错误”。错误可能来…一、什么是“幻觉”定义大模型生成“看起来合理但事实错误/捏造/不受证据支持”的内容。两个常用维度Faithfulness对来源证据是否忠实Factuality是否与客观事实一致幻觉不等同于“错误”。错误可能来源于算力不足、语言歧义、任务设定、证据缺失等幻觉强调“自信地给出不真实内容”。二、典型类型与高发场景类型事实型捏造日期、人物、参数、API 名称等逻辑型推理链中存在跳步、循环论证、错误归因依赖证据型grounding总结/问答时引入证据外信息指令型无依据地编造引用、链接、文献、代码包长上下文型错误合并多个来源、跨段落拼接错位高发场景零样本事实问答、长尾实体与冷门领域多跳推理、长输出如长文总结、报告生成多轮对话被用户错误前提“带偏”非英语/跨语言场景、旧知识/分布外O.O.D.问题高温度采样、过激的“必须回答”指令三、产生原因目标错配与对齐代价预训练目标是“下一个 token 预测”不是“求真”RLHF 可能更奖励“自信/流畅/帮助”弱化“拒答/不确定”数据与知识Web 语料噪声、冲突事实、过时信息、训练数据分布偏移记忆错误或过拟合将单一来源错误“背下来”解码策略与暴露偏差高温度/高 top-p 会鼓励“创新”beam search 有时放大“看似合理”的错误训练阶段的“教师强制”teacher forcing导致生成时误差滚雪球上下文与检索检索召回不足/不相关、Chunk 划分差、长上下文遗失中间信息lost-in-the-middle跨文档共指消解失败、实体同名混淆指令与交互过强的“必须回答”约束Prompt 暗示priming用户提供错误前提模型趋向迎合四、缓解/解决思路总览训练期模型层面数据治理去重、质量过滤、矛盾检测、时间戳/权威来源偏好指令/对齐加入“拒答/不确定”示例真值偏好 DPO/RLHFTruthfulQA 风格数据证据感知训练带引用的监督Reference-augmented SFT对“不受支持的陈述”进行对比学习工具/检索增强RETRO/KNN-LM/RAG-aware 微调系统工程应用层面检索增强生成RAG高质量向量化、重排序、引文标注、逐步检索self-ask工具使用Web 搜索、数据库/向量库、计算器/代码执行、知识图谱校验结构化输出JSON Schema、函数调用、约束语法减少模型“自由发挥”生成-裁判G-Eval生成器 证据核对器NLI/检索复核 纠错重写推理期服务层面解码控制低温度≤0.2-0.5、top-p0.7-0.9、限制长度、必要时贪心Prompt 工程只依据给定证据必须引用证据不足就拒答先列证据再作答交互歧义先澄清需要强制置信度/不确定性表达评估与上线指标FaithfulnessQAFactEval/SummaC、FactualityFactScore/TruthfulQA、拒答率/支持率质量闸门关键词/NER 校验、外部 KB 校对、敏感场景人工审阅五、工程落地示例中文 RAG 自检Qwen2-7B-Instruct说明目标构建“证据驱动 自我核对 证据不足则拒答”的问答管线组件生成模型Qwen/Qwen2-7B-Instruct中文体验好开源可本地向量检索BAAI/bge-base-zh-v1.5 ElasticSearch 8.x中文检索表现稳事实核对多语种 NLI 模型XNLI做“证据→结论”的蕴含判断运行环境有 GPU 最佳≥12GB 显存4-bit 量化可用CPU 也可但较慢安装依赖pip install -U “transformers4.41.0” accelerate torch bitsandbytes sentence-transformers elasticsearch numpy可选NLI 自检pip install -U protobuf准备示例代码说明内置少量示例文档你可替换为自己的知识库产品手册、公司知识、PDF 抽取文本等。启动/配置 ES 8.x设置环境变量export ES_URL“https://your-es:9200”export ES_API_KEY“base64_api_key” 或 export ES_USERNAME“elastic”; export ES_PASSWORD“***”docker run -p 9200:9200 -e “discovery.typesingle-node” -e “xpack.security.enabledfalse” docker.elastic.co/elasticsearch/elasticsearch:8.13.4本地开发无认证单节点若开启安全推荐生产环境变量脚本会自动读取ES_URL 默认 http://localhost:9200ES_API_KEY 或 ES_USERNAME/ES_PASSWORD二选一完整代码Elasticsearch 版本保存为 rag_qwen2_zh_es_demo.py# rag_qwen2_zh_es_demo.py# Elasticsearch 8.x 向量检索的版本import osimport jsonimport numpy as npimport torchfrom typing import List, Dict, Anyfrom transformers import ( AutoTokenizer, AutoModelForCausalLM, BitsAndBytesConfig, pipeline)from sentence_transformers import SentenceTransformerfrom elasticsearch import Elasticsearchfrom elasticsearch.helpers import bulk# ---------- 0) ES 基础配置 ----------ES_URL os.getenv(ES_URL, http://localhost:9200)ES_API_KEY os.getenv(ES_API_KEY) # 可选ES_USERNAME os.getenv(ES_USERNAME) # 可选ES_PASSWORD os.getenv(ES_PASSWORD) # 可选ES_INDEX os.getenv(ES_INDEX, rag_docs) # 索引名# ---------- 1) 模型配置 ----------GEN_MODEL_ID Qwen/Qwen2-7B-InstructEMB_MODEL_ID BAAI/bge-base-zh-v1.5NLI_MODEL_ID MoritzLaurer/mDeBERTa-v3-base-xnli-multilingual-nli-2mil7 # 多语种 NLI支持中文DEVICE cuda if torch.cuda.is_available() else cpuDTYPE torch.float16 if DEVICE cuda else torch.float32# ---------- 2) LLM 加载4-bit 可选 ----------def load_llm(): tokenizer AutoTokenizer.from_pretrained(GEN_MODEL_ID, use_fastTrue) qconfig BitsAndBytesConfig( load_in_4bitTrue, bnb_4bit_quant_typenf4, bnb_4bit_use_double_quantTrue, bnb_4bit_compute_dtypetorch.bfloat16 if torch.cuda.is_available() else torch.float32 ) model AutoModelForCausalLM.from_pretrained( GEN_MODEL_ID, device_mapauto, torch_dtypeDTYPE, quantization_configqconfig ) model.eval() return tokenizer, model# ---------- 3) 嵌入模型 ----------def load_embedder(): emb SentenceTransformer(EMB_MODEL_ID, deviceDEVICE) return emb# ---------- 4) Elasticsearch 客户端 索引 ----------def create_es_client(): if ES_API_KEY: es Elasticsearch(ES_URL, api_keyES_API_KEY) elif ES_USERNAME and ES_PASSWORD: es Elasticsearch(ES_URL, basic_auth(ES_USERNAME, ES_PASSWORD)) else: es Elasticsearch(ES_URL) # 本地无认证 # 健康探测 es.info() return esdef ensure_es_index(es: Elasticsearch, index_name: str, dim: int): if es.indices.exists(indexindex_name): return mappings { properties: { id: {type: keyword}, title: {type: text}, text: {type: text}, # 8.x 原生向量检索dense_vector index: true similarity embedding: { type: dense_vector, dims: dim, index: True, similarity: cosine } } } settings { number_of_shards: 1, number_of_replicas: 0 } es.indices.create(indexindex_name, mappingsmappings, settingssettings)def index_documents(es: Elasticsearch, index_name: str, emb_model, docs: List[Dict[str, Any]]): texts [d[text] for d in docs] embs emb_model.encode(texts, batch_size64, normalize_embeddingsTrue, show_progress_barFalse) actions [] for d, vec in zip(docs, embs): body { id: d[id], title: d.get(title, ), text: d[text], embedding: vec.astype(np.float32).tolist() } actions.append({ _op_type: index, _index: index_name, _id: d[id], # 使用业务ID去重/覆盖 _source: body }) if actions: bulk(es, actions) es.indices.refresh(indexindex_name)def retrieve_es(query: str, es: Elasticsearch, index_name: str, emb_model, top_k5, num_candidatesNone): if num_candidates is None: num_candidates max(top_k * 10, 50) q_emb emb_model.encode([query], normalize_embeddingsTrue)[0].astype(np.float32).tolist() # 8.x 原生 kNN 搜索 res es.search( indexindex_name, knn{ field: embedding, query_vector: q_emb, k: top_k, num_candidates: num_candidates }, _source[id, title, text], sizetop_k ) hits res[hits][hits] results [] for rank, h in enumerate(hits, start1): src h[_source] results.append({ rank: rank, id: src.get(id, h.get(_id)), title: src.get(title, ), text: src[text], score: float(h.get(_score, 0.0)) }) return results# ---------- 5) Prompt证据驱动 引用 ----------def build_prompt_with_citations(query: str, passages: List[Dict[str, Any]]) - List[Dict[str, str]]: evidence_blocks [f【{p[id]}】{p[text]} for p in passages] evidence \n.join(evidence_blocks) system ( 你是严谨的助理。必须严格遵守\n 1) 只依据提供的证据回答不要引入任何外部信息\n 2) 如果证据不足或不相关直接回答“我不知道”\n 3) 每条结论后用 [证据ID] 标注来源\n 4) 简洁分点作答。 ) user ( f问题{query}\n\n f证据多段\n{evidence}\n\n 请基于以上证据回答。若证据不足请明确说“我不知道”。 ) return [ {role: system, content: system}, {role: user, content: user} ]# ---------- 6) 生成 ----------def chat_completion(tokenizer, model, messages: List[Dict[str, str]], max_new_tokens512, temperature0.2, top_p0.9, do_sampleTrue) - str: inputs tokenizer.apply_chat_template( messages, add_generation_promptTrue, return_tensorspt ).to(model.device) outputs model.generate( inputs, max_new_tokensmax_new_tokens, temperaturetemperature, top_ptop_p, do_sampledo_sample, pad_token_idtokenizer.eos_token_id ) text tokenizer.decode(outputs[0][inputs.shape[-1]:], skip_special_tokensTrue) return text.strip()# ---------- 7) NLI 自我核对 ----------def load_nli(): clf pipeline(text-classification, modelNLI_MODEL_ID, device0 if DEVICEcuda else -1, truncationTrue) return clfdef nli_entailment_score(nli_pipe, premise: str, hypothesis: str) - float: out nli_pipe(fpremise: {premise}\nhypothesis: {hypothesis}, return_all_scoresTrue)[0] label_map {d[label].lower(): d[score] for d in out} for k in [entailment, entails, supported]: if k in label_map: return float(label_map[k]) non_contra [d[score] for d in out if contradiction not in d[label].lower()] return float(max(non_contra)) if non_contra else 0.0def extract_claims(answer_text: str) - List[str]: lines [l.strip( -•·) for l in answer_text.split(\n) if len(l.strip())0] claims [l for l in lines if 我不知道 not in l and 未知 not in l] return claims[:6]def verify_answer_with_nli(nli_pipe, passages: List[Dict[str, Any]], answer_text: str, thresh: float0.6): premise \n.join([p[text] for p in passages]) claims extract_claims(answer_text) verdict [] for c in claims: score nli_entailment_score(nli_pipe, premise, c) verdict.append({claim: c, entailment: round(score, 3), supported: score thresh}) return verdictdef revise_with_feedback(tokenizer, model, query: str, passages, answer_text: str, verdict): unsupported [v for v in verdict if not v[supported]] if not unsupported: return answer_text feedback \n.join([f- 不充分{u[claim]} (entail{u[entailment]}) for u in unsupported]) sys 你是一个严谨的纠错助手。只可使用给定证据。删除或改写不受证据支持的内容。 user ( f问题{query}\n f证据多段\n \n.join([f【{p[id]}】{p[text]} for p in passages]) \n\n f上一版回答\n{answer_text}\n\n f核对发现以下陈述证据不足\n{feedback}\n\n 请仅基于证据重写答案若证据不足请直说“我不知道”。保留引用标注。 ) messages [{role:system,content:sys},{role:user,content:user}] return chat_completion(tokenizer, model, messages)# ---------- 8) 演示主流程 ----------def main(): # 8.1 示例文档替换为你的知识库 docs [ {id:d1,title:乔布斯,text:史蒂夫·乔布斯出生于1955年2月24日是苹果公司的联合创始人。}, {id:d2,title:登月,text:阿波罗11号于1969年7月20日实现人类首次登月。宇航员为尼尔·阿姆斯特朗和巴兹·奥尔德林。}, {id:d3,title:中国首都,text:中华人民共和国的首都是北京。}, {id:d4,title:随机噪声,text:互联网上存在错误或过时信息导致大模型可能给出不准确答案。} ] print(Loading models...) tokenizer, model load_llm() emb load_embedder() nli load_nli() print(Connecting Elasticsearch...) es create_es_client() dim emb.get_sentence_embedding_dimension() ensure_es_index(es, ES_INDEX, dim) print(Indexing documents to ES...) index_documents(es, ES_INDEX, emb, docs) # 8.2 询问一个问题 query 乔布斯是哪年出生的请给出证据并加上引用。 passages retrieve_es(query, es, ES_INDEX, emb, top_k3) # 8.3 生成初稿 messages build_prompt_with_citations(query, passages) draft chat_completion(tokenizer, model, messages, max_new_tokens256, temperature0.2, top_p0.9, do_sampleTrue) print(\n[初稿]\n, draft) # 8.4 NLI 自检 verdict verify_answer_with_nli(nli, passages, draft, thresh0.6) print(\n[核对结果]) for v in verdict: print(v) # 8.5 若有不受支持的陈述则重写 final_answer revise_with_feedback(tokenizer, model, query, passages, draft, verdict) print(\n[最终答案]\n, final_answer)if __name__ __main__: main()使用说明与小贴士首次运行会自动创建 ES 索引字段 embedding 使用 dense_vector(indextrue, similaritycosine)。若更换嵌入模型维度变了需删除并重建索引curl -X DELETE “ES_URL/ES\_URL/ES_URL/ES_INDEX”召回质量num_candidates 适当放大例如 k 的 10 倍或 ≥100通常能提升精度如需过滤比如只查某类文档可给 search 额外加 query 过滤条件大规模入库使用 helpers.bulk代码已用 批量生成嵌入生产环境建议异步/并发 pipeline相似度与归一化脚本中对 BGE 向量做了 normalize_embeddingsTrueES 侧使用 cosine相容且常见搭配安全与连接生产环境建议启用 TLS 和 API KeyPython 客户端支持 cloud_id、ca_certs 等参数运行效果预期初稿会以分点形式回答并在每条后面标注 [d1] 之类的引用。NLI 自检会给出每条陈述的“entailment”分数与是否“supported”。若发现不受证据支持的条目会自动触发“重写”保留受支持的结论或改为“我不知道”。说明与可替换项生成模型可换成 Llama 3、Yi、DeepSeek、Mistral 等指令版中文推荐 Qwen 系列。嵌入模型中文可用 BAAI/bge-base-zh-v1.5多语可用 bge-m3 或 multilingual-e5。NLI 校验也可用中文 NLI 模型或 QAFactEval/SummaC或由“第二个 LLM提示词”做裁判。文档来源替换为你知识库本地文件、数据库、网站抓取记得按段落 chunk 并存元数据标题、时间、来源 URL。六、Prompt 模板与推理参数建议约束型 Prompt证据驱动只依据证据不扩展引用来源证据不足说“我不知道”结构化输出例如 JSONSystem: 你是严谨的事实助手。请仅使用用户提供的证据作答证据不足则回答“我不知道”。对每条结论标注来源 [证据ID]。User: 问题{question}证据【d1】…【d2】…要求分点回答2) 每点后标注 [d#]3) 不要使用外部知识4) 证据不足则回答“我不知道”。推理超参数temperature: 0.1–0.5越低越保守top_p: 0.7–0.95配合温度do_sample: True保留一定探索或 False极度保守max_new_tokens: 根据任务控制越长越易“离谱”禁用过高 beambeam search 有时放大似是而非结构化输出减少自由发挥要求输出 JSON并给出 schema例如 { “answer”: “…”, “citations”: [“d1”,“d2”], “confidence”: 0-1 }如果模型不遵守可启用“JSON 验证 纠错重试”循环七、评估与指标数据集TruthfulQA求真、HaluEval多任务幻觉、FEVER事实检验、XSum/LongSumm摘要忠实度指标与工具Faithfulness/支持度QAFactEval、SummaC、Unieval-Faithfulness、NLI-basedFactualityFactScore、FEVER-Score、基于 KB 的自动校验行为指标拒答率、引用完整率、支持率、人工审阅通过率线上观测用户纠错反馈闭环关键任务引入人工审核Human-in-the-loop八、实战检查清单落地场景常用数据与检索文档去重/清洗/带时间戳Chunk 切分合理相邻合并向量检索 重排序Cross-Encoder/Reranker召回不足时进行 Query Rewrite 或多轮检索生成与约束低温度/限制长度分点输出强制引用证据不足明确拒答不引入外部知识结构化输出JSON/函数调用校验与重写NLI/事实校验不通过则重写或拒答高风险任务二次审稿/人工兜底监控与评估定期线下评估Truthful/Faithfulness线上监控幻觉率、拒答率、用户纠错率补充常见“降幻觉”策略与效果预期RAG高质量召回引文“中高”效果需要工程投入与索引维护工具/搜索/数据库调用“中高”效果对事实与数值最有效生成-裁判自检/他检、辩论、多样性采样中等成本效果显著但增加时延训练期对齐Truthful 数据、拒答训练成本高但从根因改善解码降温与长度限制低成本“立竿见影”但可能损失创造性结构化输出/强约束对表格/API/配置类任务非常有效普通人如何抓住AI大模型的风口领取方式在文末为什么要学习大模型目前AI大模型的技术岗位与能力培养随着人工智能技术的迅速发展和应用 大模型作为其中的重要组成部分 正逐渐成为推动人工智能发展的重要引擎 。大模型以其强大的数据处理和模式识别能力 广泛应用于自然语言处理 、计算机视觉 、 智能推荐等领域 为各行各业带来了革命性的改变和机遇 。目前开源人工智能大模型已应用于医疗、政务、法律、汽车、娱乐、金融、互联网、教育、制造业、企业服务等多个场景其中应用于金融、企业服务、制造业和法律领域的大模型在本次调研中占比超过30%。随着AI大模型技术的迅速发展相关岗位的需求也日益增加。大模型产业链催生了一批高薪新职业人工智能大潮已来不加入就可能被淘汰。如果你是技术人尤其是互联网从业者现在就开始学习AI大模型技术真的是给你的人生一个重要建议最后只要你真心想学习AI大模型技术这份精心整理的学习资料我愿意无偿分享给你但是想学技术去乱搞的人别来找我在当前这个人工智能高速发展的时代AI大模型正在深刻改变各行各业。我国对高水平AI人才的需求也日益增长真正懂技术、能落地的人才依旧紧缺。我也希望通过这份资料能够帮助更多有志于AI领域的朋友入门并深入学习。真诚无偿分享vx扫描下方二维码即可加上后会一个个给大家发大模型全套学习资料展示自我们与MoPaaS魔泊云合作以来我们不断打磨课程体系与技术内容在细节上精益求精同时在技术层面也新增了许多前沿且实用的内容力求为大家带来更系统、更实战、更落地的大模型学习体验。希望这份系统、实用的大模型学习路径能够帮助你从零入门进阶到实战真正掌握AI时代的核心技能01教学内容从零到精通完整闭环【基础理论 →RAG开发 → Agent设计 → 模型微调与私有化部署调→热门技术】5大模块内容比传统教材更贴近企业实战大量真实项目案例带你亲自上手搞数据清洗、模型调优这些硬核操作把课本知识变成真本事02适学人群应届毕业生无工作经验但想要系统学习AI大模型技术期待通过实战项目掌握核心技术。零基础转型非技术背景但关注AI应用场景计划通过低代码工具实现“AI行业”跨界。业务赋能突破瓶颈传统开发者Java/前端等学习Transformer架构与LangChain框架向AI全栈工程师转型。vx扫描下方二维码即可本教程比较珍贵仅限大家自行学习不要传播更严禁商用03入门到进阶学习路线图大模型学习路线图整体分为5个大的阶段04视频和书籍PDF合集从0到掌握主流大模型技术视频教程涵盖模型训练、微调、RAG、LangChain、Agent开发等实战方向新手必备的大模型学习PDF书单来了全是硬核知识帮你少走弯路不吹牛真有用05行业报告白皮书合集收集70报告与白皮书了解行业最新动态0690份面试题/经验AI大模型岗位面试经验总结谁学技术不是为了赚$呢找个好的岗位很重要07 deepseek部署包技巧大全由于篇幅有限只展示部分资料并且还在持续更新中…真诚无偿分享vx扫描下方二维码即可加上后会一个个给大家发