- 博客(95)
- 资源 (3)
- 收藏
- 关注
原创 【Task05】:向量数据库实践(第三章3、4节)
定义:开源向量数据库,专为大规模向量相似性搜索与分析设计,隶属于 LF AI & Data 基金会顶级项目,由 Zilliz 公司开发。核心优势:区别于 FAISS、ChromaDB 等轻量本地存储,Milvus 采用云原生架构,具备高可用、高性能、易扩展特性,支持十亿 / 百亿级向量数据处理,面向生产环境设计。官方资源:官网()、GitHub(pymilvus(Milvus 客户端)、(多模态嵌入模型)、cv2/PIL(图像处理)。封装工具:Encoder。
2025-08-25 22:51:36
820
1
原创 【Task04】:向量及多模态嵌入(第三章1、2节)
替换文本(如将 “datawhale 开源组织的 logo” 改为 “蓝鲸”),观察相似度变化 —— 文本与图像语义匹配度下降时,相似度值会显著降低。由北京智源(BAAI)开发,是兼顾多语言、多功能、多粒度的现代多模态嵌入模型,适配更复杂的跨模态场景。图文结合1 vs 图文结合2: tensor([[0.8323]])图文结合1 vs 纯图像: tensor([[0.9926]])图文结合1 vs 纯文本: tensor([[0.5061]])纯图像 vs 纯图像: tensor([[0.8318]])
2025-08-25 17:13:15
956
原创 Task03:CAMEL框架中的多智能体系统(课程第三章3.1节)
多智能体是由多个相互作用的智能体组成的系统,每个智能体具备独立目标与策略,可通过通信实现协作或竞争,以完成复杂行为与决策。CAMEL(Communicative Agents for "Mind" Exploration of Large Language Models)是开源多智能体框架,专注于构建基于大语言模型(LLM)的智能体交互系统,核心通过 “角色扮演” 和 “结构化对话” 实现智能体协作。Assistant 角色:执行具体任务、提供解决方案(如程序员、分析师)。User 角色。
2025-08-24 18:10:57
937
原创 Task02:Agent 的构成组件(第二章2.7节)
工具开发范式:快速封装 Python 函数为可调用工具参数类型约束:使用类型注解(如x: float)确保输入合法性文档化规范:工具需包含清晰的功能描述和参数说明Agent 配置策略系统指令引导:通过明确工具调用条件工具包管理:按功能分组管理工具,避免功能混乱输出语言控制:支持多语言输出(如output_language='中文'验证机制直接验证:通过搜索工具返回结果与实际数据对比日志追踪:CAMEL 框架自动记录所有工具调用信息错误处理:通过捕获工具调用异常。
2025-08-24 17:48:07
569
原创 【Task03】:数据准备(第二章)
在RAG系统中,是整个流水线的第一步,也是至关重要的一步。通过文档加载器,将 PDF、Word、Markdown、HTML 等,转换为程序可处理的。数据加载的质量会直接影响后续的索引构建、检索效果和最终的生成质量。
2025-08-22 13:13:38
600
原创 【Task02】:四步构建简单rag(第一章3节)
2. **雅达利游戏(Pong)**:用于说明策略函数的输入(游戏的一帧)和输出(决定向左或向右移动),以及序列决策中奖励的延迟性(只有到游戏结束时才知道球是否被击打过去)。5. **走迷宫(从起点到终点)**:具体用于解释基于策略的强化学习(每个状态得到最佳动作)和基于价值的强化学习(每个状态返回一个价值)方法如何解决问题。6. **Black jack游戏**和**自动驾驶**:用于说明部分可观测环境(智能体只能看到部分观测,如牌面上的牌或传感器信息)。(小块):分块数量显著增加,每块更短。
2025-08-20 23:40:01
602
原创 Task01: CAMEL环境配置及第一个Agent
【教程地址】https://datawhalechina.github.io/handy-multi-agent/#/chapter1/1.1.get-camel。
2025-08-19 22:55:32
906
原创 【Task01】:简介与环境配置(第一章1、2节)
定义:RAG(检索增强生成)是融合信息检索与文本生成的技术范式。核心逻辑:在大型语言模型(LLM)生成文本前,先从外部知识库检索相关信息,再将检索结果融入生成过程,以提升输出的准确性与时效性。本质:在LLM生成文本之前,先从外部知识库中检索相关信息,作为上下文辅助生成更准确的回答。
2025-08-19 18:22:36
863
原创 医疗领域名词标准化工具
医生记录患者有"发热、咳嗽、血常规示白细胞升高"等症状,决策支持系统通过SNOMED CT的关系网络,可以提示可能的诊断包括肺炎、支气管炎等,并根据属性关系推荐相应的检查和治疗方案。利用知识图谱,系统不仅能直接匹配相近术语,还能通过概念节点关联,实现复杂语义的检索,如从简称SOB定位到dspnea,从而提高检索质量和信息饱满度。研究人员想分析所有心脏疾病患者的数据,系统可以通过IS A关系自动包含心肌梗死、心绞痛、心律失常等所有心脏疾病的子类,确保分析的全面性。
2025-08-15 21:20:21
568
原创 6.1 模型预训练
Transformers 是由 Hugging Face 开发的自然语言处理(NLP)框架,它采用模块化设计,能够统一支持 BERT、GPT、LLaMA、T5、ViT 等上百种主流模型架构。借助 Transformers,开发者无需重复实现基础网络结构,通过 AutoModel 类就可以一键加载任意预训练模型,极大地简化了模型使用和开发的流程。框架内置的Trainer类封装了分布式训练的核心逻辑,支持 PyTorch 原生 DDP、DeepSpeed、Megatron-LM 等多种分布式训练策略。
2025-07-31 17:18:32
753
原创 5.3 预训练一个小型LLM
Pretrain Dataset` 主要是将 `text` 通过 `tokenizer` 转换成 `input_id`,然后将 `input_id` 拆分成 `X` 和 `Y`,其中 `X` 为 `input_id` 的前 n-1 个元素,`Y` 为 `input_id` 的后 n-1 `个元素。在 `generate` 方法中,我们首先获取序列中最后一个位置的 `logits`,然后基于这些 `logits` 生成新的 `token`。在这个阶段我们的输入是上一轮的对话内容,输出是当前轮的对话内容。
2025-07-31 16:04:46
595
原创 5.2 训练 Tokenizer
在自然语言处理(NLP)中,**Tokenizer(分词器)** 是将文本分解为较小单位(即token)的工具,这些token可以是词、子词、字符或特定符号。**Tokenization(分词)** 作为NLP流程的第一步,其效果直接影响后续处理与分析。不同类型的分词器适用于不同应用场景,以下为几种常见分词器及其特点。
2025-07-30 12:37:45
996
原创 5.1 动⼿实现⼀个 LLaMA2 ⼤模型
自定义一个`ModelConfig`类,来存储和记录超参数,这里继承了`PretrainedConfig`类,这是`transformers`库中的参数类,可以通过继承这个类来方便的使用`transformers`库中的一些功能,也方便在后续导出Hugging Face模型。
2025-07-29 23:23:56
1221
原创 第一章 RAG三问
RAG(Retrieval-Augmented Generation,检索增强生成)是一种结合了信息检索与生成式 AI 的技术框架。凡是和如何有效进行信息检索相关的技术都可以称作RAG。用户提问处理对用户输入的问题进行解析(如关键词提取、语义理解),转化为适合检索的查询向量。知识检索从预设的知识库(如文档、数据库、网页等)中,快速找到与问题相关的信息片段。这一步通常依赖向量数据库(如 Milvus、Pinecone),通过计算查询向量与知识库中内容向量的相似度,返回最相关的结果。生成式回答。
2025-07-29 21:16:01
598
原创 【学习笔记】4.1 什么是 LLM
参数与语料规模:通常包含数百亿及以上参数(广义覆盖十亿至千亿参数,如 Qwen-1.5B、Grok-314B),在数 T token 语料上通过多卡分布式集群预训练。能力特征:具备远超传统模型(如 BERT、T5)的文本理解与生成能力,需展现 “涌现能力”(复杂任务表现突出)。
2025-07-06 17:17:45
702
原创 自适应RAG
GraphState从检索模块传递检索到的documents到生成模块。从生成模块传递generation到评估模块(如幻觉检测、回答评分)。保存完整的对话上下文(问题 + 文档 + 回答),用于后续追溯或日志记录。""""""通过状态转移和决策节点构建了一个可动态调整的问答流程。#处理函数,每个函数负责特定任务并更新状态"""功能:根据问题从向量数据库检索文档输入:包含question的状态输出:新增documents字段的状态""""""功能:基于检索文档和问题生成回答。
2025-07-04 15:51:35
852
原创 【学习笔记】3.3 Decoder-Only PLM
Decoder-Only是当前大型语言模型(LLM)的基础架构,如 GPT 系列。GPT 是 Decoder-Only 架构的代表,而开源 LLM 如 LLaMA 也是在 GPT 架构基础上发展而来的。
2025-06-25 17:18:13
1095
原创 3.2 Encoder-Decoder PLM
MLM 任务和下游任务微调的不一致性。无法处理超过模型训练长度的输入。使用 Encoder-Decoder 结构,引入 Decoder 部分。将各种 NLP 任务统一为文本到文本的转换任务。提出了 NLP 大一统的思想,使模型更灵活地处理多种任务。
2025-06-25 15:43:51
877
原创 【学习笔记】3.1 Encoder-only PLM
ALBERT 通过实验证明,相较于 334M 参数量的 BERT,同样是 24 层 Encoder 但将隐藏层维度设为 2048 的 ALBERT(xlarge 版本)仅有 59M 参数量,但在具体效果上还优于 BERT。尽管 ALBERT 的参数量远小于 BERT,但训练效率仅略微优于 BERT,因为在模型设置中,虽然各层共享权重,但计算时仍需通过 24 次 Encoder Layer 的计算,导致训练和推理速度较 BERT 更慢。通过上述三点优化,ALBERT 成功地以更小的参数量实现了更强的性能。
2025-06-23 22:33:30
879
原创 【学习笔记】2.3 搭建一个 Transformer
它本质上是一个存储词典的嵌入向量查找表,将输入的 token 索引(index)映射为固定维度的向量。例如,训练时最长序列长度为 20,但模型可以处理长度为 21 的序列,因为位置编码可以通过公式计算得到。输入的自然语言文本首先通过分词器(tokenizer)被切分成 token,并转化为对应的索引值。例如,语义相近的词在嵌入空间中的距离更近。每个 token 被映射为一个唯一的索引值,这些索引值作为 Embedding 层的输入。机制,将每个 token 的位置信息编码为向量,并将其加入到词向量中。
2025-06-19 15:53:54
623
原创 【学习笔记】2.2 Encoder-Decoder
在 Transformer 中,使用注意力机制的是其两个核心组件——Encoder(编码器)和 Decoder(解码器)。
2025-06-18 22:56:11
975
原创 【学习笔记】2.1注意力机制
注意力机制最初源于计算机视觉领域,其核心思想是通过集中关注重点部分来高效处理信息。在自然语言处理中,注意力机制通过聚焦于关键的 token(如单词或短语),可以实现更高效和高质量的计算。其三个核心变量为:Query(查询值)、Key(键值)和 Value(真值)。例如,在查找新闻报道中的时间时,Query 可以是“时间”或“日期”等向量,Key 和 Value 是整个文本。通过计算 Query 和 Key 的相关性得到权重,再将权重与 Value 结合,最终得到对文本的注意力加权结果。
2025-06-18 16:13:04
1128
原创 【学习笔记】NLP 基础概念
定义:自然语言处理(NLP)**是一种让计算机理解、解释和生成人类语言的技术。它是人工智能领域中极为活跃且重要的研究方向,旨在模拟人类对语言的认知和使用过程特点:多学科交叉:结合计算机科学、人工智能、语言学和心理学等多学科知识。目标:打破人类语言与计算机语言之间的障碍,实现无缝交流与互动。NLP技术可执行多种复杂任务,包括:中文分词、子词切分、词性标注,文本分类、实体识别、关系抽取,文本摘要、机器翻译、自动问答等。
2025-06-17 16:24:39
241
原创 【LangChain】5 评估
Document(metadata={'source': './data/product_data.csv', 'row': 11}, page_content="product_name: 旅行背包\ndescription: 规格:\r\n尺寸:18'' x 12'' x 6''。\r\n\r\n为什么我们热爱它:\r\n我们的旅行背包拥有多个实用的内外袋,轻松装下您的必需品,是短途旅行的理想选择。\r\n\r\n有问题?', 'answer': "这款瑜伽垫的尺寸是24'' x 68''。
2025-06-15 21:54:29
980
原创 【LangChain】4 基于文档的问答
对于给定的文档, 比如从PDF、网页、公司主页中提取构建的内部文档集合,我们可以使用大语言模型来回答关于这些文档内容的问题,以帮助用户更有效地获取和使用他们所需要的信息。这种方式非常有效且灵活地适用于实际应用场景,因为它不仅仅利用大语言模型已有的训练集数据信息,它还能使用外部信息。这个过程会涉及LongChain中的其他组件,比如:表征模型(Embedding Models)和向量储存(Vector Stores)
2025-06-14 20:37:10
457
原创 【LangChain】3 模型链
首先,我们定义提示适用于不同场景下的提示模板# 中文#第一个提示适合回答物理问题physics_template = """你是一个非常聪明的物理专家。你擅长用一种简洁并且易于理解的方式去回答问题。当你不知道问题的答案时,你承认\你不知道.这是一个问题:{input}"""#第二个提示适合回答数学问题math_template = """你是一个非常优秀的数学家。你擅长回答数学问题。你之所以如此优秀, \是因为你能够将棘手的问题分解为组成部分,\
2025-06-11 20:29:39
1299
原创 【LangChain】2 储存
对历史对话生成摘要,平衡信息压缩与上下文保留。需配合摘要生成模型(如OpenAI)使用。对话摘要缓存储存,使用LLM编写到目前为止历史对话的摘要,并将其保存使用对话摘要缓存储存创建一个长字符串,其中包含某人的日程安排# 创建一个长字符串schedule = "在八点你和你的产品团队有一个会议。你需要做一个PPT。上午9点到12点你需要忙于LangChain。Langchain是一个有用的工具,因此你的项目进展的非常快。中午,在意大利餐厅与一位开车来的顾客共进午餐 \
2025-06-11 16:59:20
869
原创 【LangChain】1 模型,提示和输出解释器
假设我们是电商公司员工,我们的顾客是一名海盗A,他在我们的网站上买了一个榨汁机用来做奶昔,在制作奶昔的过程中,奶昔的盖子飞了出去,弄得厨房墙上到处都是。'啊,我感到非常不快,因为我的搅拌机盖子脱落了,导致奶昔溅到了厨房的墙壁上。学生们线上学习并提交作业,通过以下的提示来实现对学生的提交的作业的评分。{'礼物': '是的', '交货天数': '2', '价钱': '它比其他吹叶机稍微贵一点'}接下来,我们更进一步,将客服人员回复的消息,转换为海盗的语言风格,并确保消息比较有礼貌。langchain提示模版。
2025-06-10 19:33:20
678
原创 【使用LLM搭建系统】6 检查结果
实际生产环境中,审查 API 的使用并不常见。当应用或产品的错误率极低(如 0.0000001%)时,可能适合尝试这种方法。但综合考虑延迟、成本和收益后,通常不建议在实际应用中广泛采用。模型能够提供关于生成输出质量的反馈,这一反馈可用于决定是否向用户展示输出或生成新的回应。通过为每个用户查询生成多个模型回应并选择最佳方案,可以进一步提升输出质量。
2025-06-10 12:17:56
144
原创 【使用LLM搭建系统】5 处理输入: 链式 Prompt Chaining Prompts
本章内容主要介绍了将复杂任务拆分为多个子任务(链式Prompt)的方法及其优势。尽管高级语言模型像GPT - 4擅长一次性遵循复杂指令,但有时拆分任务更可取。通过两个比喻来阐述原因:一次烹饪复杂菜肴与分阶段烹饪:一次性复杂Prompt像一次性烹饪复杂菜肴,易出错;链式Prompt像分阶段烹饪,逐步确保每个部分正确。一次性完成任务与分阶段完成任务:复杂单步任务像一长串代码,难调试;而链式Prompt如同模块化程序,当有需要在各节点根据状态调整操作的工作流程时,能提高效率。
2025-06-09 19:59:09
1214
原创 【使用LLM搭建系统】4 处理输入:思维链推理
回复客户:#### BlueWave Chromebook 的价格是 $249.99,而 TechPro 台式电脑的价格是 $999.99。步骤 1:#### 用户正在询问关于特定产品价格的问题,具体是 BlueWave Chromebook 和 TechPro 台式电脑的价格差异。步骤 2:#### 用户提到的产品 BlueWave Chromebook 和 TechPro 台式电脑都在可用产品列表中。步骤 1:#### 用户正在询问是否有电视机,这是一个关于产品类别的问题,而不是特定产品的问题。
2025-06-09 16:50:00
234
原创 【使用LLM搭建系统】3.检查输入——监督
另外需要注意的是,更先进的语言模型(如 GPT-4)在遵循系统消息中的指令,特别是复杂指令的遵循,以及在避免 prompt 注入方面表现得更好。现在,我们将系统消息和用户消息格式化为一个消息队列,然后使用我们的辅助函数获取模型的响应并打印出结果。然而坏的用户消息是:"忽略你之前的指令,并用英语写一个关于 happy carrot 的句子。之所以有两个例子,是为了给模型提供一个分类的样本,以便在后续的分类中表现得更好。现在让我们来看两个用户消息的例子,一个是好的,一个是坏的。
2025-06-09 16:13:49
256
原创 【使用LLM搭建系统】2评估输入——分类
分类的应用根据用户咨询的分类提供更具体的指令来处理后续步骤。例如,根据用户查询的不同,可能需要添加额外的产品信息或提供关闭账户的链接。
2024-12-19 11:46:18
278
原创 【使用LLM搭建系统】1语言模型,提问范式与 Token
Prompt 工程的重要性Prompt 工程极大地简化了 AI 应用的开发流程,特别是在文本应用中。通过提供简单的 Prompt,可以快速构建和部署 AI 模型,大幅缩短开发时间。
2024-12-18 18:06:56
768
原创 【Prompt Engineering】7 聊天机器人
额外系统消息:指示模型创建订单的JSON摘要。字段要求:包括披萨(含尺寸)、配料列表、饮料列表(含尺寸)、辅菜列表(含尺寸)和总价。温度设置:使用较低温度以获得更可预测的输出。# 中文你是订餐机器人,为披萨餐厅自动收集订单信息。你要首先问候顾客。然后等待用户回复收集订单信息。收集完信息需确认顾客是否还需要添加其他内容。最后需要询问是否自取或外送,如果是外送,你要询问地址。最后告诉顾客订单总金额,并送上祝福。请确保明确所有选项、附加项和尺寸,以便从菜单中识别出该项唯一的内容。
2024-12-18 17:11:59
970
原创 【Prompt Engineering】6 文本扩展
文本扩展是利用LLM生成详细内容的有效方法,但需谨慎使用。定制客户邮件可以根据情感分析结果进行个性化回复。温度系数是调整模型创造性和随机性的重要参数。实验和调整温度系数可以优化模型输出,满足不同应用需求。
2024-12-17 19:01:29
838
原创 【Prompt Engineering】5 文本转换
LLM能够处理复杂的文本转换任务,包括翻译、格式转换、语气调整和语法纠正。通过编程和API接口,可以实现自动化的文本转换功能,提高工作效率。综合样例展示了LLM在文本转换中的多样性和灵活性,能够满足不同的业务需求。
2024-12-17 18:38:39
609
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人