三段创造

我发现任何有点难度的工作,尤其是科研或高科技领域,都能分成三个阶段:0→1、1→99、99→100。这不是什么严谨的理论,就是个帮我自己理解世界的框架。

0→1

从学术上没人提过的想法,到写成论文、实验上严格证明出来。起点是空白,终点是一个可被复现的原理验证。

这个阶段的核心问题是“这事能不能成”。做这件事的人需要容忍模糊、不怕试错、有点叛逆。让他们去搞流程管理或者跑渠道推广,基本是折磨。

1→99

原理有了,但还不稳定、不靠谱。1→99就是把它变成稳定、可规模化、可交付的东西。对一首歌来说,是编曲、录音、混音、母带。对一项技术来说,是把实验室里动不动就坏的原型变成一条能稳定运行的生产线。

这个阶段的核心问题是“怎么能一直稳定地做成”。需要的是系统思维、耐心、项目管理能力。数字“1到99”只是个代号,不代表具体的进度值。

99→100

这是最容易被误解的一段。99→100不是把产品做到完美无瑕,而是让需要它的人能够通过便捷的渠道轻易找到并使用。

阅读全文 »

Automatic Fortran to C++ conversion

1. 安装fable环境

Pre-requisites:

  1. Please have a Linux environment, bash shell.

  2. Please create a working directory

    1
    2
    export WORK=<new working directory>
    cd ${WORK}
  3. Download source code:

    1
    2
    wget https://raw.githubusercontent.com/cctbx/cctbx_project/master/libtbx/auto_build/bootstrap.py --no-check-certificate
    python bootstrap.py hot update --builder=cctbx

Create and configure a conda environment:

1
2
3
4
5
6
7
8
9
10
wget https://repo.continuum.io/miniconda/Miniconda2-latest-Linux-x86_64.sh --no-check-certificate
chmod u+x Miniconda2-latest-Linux-x86_64.sh
./Miniconda2-latest-Linux-x86_64.sh # tested with conda 4.5.11
# please install in directory ${WORK}/miniconda2
# no, do not prepend Miniconda2 to .bashrc

source miniconda2/etc/profile.d/conda.sh
conda create -y --name fable36 python=3.6
conda activate fable36
conda install six future

Create and configure FABLE:

1
2
3
4
5
6
7
mkdir build36
cd ${WORK}/build36
python ../modules/cctbx_project/libtbx/configure.py fable
# python ../modules/cctbx_project/libtbx/configure.py --enable_cxx11 fable # support C++11 standard
source ${WORK}/build36/setpaths.sh
cd ${WORK}/build36; make; cd ${WORK}
cd ${WORK}/build36; make; cd ${WORK}

Test FABLE in a new login shell (bash, cd ${WORK}):

1
2
3
4
5
source miniconda2/etc/profile.d/conda.sh
conda activate fable36
source ${WORK}/build36/setpaths.sh
mkdir test36; cd test36
libtbx.run_tests_parallel module=fable nproc=Auto
阅读全文 »

断网 GPU 服务器使用 Claude Code 指南

适用场景:本地 macOS + SSH 密码登录 + 服务器完全断网

原理

1
服务器 → SSH 反向隧道 → 本地电脑(Clash/pproxy)→ 互联网 → Anthropic API

方案选择

场景 推荐方案
本地使用 Clash 代理上网 方案一:直接转发 Clash 端口(推荐)
本地直连外网,无代理工具 方案二:pproxy 自建代理

方案一:转发 Clash 端口(推荐)

如果本地使用 Clash/Clashy 上网,直接把 Clash 的代理端口通过 SSH 隧道转发给服务器,流量完全走 Clash 的规则,VPN 分流等策略全部生效。

阅读全文 »

曾经沧海难为水,除却巫山不是云

终有弱水替沧海,再无相思寄巫山

深爱之人藏心不挂嘴,久爱之人在梦不在眼

相遇就像你特别喜欢可乐,喝的时候爽到了就是意义;重点不是结局在不在一起,而是共同创造了独属于你们的时间线。

“如果有一天我不来找你,你会怎么办?”
“我会试着不期望你来。”

