0-1实战 大模型RAG实战

「写在前面」

如果把大模型的应用比喻成一种没有监考老师没有规定形式的考试,提示词工程像是考试现场告诉你从什么角度用什么套路和什么方式答题,微调像是考试前拼命刷题记背答案反复记忆,而RAG则像是考试前把目录背下来,现场翻书。

这一章对模型是否没什么要求,所以,可以直接上手撸。

「设计思路」

  1. 找几篇文章

  2. 根据文章内容生成摘要

  3. 根据摘要建立索引库

  4. 根据用户问题匹配索引文献

  5. 将索引到的文献结合用户问题组成新问题

  6. 将组成的新问题交给大模型并要求结合文献作答

  7. 将大模型回答的结果返回给用户

「要素构建」

拿来主义!AI帮我出下内容吧。

他甚至熟练地直接给出了简述,emmmmmm熟练地让人心疼,不知道是谁训练出来的。

那么,我就不客气啦!

拿来主义第二弹,请给我喂成现成的数据谢谢!!

拿来主义第三弹~,那prompt也给了吧(🤔)

「代码编写」

本来想用ai直接生成代码,发现生成的不对,懒得调了直接开撸。

话不多说,直接挂代码。

(网上依赖langchain实现的一抓一大把,嘿嘿,小陈我就偏不用langchain,给外部依赖拉到最低,所以没有选择拿来主义,手撸超级无敌极简版本呜呜呜呜,求路过的好心人们点点关注

import chromadb``from transformers import AutoModel, AutoTokenizer``   ``# RAG提示词``doc_prompt = '''`    `从文档`    `"""`    `{{知识}}`    `"""`    `中找问题`    `"""`    `{{问题}}`    `"""`    `的答案,找到答案就仅使用文档语句回答问题,找不到答案就用自身知识回答并且告诉用户该信息不是来自文档。`    `不要复述问题,直接开始回答。``'''``   ``stories = [`   `"在一个寒冷的雨天,小男孩看到一只湿透的小猫在街角颤抖。他毫不犹豫地脱下自己的外套,裹在小猫身上,然后带着它回家。小猫在男孩的照顾下渐渐康复,成为了他们家庭的一员。",`   `"小女孩在商店捡到一只钱包,里面装有大量现金和贵重物品。她没有犹豫,将钱包交给了店员。失主得知后,为小女孩的诚实所感动,赠送了她一份丰厚的礼物。",`   `"一群小鸭子在公园的池塘里迷失了方向,无法上岸。一个小男孩跳进水中,小心翼翼地将它们一个个抱上岸。小鸭子们终于安全了,男孩也赢得了大家的掌声。",`   `"一位老人在公交车上因身体不适晕倒,一位年轻女孩立刻站起来扶住老人,并为他让座。车上其他乘客见状,也纷纷伸出援手,共同照顾老人直到他下车。",`   `"一个失去双臂的年轻人,凭借坚强的意志和努力,学会了用脚写字、画画。他的事迹感动了无数人,成为了励志的典范。",`   `"一位盲人在街头求助,希望有人能带他过马路。一位热心的小伙子主动伸出援手,却发现这位盲人其实是位著名的音乐家。两人后来成为了好朋友。",`   `"一个单亲爸爸为了照顾年幼的女儿,辞去了工作,专职在家照顾孩子。他不仅学会了做饭、洗衣,还成为了女儿最好的朋友。",`   `"一只小狗和一只小猫从小一起长大,成为了最好的朋友。一次,小猫不幸走失,小狗历经艰辛,最终找到了它。这段友谊感动了无数人。",`   `"一个少年在放学路上,看到一位老人摔倒,立刻上前扶起。他不仅将老人送回家,还帮忙照顾老人的日常生活,直到老人的家人回来。",`   `"一个小女孩热爱舞蹈,但因为家境贫寒,无法负担学费。她在街头跳舞筹集学费,最终被一位舞蹈家发现,得到了免费学习舞蹈的机会,实现了她的梦想。"``]``   ``intros = [`   `"雨天的温暖",`   `"诚实的小女孩",`   `"拯救小鸭子",`   `"爱心传递",`   `"坚强的励志故事",`   `"美丽的误会",`   `"父爱如山",`   `"动物的友谊",`   `"乐于助人的少年",`   `"梦想成真"``]``   ``# 定义根据用户问题检索story方法``def getMateStory (query) :`    `result = collection.query(`        `query_texts=[query],`        `n_results=1,`        `include=["metadatas"]`    `)`    `metadatas = result.get("metadatas")`    `resArr = [item for sublist in metadatas for item in sublist]`    `mSource = resArr[0].get('source')`    `return mSource``   ``if __name__ == '__main__':`    `# 实例化向量库`    `chroma_client = chromadb.Client()`    `collection = chroma_client.create_collection(name="hubeidiyi")``   `    `# 定义数据源数据`    `metadatas = [{"source" : i} for i in range(10)]`    `ids = [f"id_{i+1}" for i in range(10)]``   `    `# 将简介内容丢进向量库`    `collection.add(`        `documents=intros,`        `metadatas=metadatas,`        `ids=ids`    `)``   `    `# 预设一个用户问题`    `query = "小女孩最后收获了什么?"`    `print(f'用户提出的问题:{query}')``   `    `# 匹配最相似文本`    `s_index = getMateStory(query)`    `story = stories[s_index]`    `print(f'查询到的故事内容: {story}')``   `    `# 将文档内容补齐插入提示词`    `new_query = doc_prompt.replace("{{知识}}", story).replace("{{问题}}", query)`    `print(f'补全后的完整query: {new_query}')``   `    `# 模型就位`    `device = "mps"`    `model_path = "/Users/van/models/chatglm2-6b"`    `tokenizer = AutoTokenizer.from_pretrained(model_path, trust_remote_code=True)`    `model = AutoModel.from_pretrained(model_path, trust_remote_code=True).to(device).eval()``   `    `response, history = model.chat(tokenizer, new_query, history=[])`    `print(f'最后得到的回答:{response}')

来看一下最后的执行结果:

ok,nice~下期见~

(如果这期你这期也成功地拿到了最后的实践结果并且深入理解了RAG,那么真是泰酷啦!)

那么,如何系统的去学习大模型LLM?

我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。

作为一名热心肠的互联网老兵,我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。

但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

所有资料 ⚡️ ,朋友们如果有需要全套 《LLM大模型入门+进阶学习资源包》,扫码获取~

篇幅有限,部分资料如下:

👉LLM大模型学习指南+路线汇总👈

💥大模型入门要点,扫盲必看!
在这里插入图片描述
💥既然要系统的学习大模型,那么学习路线是必不可少的,这份路线能帮助你快速梳理知识,形成自己的体系。

路线图很大就不一一展示了 (文末领取)
在这里插入图片描述

👉大模型入门实战训练👈

💥光学理论是没用的,要学会跟着一起做,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
在这里插入图片描述

👉国内企业大模型落地应用案例👈

💥两本《中国大模型落地应用案例集》 收录了近两年151个优秀的大模型落地应用案例,这些案例覆盖了金融、医疗、教育、交通、制造等众多领域,无论是对于大模型技术的研究者,还是对于希望了解大模型技术在实际业务中如何应用的业内人士,都具有很高的参考价值。 (文末领取)
在这里插入图片描述

👉GitHub海量高星开源项目👈

💥收集整理了海量的开源项目,地址、代码、文档等等全都下载共享给大家一起学习!
在这里插入图片描述

👉LLM大模型学习视频👈

💥观看零基础学习书籍和视频,看书籍和视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。 (文末领取)
在这里插入图片描述

👉640份大模型行业报告(持续更新)👈

💥包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。
在这里插入图片描述

👉获取方式:

这份完整版的大模型 LLM 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

😝有需要的小伙伴,可以Vx扫描下方二维码免费领取🆓

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值