UserCF算法
UserCF算法UserCF (User-based Collaborative Filtering)算法使用朴素的“人以群分”的思想。基本思路是先找到相似用户,再找到他们喜欢的物品。例如,如果用户A和用户B是相似的,现在给用户A推荐物品,就可以把用户B关注的但用户A没关注的物品推荐给用户A。
UserCF算法步骤步骤1:找到与待推荐用户兴趣相似的用户集合步骤2:从这些相似用户喜欢的物品中选出目标用户没有关注的物品,并将它们推荐给目标用户
用户相似度基于用户行为相似度,计算兴趣相似度。具体来说,用户行为是指喜欢某些物品。将不同用户喜欢的物品列表看做是不同的集合,通过集合求相似的方法,得出用户行为相似度。
Jaccard相似系数Jaccard相似系数可以比较有限集合(A与B)之间的相似性和差异性。Jaccard系数等于A与B交集的大小除以A与B并集的大小,取值范围在0到1之间。越接近1表示越相似,越接近0表示越不相似。1代表两个集合完全相似,0代表两个集合完全没有交集。
余弦相似度余弦相似度计算公式为:Cos(A,B) = (A和B交集大小) / 根号下(A集合大小 * B集合大小),取 ...
Hugging Face 入门 (Transformers/Tokenizer/Pipeline)
Hugging Face 入门 (Transformers/Tokenizer/Pipeline)Hugging Face 是一个开源的自然语言处理(NLP)库,提供了许多工具和模型,帮助用户进行文本处理、模型调用和预训练模型的微调等任务。下面介绍了一些与 Hugging Face 相关的重要概念和步骤。
TransformersTransformers 是 Huggingface 开源的基于 transformer 模型结构提供的预训练语言库,支持 PyTorch 和 TensorFlow2.0。它提供了快速的模型调用功能,并支持模型的进一步训练和微调。
TokenizerTokenizer 是 Transformers 库中的一个重要模块,用于将文本数据切分成单独的标记(tokens)并进行编码,以便交给模型进行处理。在自然语言处理(NLP)中,将文本转换成标记是一个重要的预处理步骤。
不同的模型可能使用不同类型的 Tokenizer 来处理文本数据,例如 BERTTokenizer、GPT2Tokenizer 等。
PipelineHuggingFace 提供了一个接口,称为 P ...
ConstitutionalChain
ConstitutionalChainConstitutionalChain 是一种确保 LLM(Large Language Model)模型输出符合预定义的宪法原则的机制。通过融入特定的规则和指南,ConstitutionalChain 对生成的内容进行过滤和修改,以使其与这些原则保持一致,从而提供更加受控、符合伦理和上下文适当的响应。这种机制有助于维护输出的完整性,同时最大限度地减少生成可能违反指南、具有冒犯性或偏离所期望上下文的内容的风险。
修改 prompt 以引导 LLM 模型回答违规问题尽管 LLM 模型一直在不断进行优化和更新,但通过修改 prompt 内容仍然可以诱导模型回答违法或违规的内容。这表明在确保模型输出合规性方面,依然需要引入额外的机制。
使用 ConstitutionalChain 规避 LLM 模型输出违法内容为了规避 LLM 模型输出非法或违规的内容,使用 ConstitutionalChain 是一种有效的方法。
当 Constitutional AI 检测到模型回答中存在违规或不道德的内容时,它会及时更新模型的输出,确保输出内容符合法律法规和伦 ...
PySpark AI 简介
PySpark AI: 基于自然语言的大规模数据分析PySpark AI 是一个开源项目,旨在通过使用自然语言作为程序语言进行大规模数据分析。
自然语言作为程序语言的特性自然语言作为程序语言具有以下特性,可以简化 Spark 数据开发过程:
数据获取通过用户提供的描述,PySpark AI 可以执行 web 搜索并利用 LLM 确定最合适的结果。然后,它可以顺利地将选择的 web 数据合并到 Spark 中,所有这些都是在一个步骤中完成的。
DataFrame 操作PySpark AI 允许用户使用自然语言描述来进行 DataFrames 的转换、绘图和解释。这些特性显著增强了代码的可读性和效率,使对 DataFrames 的操作变得简单直观。
用户自定义函数(UDFs)通过一个简单的装饰器,用户只需要提供一个文档字符串,PySpark AI 将处理代码的其余部分。这个特性简化了 UDF 的创建过程,让用户可以更专注于函数定义。
缓存PySpark AI 集成了缓存功能,以提高执行速度、生成可重复的结果并节省成本。
PySpark AI 案例:分析上市公司的股东持股情况下面是一个简单 ...
ChatGPT Custom Instructions
ChatGPT Custom InstructionsChatGPT Custom Instructions 使用户可以根据自己的需求定制 ChatGPT,并允许添加偏好和要求,以便在生成回复时加以考虑。
OpenAI 通过 custom instructions 深化了 ChatGPT 的可操控性,使其能够更好地适应每个人的多样化背景和独特需求,这在理解关键方面起到了关键作用。
ChatGPT 将在每次对话中考虑用户的 custom instructions,这样用户无需在每次对话中重复提供自己的偏好或信息。
Custom Instructions 效果对比下图展示了一个 custom instructions 的示例:
启用 custom instructions 后,对 ChatGPT 提问:”Write me code for getting the nth number in Fibonacci sequence”
ChatGPT 的回复中只提供了 GO 代码。
关闭 custom instructions 后,对 ChatGPT 提问相同的问题:”Write me co ...
HTTP/3 协议:提升网络性能与解决传输层问题
HTTP/3 协议:提升网络性能与解决传输层问题HTTP/3 由互联网工程任务组 (IETF),在 2022 年 6 月作为 RFC 9114 提议的标准发布
为什么需要新协议HTTP/2 在数据传输阶段,虽然在应用层多个请求可以同时发送,但是传输层 TCP 协议要求数据包必须按顺序串行传输。如果其中一个数据包丢失或者延迟,后续的数据包就需要等待重传,或者等待前面数据包传输完成后才能发送,也就是说队头阻塞问题并没有彻底解决。
由此可得,HTTP/2 主要性能瓶颈在传输层 TCP 协议。
TCP 协议解决方案TCP 协议升级 (×)为了解决上述问题,有 2 个升级 TCP 协议的方案
Fast Open:缩短连接建立时间
BBR 算法:避免拥塞和队头阻塞
但是 TCP 协议被广泛内置于操作系统内核、中间件固件以及硬件实现中,这些系统和设备都需要进行代码更新、测试和部署,才能支持新的 TCP 协议改进版本。这个过程需要花费大量时间和精力,并且需要保证向后兼容性,以确保老版本的 TCP 协议和新版本 TCP 协议,可以共存于同一个网络中。
TCP 协议更换 UDP 协议 ...