他说:
“九叶重楼二两,
冬至蝉蜕一钱。
煎入隔年雪煮沸,
可医世人相思疾苦。”
我又问:
“可重楼七叶一花,
冬日何来蝉蜕
雪又怎能隔年
相思又怎可解。”
大夫说:
“孰不知,夏枯即为九重楼,
掘地三尺寒蝉现,
除夕子时雪,落地已隔年,
过了离别时,相思亦可解!”
——
吾悲叹:“可奈何,
夏枯辛苦深寒,
寒蝉体小声微,
面拂寒夜风,隔年雪冻人。
相思虽可解,但寒苦卑弥已入喉,肠已断,泪难收,回首白头亦乃无解。”

没有什么一成不变,要学着允许一切发生。

当你凌晨睡不着 突然意识到自己曾经最想共度一生的人 居然变成了人生中的一个教训时

你根本没做错什么 我们都一样 爱就是会消散

“她满脸厌恶的求我放过她,我忽然愣住了,想起很久以前她小心翼翼的问我,你会离开我吗”

阅读全文 »

一般来说,开发岗位的算法面试是不会出题要求面试者临时设计一个数据结构来解决某个问题,大多数时候只是要求面试者能够熟练掌握常见的数据结构及其实现、能够说出这种数据结构的优缺点即可。

大模型架构

原始 Transformer

transformer

分词方式

字节对编码 BPE

本质上是subword作为词表,只不过是优先合并出现频率高的字符,直到词表大小合适或者最高词频为1

注意力机制

注意力评分函数

  • 加性注意力评分函数

    加性注意力评分函数可以看作,将查询和键连结起来后输入到一个多层感知机(MLP)中, 感知机包含一个隐藏层,其隐藏单元数是一个超参数ℎ。 通过使用tanh作为激活函数,并且禁用偏置项,

  • 缩放点积注意力评分函数

    为确保无论向量长度如何, 点积的方差在不考虑向量长度的情况下仍然是1, 将点积除以

阅读全文 »

心理学效应

彼得原理

《彼得原理》(英语:Peter Principle)是管理学家劳伦斯·彼得在1969年出版的一本同名书,里面提出的“彼得原理”是指:在组织或企业的等级制度中,人会因其某种特质或特殊技能,令他被擢升到不能胜任的高阶职位,最终变成组织的障碍物(冗员)及负资产。

孕妇效应

孕妇效应意即偶然因素随着自己的关注而让你觉得是个普遍现象,就是当人怀孕了就更容易发现孕妇,你开了奔驰就更容易看到奔驰,你拎了一个LV就容易发现满大街都是LV。用来形容人们容易把自己的关注点投射在外界,以寻找更多案例来证实内心想法的情况。

梅拉宾法则

梅拉宾法则(The Rule of Mehrabian):梅拉宾在1971年提出:一个人对他人的印象,约有7%取决于谈话的内容,辅助表达的方法如手势、语气等则占了38%,肢体动作所占的比例则高达55%,

鹅卵石法则

今天看到一个说法:人们会时不时把有趣的短视频、图片或者可爱的小故事分享给所爱的人。这种行为叫Pebbling,意为“丢鹅卵石”。据说有一种企鹅喜欢在伴侣的巢穴中留一块鹅卵石,告诉它我来过,我很关心你。

GABA

阅读全文 »

模型 分数
glm-4-9b-chat-1m_7.csv 53
glm-4-9b-chat-1m_15.csv 64
glm-4-9b-chat-1m_20.csv 63
Yi-9B-chat-15 70
Yi-9B-chat-7 63
Yi-9B-chat-20 53
glm-4-9b-chat-1m_have_kongge_7.csv
glm-4-9b-chat-1m_have_kongge_15.csv 59
glm-4-9b-chat-1m_have_kongge_20.csv 74
glm-4-9b-chat-1m_have_kongge_25.csv 81
glm-4-9b-chat-1m_have_kongge_30.csv 79
glm-4-9b-chat-1m_have_kongge_35.csv 84
glm-4-9b-chat-1m_have_kongge_40.csv 79
glm-4-9b-chat-1m_have_kongge_45.csv 84
glm-4-9b-chat-1m_have_kongge_50.csv 76
glm-4-9b-chat-1m_have_kongge_55.csv 82
glm-4-9b-chat-1m_have_kongge_60.csv 81
glm-4-9b-chat-1m_have_kongge_65.csv 81
glm-4-9b-chat-1m_have_kongge_70.csv 77
glm-4-9b-chat-1m_rerank_30_15 77
glm-4-9b-chat-1m_rerank_70_30 82
glm-4-9b-chat-1m_rerank_80_25 80
glm-4-9b-chat-1m_rerank_80_30 79
glm-4-9b-chat-1m_have_kongge_story_new_45 81
glm-4-9b-chat-1m_have_kongge_story_new_35 83
Yi-9B-chat-7_have_kongge_15 50
Yi-9B-chat-7_have_kongge_16 61
Yi-9B-chat-7_have_kongge_17 58
Yi-9B-chat-7_have_kongge_12 59
Yi-9B-chat-7_have_kongge_13 59
Yi-9B-chat-7_have_kongge_7 52
Yi-9B-chat-7_have_kongge_20 57
qwen2-72B-In-have_kongge_15 68
57
Yi-9B-chat-7_rerank_30_15 52
  • 数据清洗,去除文档里面的脏数据
  • 切割文档的长度 这个参数还可以调
  • 多次答案投票
  • 微软的GraphRAG技术
  • 英文没有空格

