书生·浦语大模型实战营(一):书生·浦语大模型全链路开源体系
书生·浦语大模型实战营(一):书生·浦语大模型全链路开源体系
github:https://github.com/InternLM/Tutorial/tree/camp2
InternLM2 报告:https://arxiv.org/pdf/2403.17297.pdf
视频地址:https://www.bilibili.com/video/BV1Vx421X72D/
模型到应用的典型流程:
对于机器人领域,构建智能体应该更能满足应用场景的要求。
项目案例:
https://github.com/BestAnHongjun/InternDog
针对水面无人艇而言,在设计的过程中,应该有较好的顶层设计,哪些信息从外界API获取,哪些功能通过调用API执行,同时要注意工具是备选,应该是通过选择工作,完成指令,而不是变成分类任务,机械地调用
同时,针对特定情境下,应该通过代码生成,从而构建新的内部API
Lagent,借助AutoGPT等方式,实现更好的工具选择。
同时使用更加丰富的多模态智能体工具箱,多模态的信息输入对于机器人而言应该是很重要的信息补充
关于微调:
增量训练的目的是 ...
书生·浦语大模型实战营(二):InternLM Demo
github:https://github.com/InternLM/Tutorial/tree/camp2
视频地址:https://www.bilibili.com/video/BV1AH4y1H78d/
工具记录
123# 从本地使用 ssh 连接 studio 端口# 将下方端口号 38374 替换成自己的端口号ssh -CNg -L 6006:127.0.0.1:6006 root@ssh.intern-ai.org.cn -p 38374
模型下载
6.2.1 Hugging Face
使用 Hugging Face 官方提供的 huggingface-cli 命令行工具。安装依赖:
1pip install -U huggingface_hub
然后新建 python 文件,填入以下代码,运行即可。
resume-download:断点续下
local-dir:本地存储路径。
其中 linux 环境下需要填写绝对路径.
123import os# 下载模型os.system('huggingface-cli download --resume-downloa ...
书生·浦语大模型实战营(七):OpenCompass 大模型评测实战
课程文档:https://github.com/InternLM/Tutorial/blob/camp2/opencompass/readme.md
视频:https://www.bilibili.com/video/BV1Pm41127jU/?spm_id_from=333.788&vd_source=3194af3e77968cb10b1d50711d07106a
OpenCompass
上海人工智能实验室科学家团队正式发布了大模型开源开放评测体系 “司南” (OpenCompass2.0),用于为大语言模型、多模态模型等提供一站式评测服务。其主要特点如下:
开源可复现:提供公平、公开、可复现的大模型评测方案
全面的能力维度:五大维度设计,提供 70+ 个数据集约 40 万题的的模型评测方案,全面评估模型能力
丰富的模型支持:已支持 20+ HuggingFace 及 API 模型
分布式高效评测:一行命令实现任务分割和分布式评测,数小时即可完成千亿模型全量评测
多样化评测范式:支持零样本、小样本及思维链评测,结合标准型或对话型提示词模板,轻松激发各种模型最大性能
灵活化 ...
书生·浦语大模型实战营(三):InternLM RAG
视频:https://www.bilibili.com/video/BV1QA4m1F7t4/?vd_source=3194af3e77968cb10b1d50711d07106a
教程:https://github.com/InternLM/Tutorial/blob/camp2/huixiangdou/readme.md
茴香豆:https://github.com/InternLM/HuixiangDou
LLM的局限性:
知识时效性受限:如何让LLM能够获取最新的知识
专业能力有限:如何打造垂域大模型
定制化成本高:如何打造个人专属的LLM应
两种开发范式:
RAG:检索增强生成
外挂知识库,从知识库中匹配到相应文档,然后和提问一起交给LLM
低成本、可以实时更新、收到几座影响、单次回答知识有限
Finetune:微调
可以个性化微调、知识覆盖面广、成本高昂、无法实时更新
RAG:
RAG(Retrieval Augmented Generation)技术,通过检索与用户输入相关的信息片段,并结合外部知识库来生成更准确、更丰富的回答。解决 LLMs 在处理知识密集型任务时可 ...
LangGraph 核心概念
核心概念
LangGraph 的核心是将代理工作流程建模为图表。您可以使用三个关键组件定义代理的行为:
State:表示应用程序当前快照的共享数据结构。它可以是任何 Python 类型,但通常是TypedDict或 Pydantic BaseModel。
Nodes:对代理逻辑进行编码的 Python 函数。它们接收当前值State作为输入,执行一些计算或副作用,并返回更新的State。
[Edges](https://langchain-ai.github.io/langgraph/concepts/low_level/#edges)Node:根据当前情况确定下一步执行哪个操作的 Python 函数State。它们可以是条件分支或固定转换。
通过组合Nodes和Edges,您可以创建复杂的循环工作流,使工作流随时间推移而演变State。然而,真正的强大之处在于 LangGraph 如何管理工作流State。需要强调的是:Nodes和Edges只不过是 Python 函数 - 它们可以包含 LLM 或只是好的 Python 代码。
状态¶
定义图形时要做的第一件事是定义State图 ...
文本检索技术
对话 API
请求参数说明
参数
类型
必填
描述
messages
Array
必填
包含对话的消息列表。
model
String
必填
要使用的模型的ID。
frequency_penalty
Number 或 null
可选
根据文本中已有令牌的频率对新令牌进行惩罚。取值范围在-2.0到2.0之间。
logit_bias
Map
可选
修改指定令牌在完成中出现的可能性。接受一个将令牌映射到偏置值(-100到100)的JSON对象。
logprobs
Boolean 或 null
可选
是否返回输出令牌的对数概率。
top_logprobs
Integer 或 null
可选
如果 logprobs 设置为 true,则返回每个令牌位置上最有可能的令牌数,每个都带有关联的对数概率。
max_tokens
Integer 或 null
可选
可以在聊天完成中生成的最大 令牌数 29。
n
Integer 或 null
可选
为每个输入消息生成的聊天完成选择的数量。
presence_penalty
Number 或 null
可选
根据 ...
RAG
RAG(检索增强生成)通过提供对知识来源的访问来减少幻觉,这些知识来源为用户查询提供了额外的上下文,即LLM(如 Claude3.5、 GPT-4o)。它还旨在克服语言模型的上下文限制。
但是如果我们稍微简化一下,它就没有什么特别之处了。想问LLM 巴拉克·奥巴马的生日是什么?为什么不先找到奥巴马的维基百科页面(检索),将其添加到提示中(增强),然后让LLM回答问题(生成)。就这样!我们构建了我们第一个 RAG 系统。
在其核心,RAG 系统包含 2 个组件:一个检索器,用于从外部源文档中检索信息,以及一个生成器,使用检索到的信息生成响应。
RAG 常常与基于语义搜索或嵌入构建索引同时出现。
信息检索已经存在一个世纪了。在那些日子里,我们是如何检索相关文档的?没错,就是我们的好朋友 BM25。简单、快速且有效。基于词的检索解决方案如 BM25 也成功地为许多搜索引擎提供了动力。
虽然 RAG 在减少幻觉方面显示出希望,但它并非没有挑战。传统 RAG 系统中的一个关键问题是,在将文档分割成更小的块进行检索时,可能会丢失上下文。这就是 Anthropic 引入了“上下文检索”这一简单概念 ...
Hello World
Welcome to Fanfer’s Blog(https://fanfer.top)! This is your very first post.
Quick Start
Create a new post
1$ hexo new "My New Post"
More info: Writing
Run server
1$ hexo server
More info: Server
Generate static files
1$ hexo generate
More info: Generating
Deploy to remote sites
1$ hexo deploy
More info: Deployment
basic usage
图床更新
12345$ # 将更改提交$ git add .$ git commit -m "更新图片"$ # 推送至github仓库$ git push
部署更新
1$ hexo clean; hexo generate; hexo deploy
python多线程
最近用到python的多线程,因此整理了一下,仅做记录。
创建多线程
要创建一个简单的多线程程序,其中一个线程从API中获取订单信息,另一个线程将订单分配给无人机群,我们可以使用Python的**threading**模块。这里我们模拟API调用和无人机分配,因为没有具体的API和无人机群实现细节。
获取订单的线程:模拟从API中获取新订单,实际使用中,这里应替换为真实的API调用。
分配订单的线程:获取到新订单后,模拟分配这些订单到无人机上。
123456789101112131415161718192021222324252627282930313233import threadingimport timeimport queue# 模拟的订单队列order_queue = queue.Queue()# 模拟从API获取订单def fetch_orders(): order_id = 0 while True: # 模拟API调用的延时 time.sleep(2) order_id += 1 print(f&q ...
搜索的链路
搜索的评价
曝光和点击
曝光: 用户在搜索结果页看到文档,计算曝光
文档点击:在曝光之后,用户点击文档,进入文档的详情页
文档点击率:文档点击总次数/文档曝光总次数
查询词点击率(有点比)
查询词点击:用户点击搜索结果页上任意一篇文档,就算"查询词点击"
查询词点击率(有点比):查询词点击总次数 / 搜索总次数
查询词首屏点击:用户点击搜索结果页首屏的任意一篇文档,就算"查询词首屏点击"
查询词首屏点击率(首屏有点比):查询词首屏点击总次数 / 搜索总次数
💡
各点击率数据:
文档点击率:10% 左右
查询词点击率(有点比):70% 左右
查询词首屏点击率(首屏有点比):60% 左右
有点比重要性高于文档点击率
基础知识:用户满意度、评价指标、搜索链路。
相关性:定义与分档、评价指标、文本匹配、语义匹配。
查询词处理:分词、NER、词权重、类目、意图、改写。
召回:文本召回、向量召回、离线召回。
排序:排序模型、训练。
查询词推荐:推词场景、推词召回、推词排序。
相关性是查询词q和文档d两者的关系。
相关性是客观标准,不取决于 ...






