Langchain-Chatchat

RAG系列:环境初体验

最近想着将公司里 Confluence 的内容拿来跑个智能知识库系统练练手,学习的是 Jiayuan (Forrest) 大大的 http://devv.ai 是如何构建高效的 RAG 系统的 这篇文章,找了一圈最终直接用的项目是 Langchain-Chatchat,结果在一启动的时候就报错了个错,UserWarning: CUDA initialization: The NVIDIA driver on your system is too old (found version 11080).,很明显,它是告诉我显卡驱动版本太低了,需要更新。这里其实有两种方式: 降低 pytorch 的版本 升级显卡驱动 先确定本机的驱动信息,以及项目的 pytorch 版本所对应的 cuda 版本信息。 基本信息 nvidia-smi 最开始的时候是单卡,初始的信息记录 $ lspci | grep -i nvidia af:00.0 3D controller: NVIDIA Corporation GP102GL [Tesla P40] (rev a1) $ nvidia-smi +-----------------------------------------------------------------------------+ | NVIDIA-SMI 520.61.05 Driver Version: 520.61.05 CUDA Version: 11.8 | |-------------------------------+----------------------+----------------------+ | GPU Name Persistence-M| Bus-Id Disp....

一月 26, 2024 · 5 分钟 · genffy

麦肯锡结构化战略思维:如何想清楚、说明白、做到位

《麦肯锡结构化战略思维:如何想清楚、说明白、做到位》 周国元 59个笔记 ◆ 点评 2023/10/29 认为好看 都是可以直接抄走的一些实操,适合各个行业 ◆ “焦虑”在VUCA时代蔓延 volatility(易变性),uncertainty(不确定性),complexity(复杂性),ambiguity(模糊性) 2023/10/28发表想法 处于这个阶段估计有五年之久了,反反复复,时间却不止的流逝 可有的人只停留在抱怨、对变化浅尝辄止的阶段 要养成理性思考、理性办事的习惯,人们首先要走出心理上的舒适区和大脑快速思考的本能。 ◆ 2.3 “切”名词是结构化战略思维的起点 MECE是英文“Mutually Exclusive,Collectively Exhaustive”的简写。MECE原则要求结构化切分后要达到如下要求。 (1)子分类相互独立无重叠; (2)子分类加起来穷尽全部可能。 2023/10/28发表想法 精准划分的标准 要把“好”和“坏”用明确数据标准做区分,给每个判断以充足、具体又可衡量的指引,这并不是一蹴而就的容易事 ◆ 2.4 “切”问题,更上一层楼 切”问题主要有4种方法:公式法、子目录列举法、流程法和逻辑框架法。 ◆ 第3章 结构化战略思维四大原则 结构化战略思维四大原则分别是数字说话、洞见优于表象、MECE原则和假设为前提,其中数字说话和洞见优于表象是偏重数字分析和高效交流的科学方法和行为准则,而MECE原则和假设为前提更多是指导思路的方法论。 ◆ 3.1 原则1:数字说话 “以偏概全”就是一种常见的误导手段 偷换概念也是一种很常用的误导手段。 面对任何数字,我们首先要假设数字是不准确的。“先小人后君子”,主动验证是思辨者的责任。只有经得起调研和拷问的数字才可信 面对用于决策的关键数字时,要有能力在有限的时间内依靠常识快速简易地证真或证伪,我把这种能力称为“常识推理能力”。这一数字核实的过程用英语描述为Back-of-the-envelop-calculation,直译“信封背面的计算” ◆ 3.2 原则2:洞见优于表象 海量的数据中萃取洞见的能力是数字决策的核心,初学者可以通过五个简单步骤来练习寻找洞见:(1)寻找数字中的规律和趋势(Pattern);(2)寻找极端的数字及其含义;(3)对比参照数据并分析差异;(4)寻求其他相关信息;(5)推演并提炼洞见。 试图寻找数字中的规律和趋势 极端的数据点包括最大值、最小值和数字0 对比参照数据并分析差异 2023/10/29发表想法 这个常规是不是也有些武断 参照业界常规,即使有大量和精准的市场投入,一个新品牌饮品也至少需要4个季度才能盈利 参照业界常规,即使有大量和精准的市场投入,一个新品牌饮品也至少需要4个季度才能盈利 ◆ 3.3 原则3:MECE原则 透过MECE原则看经典管理学理论 2023/10/29发表想法 mece角度的模型分析 从宏观PEST模型开始,到行业赛道吸引力的波特五力模型,然后是公司能力SWOT分析,再到内部公司管理的麦肯锡7S模型,最后看看多维度理论如BCG矩阵和消费者细分市场感知分析 PEST模型由哈佛经济学教授弗朗西斯·阿吉拉尔(Francis J.Aguilar)最早在1967年提出[15],是用来评判企业外部宏观经济大环境的理论框架 波特五力模型有个“讨价还价/议价能力”的概 SWOT(Strengths优势、Weaknesses劣势、Opportunities机会和Threats威胁)分析方法是最常见的分析 2023/10/29发表想法 麦肯锡7S模型 Strategy战略:公司要建立相对竞争对手的可持续的竞争优势的计划。 Structure结构:公司的组织架构,如汇报的链条。 Systems系统:员工完成任务所用的系统和流程。 Shared values共同价值观:公司的核心使命和文化。 Style风格:公司决策和管理风格。 Staff员工:组织成员。 Skills能力:组织综合能力。 BCG矩阵(又称“市场增长率–相对市场份额矩阵”)是由波士顿咨询公司(The Boston Consulting Group,BCG)创始人布鲁斯·亨德森(Bruce Henderson)于1970年首创的,是一种关于企业产品战略的评判框架...

