目前很流行的ollama底层依赖的就是llama.cpp。跟ollama相比,llama.cpp更轻量、灵活,这也是我转向llama.cpp的原因之一。另外,llama.cpp使用的gguf格式也能方便获得,要是社区没有提供的话,还可以自己将模型转为gguf格式,但基本常用的模型都已经有gguf,一 …...
Read more →
本文使用的技术栈为python+qdrant(docker 镜像)+ollama(使用嵌入模型 bge-m3)+deepseek(兼容 openai 接口)。如果连大模型都想用本地部署的,只需要用ollama再下载个deepseek大模型,将配置改成本地即可。
预先启动向量数据库及嵌入模型服务。
$ …...
Read more →
大模型会提供一个叫Tool Calls(也有的叫Function Calls)的功能,看起来很神奇,实际上就是LLM根据对话内容提取出需要使用的工具及其参数,再将其以结构化的形式返回给客户端,客户端通过响应的内容判断是否存在“使用工具”这个操作,如果存在,则从中获取所需使用的“工具名”及“参数”来使 …...
Read more →
再看操作系统原理时,又“吸收”了一个名词“页缓存”,跟ChatGPT扯了下之后,就有了更深刻的理解,于是灵光一现问了以下问题:
异步I/O的本质就是提交I/O后,不会阻塞调用者,并在I/O完成后通知调用者结果。
现在分析一下我的问题。在用户层面实现I/O函数,并通过用户层面实现的“页缓存”(本质上就 …...
Read more →
C语言中数组越界是未定义行为,因此以下代码在不同的编译器或者不同版本的同一编译器行为是不可预测的。在gcc某些版本中,以下代码会出现有意思的行为。
// demo.c #include <stdio.h> #include <stdlib.h> void jmp() { …...
Read more →