A Controllable Text Generation Framework based Prompt learning for Query Auto-completion

论文思路

研究领域是query自动补全(QAC),对应的显示场景是搜索栏的用户搜索场景,用的研究方法是生成式模型而非召回是模型(该领域常规的方法是先生成候选词,然后对候选词排序)

对于QAC领域,传统的召回式生成query仅仅通过候选词频率进行召回,缺乏对于query语意层面的理解,同时对于unseen 的输入,难以生成高质量的补全,以及召回式的生成难以充分实现个性化的生成

其他生成模型的历史信息的局限性:时间跨度短,数据量比较少,随着NLP领域中NLG模型的发展,transformer系列的自然语言生成式模型在各个领域展现出巨大的潜力,而且像GPT2这样在大量无监督数据上训练的模型,拥有强大的语意理解能力,有越来越多的研究工作研究生成式模型用于QAC,生成式的模型能够有效应对上述的几个问题。(蹭大模型的热度,垂直领域生成模型)

对于GPT模型,我们使用提示学习来对GPT的生成做进一步的控制,来达到用户的个性化需求,通过使用提示学习对GPT进行微调,可以使GPT模型生成的query更加贴近用户偏好习惯,而传统上的提示学习包括hard提示和soft提示都是从自然语言语意层面对GPT的输出进行提示,而用户个人的消费行为习惯可能无法简单的从语言层面展现,而在使用bert模型进行语意理解和语意抽取进而进行下游任务的分类时,bert可以很好地进行高维度的特征表征,所以在本文中我们采用bert模型抽取高维度的用户个人特征表征作为GPT模型的提示,进而使GPT的输出达到个性化的要求。(特别的,bert和GPT使用统一词表来保证两个模型的高维映射空间是一致的)

Abstract

Query auto-completion (QAC) aims at suggesting plausible completions for a given query prefix. The recent QAC methods introduce Natural Language Generation to generate the completions for user input.

However, NLG (Natural Lagnuage Generation) methods ususally output unsense or wrong words without controll. Moreover, A serious drawback of generative methods is that they can produce an ether effect. It severely affected the performance of the generative methods.

We proposed a framework that controls the generation of queries using prompt learning methods, thereby making the generative methods controllable. This framework consists of three parts: the control module, the prompt module, and the generation module. The control module generates a prompt vector endowed with implicit features, then the prompt module ingests the prompt vector and user input into the generation module, and ultimately, the generation module generates the query under control.

阅读全文 »

程序员的数学2-概率统计

前言

  • 概率是面积与体积的泛化
  • 随机变量是一种以变量为名的函数

Open Information Extraction: A Review of Baseline Techniques, Approaches, and Applications

开放域抽取综述

TeacherLM: Teaching to Fish Rather Than Giving the Fish, Language Modeling Likewise

Use “{Question} {Answer} {Fundamentals} {Chain of Thought} {Common Mistakes}” five-element training object for each sample. These sample to train a small model called TeacherLM to re-construct others training data to train or fine-tuning larger LLM

Improving Prompt Tuning with Learned Prompting Layers

选择性prefix-tuning learning 由原来全部加个prefix 到 现在的选择性添加 prefix

Woodpecker: Hallucination Correction for Multimodal Large Language Models

Woodpecker的架构如下,它包括五个主要步骤: 关键概念提取、问题构造、视觉知识检验、视觉断言生成 以及幻觉修正。

ChatKBQA: A Generate-then-Retrieve Framework for Knowledge Base Question Answering with Fine-tuned Large Language Models

微调大模型+知识图谱 code link

阅读全文 »
0%