十月 30, 2023 · 1 分钟 · genffy

格鲁夫给经理人的第一课

《格鲁夫给经理人的第一课(畅销版)》 安迪·格鲁夫 81个笔记 ◆ 点评 2023/10/21 认为好看 重读,在带十人团队之后。很多场景基本是可以完全抄着用,不过也有些前提。比如书中的主人公是大老板,有完全的空间,但大多数还有+1,+2 等,很多动作可能需要优化下。不过也可以用里面对下属的技巧,去反向管理自己的老板,让自己有更好的绩效。 ◆ 序 重温《格鲁夫给经理人的第一课》 经理人不需要多聪明,多熟悉业务,最重要的是如何把知识转化为团队绩效和产出。 如果一个人工作上毫无作为,只有两个原因:他要么不会做,要么不想做;不是没能力,就是没动力。” 过程初期所付出的能量将会收到十倍的回报,而过程末期所付出的能量则会收到十倍的负回报 2023/10/11发表想法 堂主一定是反复阅读了这本书的 如果员工对任务的成熟度不高,经理人手把手培训就非常重要。如果员工足够成熟,那么适当放权则更为恰当。 如果员工对任务的成熟度不高,经理人手把手培训就非常重要。如果员工足够成熟,那么适当放权则更为恰当。 经理人只能从两个方面影响员工的产出:激励和培训 ◆ 序言 从20世纪80年代的巨变谈起 在日益艰难的环境里,就算你“成为市场里的老二”也还不够 ◆ 顺应新环境 这些改变将会催生一个竞争激烈且难以预期的工作环境。 让混沌丛生,然后掌控混沌 ◆ 认识你的组织 产出导向管理 团队意识 2023/10/11发表想法 本质上就是通过手段,让手下出更多的成绩,以前以为只有类似销售分销是这样的,其他类型的组织也大抵如此 一个经理人的产出,便是他所管理和影响所及的下属工作的成效总和。” 管理杠杆率”( 2023/10/11发表想法 炒股也是这样吧 哈哈哈哈 我们必须认清“无法预测未来”这个事实,但这并不等于“我们应该就此放弃计划”。 ◆ 经营你的职业生涯 又让我得知自己是现实主义者——只有能在变化中生存的人才会对未来抱持乐观的态度。我写此书的动机就是提出能增加 ◆ 第一篇 早餐店的生产线 限制步骤的概念 时间互偿 但凡是能以最低成本达到理想的运送速度以及品质的,便是最佳方案 你都应该使用线上检视的方法,而避免必须要牺牲产品的测试方法。 ◆ 第2章 从早餐店的库存谈起 任何管理都需要评估,但我们也发现,一个有效的指标应是评估产出,而不是产出之前的生产活动。 设定标准,预测每个员工的工作量,这绝对有助于提高并维持产能。 ◆ 第二篇 打好团体战 经理人的产出是什么? 不仅对我,而且是对大多数的经理人而言,最重要的信息往往来自简短而非正式的谈话。这种信息的传递速度往往也比任何一种书面报告或是小纸条快。而信息的价值,通常也和其时效有绝对的关联 报告用来表示一个人的自律,远胜于它在传递信息上的作用。 增强并且维持你吸收信息的能力,你必须先了解能获取信息的途径有哪些 所以你必须更进一步地去看这篇报道的内容,才能知道“五何”——何人、何事、何时、何处以及为何。经过这些理解,你才能够有一套自己的看法。 你绝对不能只靠某一种特定的信 决策基本上可分为两种 2023/10/13发表想法 有正负之分;减少技术性干预能降低负杠杆率 什么是高杠杆率? 2023/10/13发表想法 前面两个是什么...

十月 25, 2023 · 1 分钟 · genffy
SSE What Why How

如何使用 GitHub 和 Docker 进行自动部署

前置知识 会简单用一下 docker 以及 docker-compose 知道 github actions 以及会用 以及一点点 linux 操作的基础,可以 这里 了解下 背景 作为一个前端er,大多数场景下交付的都是纯静态的东西(html, js, css),可能对于服务部署自动化这块不是特别敏感,随便找个环境 build 下,拿到 dist 文件夹丢到服务器上就完事了。再高级一点的,可能有用到各种 SSX 的,或者还有点 serverless 的,还有个 vercel 这个特别好用的平台供我们使用,简直太强大,纯前端的常规操作,或者配合一些调用第三方数据接口的操作,vercel 一把梭,最多加个 serverless 函数转发下避免跨域之类的问题。比如 ChatGPT 的各种套壳,部署在 vercel 上占大多数。 但是,如果你是一个后端er,或者是一个全栈,那么你可能会有一些服务端的东西需要部署,比如一些数据库,中间件等,这些似乎在 vercel 上就不能直接搞定了,虽然他们目前也有在计划 Storage 这个东西,尤其对于版本帝的 nodejs 应用来说,可能不用项目需要的基础环境不一样,按照常规的做法可能需要不同的服务器去做这种环境隔离的事情了。其实对于预算充足的来说,这都不是问题,那么现在要介绍的一种就是如何在极限环境下,去做这种多应用部署,方便自己实验。 介绍 对于文中实验场景,唯一可能需要付钱的部份是一台低配的服务器,毕竟 github 的 action 不能和本地通信?(如果你有固定 ip 其实也可以)比如本文中使用的是一台腾讯云上的【标准型SA2 - 2核 2G】的服务器,买了三年千把块,算是很便宜了,装的系统是【 TencentOS Server 3.1 (TK4)】,默认自带了 docker,还做了一些镜像源上的配置,其实自己去安装个也很方便,记得改下镜像源。 需要准备的所有东西包括: 一台云服务器 一个镜像仓库 一个 github 仓库 为什么需要一个镜像仓库,目前很多基础仓库其实都在公开的镜像仓库上,比如 dockerhub,但是对于自己应用的镜像制品,不适合放到公开仓库里。网上也有很多搭建的教程比如 How To Set Up a Private Docker Registry on Ubuntu 22....

六月 8, 2023 · 3 分钟 · genffy

📒是什么一直束缚你在社会底层?

家庭束缚 父母社会经验的可参考性 对子女爱的定位(天然的债权人 ) 家庭地位平等独立的人 How 解除思想束缚 平等 走向分离 解除现实束缚 靠自己,摒弃「等靠要」 寻找指路人 情绪束缚 生活中的 10%,是由发生在你身上的事情组成,而另外的 90%,则是由你对所发生的事情,如何反应决定。— 费斯汀格 问自己: 这是你的想法和情绪,还是事实? name desc 不自信 客观真实世界 悲观 主观精神世界 敏感 主观精神世界 自我否定 主观精神世界 抱怨 客观精神世界 不会拒绝 客观精神世界 长期内耗 主观精神世界 在意别人的眼光 主观精神世界 How 分清哪些是事实,哪些是情绪 内观 第三视角观看,不要思考 建立正反馈机制 做好一件事 🎧 先做成一件事情,是打开世界大门的钥匙 经济束缚 基本的经济运行规律 机会成本 通货膨胀 📺 经济机器是怎样运行的 (时长30分钟) Ray Dalio 什么是投资 两要素 风险 回报率 How 第一阶段 了解经济的运行规律 把自己当前主要收入来源的工作做好 顶尖 压缩时间 -> 提高效率 好工作 - 行业内最高端的工作 第二阶段...

四月 5, 2023 · 1 分钟 · genffy
SSE What Why How

SSE What Why How

Server-Sent Event 是什么 Server-Sent Event (SSE) 是一种用于在 Web 应用程序中向客户端发送实时事件的技术,它允许服务器向客户端推送数据,而无需客户端不断地轮询服务器。 为了解决什么问题 SSE 是为了解决传统的轮询技术所面临的问题而引入的。在传统的轮询中,客户端不断地向服务器发送请求以检查数据是否可用。这种方式会占用大量带宽和服务器资源,同时也会导致响应延迟。SSE 则完全颠覆了这种方式,客户端只需要向服务器发送一个请求并保持长连接,服务器在有数据更新时即可通过这个连接向客户端推送数据。这种方式减少了不必要的请求和响应,从而提高了性能和效率。SSE 通常用于实时数据更新、通知和聊天应用程序等场景。 – from @chatGPT 数据流规范以及注意事项 数据流规范如下 数据流以 data: 开头,表示接下来是数据内容。 数据内容可以是任意文本格式的数据,通常是 JSON 或纯文本。 数据内容必须以 \n\n 结尾,表示这是一个完整的数据块。 可以包含一个或多个事件标识符 (event ID),以 event: 开头。事件标识符可以用于标识服务器发送的数据类型。 可以包含一个或多个注释,以 : 开头。 可以包含一个可选的重试时间 (retry time),以 retry: 开头,表示客户端在连接断开后应该等待多长时间后重试连接。重试时间必须是以毫秒为单位的整数。 – from @chatGPT 注意事项 当不使用 HTTP/2 时,SSE 存在打开连接数的限制,这个限制对于打开多个选项卡的情况尤其痛苦,因为每个浏览器都有一个非常低的限制数量 (6)。在 Chrome 和 Firefox 中,这个问题被标记为 “不会修复”。这个限制是针对每个浏览器 + 域名的,这意味着您可以在所有选项卡中打开 6 个 SSE 连接到 www.example1.com,以及另外 6 个 SSE 连接到 www.example2.com(根据 Stackoverflow 的说法)。在使用 HTTP/2 时,最大并发 HTTP 流的数量是服务器和客户端协商的(默认为 100)。 – from MDN...

三月 13, 2023 · 2 分钟 · genffy

为不同的 git repo 配置 ssh key、gitconfig

对不同的邮箱生成不同的 ssh key 生成密钥对 # 设置公司的 ssh-keygen -t rsa -C "[email protected]" -f ~/.ssh/gitlab_rsa # 设置默认的,一般都是给 gitlab 用的 ssh-keygen -t rsa -C "[email protected]" # 查看生成的密钥对 ls -la ~/.ssh # -rw------- 1 genffy staff 2610 Feb 15 17:48 gitlab_rsa # -rw-r--r-- 1 genffy staff 578 Feb 15 17:48 gitlab_rsa.pub # -rw------- 1 genffy staff 2602 Feb 15 17:51 id_rsa # -rw-r--r-- 1 genffy staff 571 Feb 15 17:51 id_rsa.pub 创建配置文件 vim .ssh/config 填入以下内容...

三月 8, 2023 · 2 分钟 · genffy