Blog

Page 9 - Showing 5 of 88 posts

  • vLLM讲解
    vLLM讲解
    Arrow right

    本文探讨了LLM(Language Model)中KV Cache的不足,包括其计算过程中的冗余重复、显存利用率问题以及内存碎片问题。文章指出,尽管通过KV Cache可以缓存中间结果以提升推理速度,但在显存利用率上存在多个不足,如预分配显存未充分利用、显存碎片问题以及无法有效处理不同长度的Prompt导致的显存浪费。接着,文章介绍了操作系统中的Page Attention技术,该技术通过将内存划分为多个page和虚拟内存来优化进程内存分配,为vLLM提供了一种类似解决方案。最后,文章讨论了共享KV blocks的概念,旨在减少显存占用并提高吞吐量。

    🕒1 min read
      LLMKV Cache显存利用率内存碎片Page AttentionvLLM
  • 常见位置编码及其实现
    常见位置编码及其实现
    Arrow right

    本文介绍了可学习位置编码(Learnable Position Encoding)的概念、实现方式以及在Transformer模型中的应用。可学习位置编码是一种无需训练即可直接应用的位置嵌入方法,操作简单易懂,易于理解。

    🕒3 min read
      可学习位置编码Transformer模型词嵌入向量三角函数信息编码
  • MySQL的ACID实现原理
    MySQL的ACID实现原理
    Arrow right

    本文介绍了MySQL的ACID实现原理,包括原子性、一致性、隔离性和持久性。Innodb作为MySQL最常用的存储引擎,其内部构造包括buffer pool、redo log和undo log。Atomic实现原理主要通过undo log保证事务的原子性,Consistency由业务逻辑或约束实现,Isolation采用MVCC提高事务并发性能。Durability通过redo log防止数据库崩溃造成数据丢失。

    🕒1 min read
      MySQLACIDInnodbundo logredo logMVCCDurability
  • Redis知识杂谈
    Redis知识杂谈
    Arrow right

    Redis底层手搓了很多数据结构,更加适合`Redis`的应用场景,提高了高性能和低存储消耗。

    🕒1 min read
      RedisString数据结构QuickListHashZset
  • 疑难错误:/usr/bin/ld: cannot find -lxxx
    疑难错误:/usr/bin/ld: cannot find -lxxx
    Arrow right

    本文讲述了在开发过程中遇到的一个编译错误,即`/usr/bin/ld: cannot find -lLLVM-13-rust-1.58.0-nightly`。原因是该库的路径被写入了zshrc的配置文件中的`LD_LIBRARY_PATH`位置,导致编译器无法找到。通过查阅资料,发现`LIBRARY_PATH`和`LD_LIBRARY_PATH`的区别,并了解到它们在编译和运行时的作用及影响工具。同时,文章还提供了如何同时使用这两个变量的建议,以及在使用时应考虑的安全性问题、调试问题和持久化配置。

    🕒2 min read
      编译错误LD_LIBRARY_PATHLIBRARY_PATHgcczshrc