← All writing← 全部文章
AIAI 13 min read13 分鐘閱讀 Free免費

AI Prehistory | Two Legends Who Made Encoding Possible · Part II · TuringAI 前傳|讓編碼變成可能的兩位傳奇人物 · 下篇 · 圖靈

“3 > 2 = 2,250; 2 < 3 = 3,240”: Without Ideas This Strange, Today’s AI Would Be Hard to Imagine「3 > 2 = 2,250;2 < 3 = 3,240」:沒有這些讀起來瘋狂的東西,就幾乎沒有今天的 AI

Horris Tse
Horris Tse Founder · HtPiHtPi 創辦人
Save收藏

In Part I, Gödel encoded mathematical symbols, formulae, and proofs as integers, allowing one formal procedure to inspect another string of mathematical language. Once descriptions could become processable input, a more intriguing question emerged: could the procedure doing the work also be written down with complete precision?

上篇,哥德爾把數學符號、公式與證明編成整數,令一套形式程序可以檢查另一串數學語言。描述一旦成為可處理的輸入,一個更有意思的問題便出現了:執行工作的程序本身,能否也被準確寫下來?

The answer changed more than the mathematical understanding of computation. It laid the foundation for programming. One machine can perform countless different tasks because its instructions are not permanently fused into its mechanism: they can be represented, stored, read, and executed.

答案不只改變了數學家理解「計算」的方式,也奠定了 programming 的基礎。同一部機器之所以能完成無數不同工作,關鍵正是指令不再焊死在機器裏,而可以被表示、儲存、讀取和執行。

Preface — Part I began with Gödel and the conversion of mathematical statements and proofs into integers. Part II carries the question forward: can a procedure itself be described exactly, becoming input that a machine can read and execute? That step leads to the universal machine, to programming, and ultimately to AI.

Black-and-white portrait of Alan Turing, 1951
Alan Turing, 1951. Elliott & Fry / Wikimedia Commons; marked public domain.

03When descriptions become processable input

Gödel encoded mathematical symbols, formulae, and proofs; a program is a set of executable instructions. They are not the same thing. Yet Gödel revealed a possibility that would become immensely important: once a system of symbols and rules can be encoded precisely, another procedure can read, check, and process it.

In present-day software terms, formulae and proofs may be treated as data. The proof checker is the program; the rules of inference are the logic it follows; and its output is “valid” or “invalid”, together with the point at which an error occurs. Only when a different program actively searches for a proof does the proof found begin to resemble an output.

A proof checker, however, still follows rules written in advance. Push the idea one step further and the question becomes more interesting: which tasks can be reduced to a fixed procedure, carried out step by step by a person or a machine? During the 1930s, Herbrand, Gödel, Church, Kleene, Turing, and Post approached this question from different directions. Within a few years, their paths began to converge.

1931Gödel: arithmetising syntax

Gödel devised mechanically processable integer codes for symbols, formulae, and proofs, making mathematical language itself a mathematical object.

1934Herbrand → Gödel: from recursive equations to general recursive functions

The French logician Jacques Herbrand had proposed an unpublished idea: use a set of equations to specify relationships among the values of a function. Gödel adopted and modified the idea in his 1934 Princeton lectures; Church later credited this form of recursiveness explicitly to Herbrand and Gödel.

This line of work sought a mathematical definition of “repeated calculation according to fixed rules”. Gödel was not yet convinced, however, that the definition captured every procedure that could intuitively be carried out mechanically.

1935–36Church, Kleene, Turing, and Post: different routes to the reach of procedure

Their question was concrete: if someone claims that a task can be completed by following fixed steps, can mathematics define what “fixed steps” means and determine which problems such steps can, in principle, solve?

Church and Kleene described computation by transforming formulae on paper through symbolic substitution (the λ-calculus). Herbrand, Gödel, and Kleene used equations specifying how later values of a function follow from earlier ones (general recursive functions). Turing and Post took another route: imagine an operator who can only move, read, write, or erase symbols according to a finite set of instructions.

These apparently unrelated models were later shown to have the same computational power: any procedure expressible in one can be translated into the others. Church and Turing then used their respective definitions to prove that no fixed procedure can decide whether every mathematical statement written in a prescribed symbolism and grammar must be true.

“Computable” was no longer merely an intuition; it had acquired a precise mathematical scope. The fact that several independent models traced the same boundary became the principal support for the Church–Turing thesis: any calculation that can be completed through finite, explicit steps can be expressed by these models.

1938–39Turing: using Gödel representations to extend systems of logic

Turing’s doctoral thesis examined a new question: could a logical system be extended in stages, with new rules or axioms added at each stage so that it could prove statements about integers beyond the reach of the original system? He organised these systems with mathematical notations representing their order, calling the result ordinal logics.

For formulae at one stage to recognise and operate on formulae from an earlier stage, the formulae first had to become objects that could enter mathematical operations. Turing therefore adopted Gödel’s method explicitly: assign an integer to every symbol, then use prime powers to encode the entire string as a Gödel representation. Other formulae could then enumerate, identify, and transform the encoded formulae through those integers.

Here Gödel’s encoding was not merely a parallel idea. It was an actual tool in Turing’s construction and analysis of ordinal logics.

Before the universal machine

04To study the limits of computation, first define computation

Mathematicians were pursuing a specific problem: could a fixed procedure take any statement of formal logic as input and decide whether it must be true? Before asking whether such a procedure existed, they had to specify exactly what a “fixed procedure” was allowed to do.

What is a “statement of formal logic”?

It is not a sentence that merely sounds formal. It is a mathematical sentence written with prescribed symbols and grammar. A simple pattern of inference is: P → Q; we know P; therefore Q. What P and Q stand for may change, while the structure of the inference remains fixed.

An ordinary sentence such as “Today is good” admits many readings; formal logic deliberately excludes such ambiguity. The role of every symbol, the grammar of a well-formed sentence, and the permissible rules of inference are all specified in advance. The question was whether a general procedure could determine, for every statement written to those specifications, whether it holds in every case satisfying its premises.

Turing imagined a human calculator working strictly by prescribed rules (at the time, computer could also mean a person employed to calculate). At any moment, the calculator inspects only a small area of the paper, writes or erases a symbol, shifts attention left or right, and chooses the next action from the symbol in view and the present state of the work.

Turing abstracted these actions into a paper tape divided into cells, a head that reads or writes one cell at a time, a finite set of internal states, and a table of instructions. An “internal state” records what the machine is currently doing—for example, “move right until the next blank”, “a 1 was just read; write 0 next”, or “the task is complete; stop”.

What had been an intuitive notion of “mechanical calculation” became an exact mathematical model: the Turing machine.

Each Turing machine is defined by its symbols, internal states, and table of instructions. Turing wrote the complete table in a standard form and encoded it as a “description number”. The number does not represent the answer to a calculation; it represents how a Turing machine behaves, step by step.

Once an instruction table can be written on the tape, it ceases to be merely a document for human readers. It can become input to another Turing machine. Turing then asked whether one machine could read the description of any other Turing machine and simulate it by following that table. It could. Such a machine is the universal machine.

A universal machine reads two things: the description of the Turing machine to be simulated, and the input originally intended for that machine. It then reproduces the machine’s behaviour step by step. A different physical mechanism need not be built for every task. The same executing mechanism can do different work simply by reading a different description of instructions.

GödelEncode mathematical descriptions as integersObjects: symbols, formulae, proofs
Method: symbol codes and prime powers
Effect: syntax becomes an arithmetical object

TuringEncode machine descriptions as inputObjects: states, symbols, instruction tables
Method: encode each state, symbol, and action
Effect: one machine can simulate others

The breakthrough shared by Gödel and Turing can be stated plainly: a description need not be written only for human eyes. Once encoded, it can become an object a system can process. Gödel enabled mathematics to operate on descriptions of formulae and proofs. Turing enabled a fixed machine to read the description of another machine and simulate it.

This separates the mechanism that performs the work from the instructions specifying what work to perform. Keep the mechanism fixed, change the instruction description supplied as input, and its behaviour changes. The demonstration below isolates that single idea.

Historical note: was Turing’s universal machine directly inspired by Gödel numbering?

Whether Gödel’s work had a causal role in Turing’s 1936 research cannot now be established. The surviving evidence suggests that Turing may have read Gödel’s paper closely only after the central idea of the universal machine had taken shape. It is therefore more accurate to say that the two men began with different problems and independently made descriptions processable by mathematics or machines—not that Turing simply extended Gödel numbering into the universal machine.

By 1939 the connection is explicit. In his doctoral thesis, Turing used Gödel representations to encode formulae as integers, which other formulae could enumerate, identify, and transform. The timeline above describes this documented technical succession.

Preface — 上篇由哥德爾開始,看數學陳述與證明如何變成整數。今篇把問題再推前一步:一套程序能否同樣被準確描述,成為機器可以讀取與執行的輸入?這一步,通往通用機器、程式,也通往今日 AI。

1951 年的艾倫・圖靈黑白肖像
Alan Turing,1951。Elliott & Fry/Wikimedia Commons;公有領域標記。

03當「描述」開始變成可處理的輸入

哥德爾編碼的是數學符號、公式和證明;程式則是一組可以執行的指令。兩者不是同一回事,但哥德爾展示了一個後來極其重要的可能:只要一套符號與規則能被精確編碼,另一套程序便可以讀取、檢查和處理它們。

如果借用今天的軟件語言,公式和證明可以視為 data;proof checker 才是 program;推理規則是 checker 依循的邏輯;輸出則是「合法/不合法」,以及錯誤出現在哪一步。若另一套程式主動搜尋證明,找到的證明才比較像 output。

可是,proof checker 仍然只會執行事先寫好的規則。由這裏再推前一步,問題變得更加有意思:究竟哪些工作可以拆成一套固定程序,交由人或機器逐步完成?二十世紀三十年代,Herbrand、Gödel、Church、Kleene、Turing 與 Post 從不同方向追問這件事,幾條研究路線亦在短短數年間逐步匯合。

1931Gödel:把語法算術化

哥德爾為符號、公式和證明建立可機械處理的整數編碼,讓數學語言本身成為數學對象。

1934Herbrand → Gödel:從遞歸方程到 general recursive functions

法國邏輯學家 Jacques Herbrand 曾提出一個未刊構想:以一組方程規定函數值之間的關係。Gödel 在 1934 年的 Princeton lectures 中採用並修改這個想法;Church 其後明確把這套 recursiveness 歸功於 Herbrand 與 Gödel。

這條路線嘗試把「依照固定規則反覆計算」寫成可研究的數學定義。不過 Gödel 當時仍不確定,這個定義是否已涵蓋所有直覺上可以機械執行的程序。

1935–36Church、Kleene、Turing、Post:用不同方法,找出程序可以做到甚麼

他們想解決的問題其實很實際:若有人聲稱「這件事可以按照固定步驟完成」,數學能否準確判斷甚麼才算固定步驟,以及這套步驟最終能處理哪些問題?

Church 與 Kleene 選擇在紙上變換公式,以符號代換描述計算(λ-calculus);Herbrand、Gödel 與 Kleene 則用一組方程,規定一個函數怎樣由較早的結果逐步算出之後的結果(general recursive functions)。Turing 和 Post 走另一條路:想像一名執行者只按有限指令移動、閱讀、寫下或擦除符號。

這些看起來毫不相似的方法,後來被證明具有相同的計算能力:其中一種方法能完成的程序,也能翻譯成其他方法完成。Church 與 Turing 更分別利用自己的定義證明,並不存在一套固定程序,可以判定所有依照固定符號和文法寫成的數學陳述,是否必然成立。

「可計算」從此不再只是一種直覺,而有了清楚的數學範圍。幾種獨立方法都圈出同一個範圍,亦成為 Church–Turing thesis 的主要根據:凡是能夠按照有限、明確步驟完成的計算,都可以由這些模型表達。

1938–39Turing:用 Gödel representations 逐級擴展邏輯系統

圖靈的博士論文研究一個新的問題:能否把一套邏輯逐級擴展,每次加入新的規則或公理,令它證明原來處理不到、關於整數的數學命題?他用一套代表層級先後的數學記號,把這些系統排列起來,稱為 ordinal logics(序數邏輯)。

要讓下一級的公式辨認和處理上一級的公式,公式便要先成為可以輸入數學運算的對象。圖靈因此明確採用 Gödel 的方法:先替每個符號編配整數,再用質數冪把整串符號編成一個 Gödel representation。其他公式於是可以透過這些整數,枚舉、辨認和轉換被編碼的公式。

在這篇論文裏,Gödel 的編碼不再只是相似的思想,而是圖靈用來建構和分析 ordinal logics 的實際工具。

Before the universal machine

04要研究計算的極限,先要說清楚甚麼叫計算

當時數學家正在研究一個具體問題:能否設計一套固定程序,輸入任何一條形式邏輯陳述後,都能判定它是否必然成立?要研究這種程序是否存在,便要先說清楚「固定程序」究竟可以做哪些動作。

「形式邏輯陳述」是甚麼?

它不是一條「語氣很正式」的句子,而是依照指定符號和文法寫成的數學句子。最簡單的推理形式例如:P → Q;現在知道 P 成立;所以可以推出 Q。P 和 Q 實際代表甚麼可以改變,推理結構卻固定不變。

自然語言的「今天很好」可以有很多解讀;形式邏輯則刻意排除這種含糊。每個符號的作用、句子怎樣才算格式正確,以及可以使用哪些推理規則,都預先寫得清清楚楚。當時的問題,是能否有一套通用程序,逐條判斷任何依照這些規格寫成的陳述,是否在所有符合前提的情況下都成立。

圖靈於是想像一名只依既定規則工作的計算員(在當時,computer 也可以指負責計算的人)。他觀察到,計算員每一刻只會查看紙上的一小部分,寫下或擦去符號,把注意位置向左或向右移,並根據眼前符號與當前狀態決定下一步。

圖靈把這些動作抽出來,變成一條分成一格格的紙帶、一個每次只讀寫一格的讀寫頭、有限種內部狀態,以及一張指令表。「內部狀態」可以理解為機器當刻正在做甚麼,例如「向右尋找下一個空格」、「剛讀到 1,下一步寫下 0」或「工作完成,停止」。

原本只靠直覺理解的「機械計算」,至此變成一個可以精確分析的數學模型。這個模型,後來被稱為 Turing machine(圖靈機)。

每一部圖靈機,都由自己的符號、內部狀態與指令表界定。圖靈再把整張指令表寫成一套標準格式,並編成一個「描述數」(description number)。這個數字代表的不是一道計算的答案,而是一部圖靈機會怎樣逐步運作

指令表一旦可以寫在紙帶上,它便不再只是一張給人閱讀的說明,而可以成為另一部圖靈機的輸入。圖靈於是再問:可否只造一部機器,讓它讀入任何其他圖靈機的描述,然後照着那份指令表模擬對方?答案是可以。這部能夠模擬其他圖靈機的機器,就是 universal machine(通用機器)。

通用機器讀入兩樣東西:要模擬的圖靈機之描述,以及原本要交給那部圖靈機處理的輸入;然後逐步重現它的行為。換句話說,不必為每一項工作重新造一部機器。同一套執行機制,只要讀入不同指令描述,便可以完成不同工作。

Gödel把數學描述編成整數對象:符號、公式、證明
方法:符號編號與質數冪
作用:讓語法成為算術對象

Turing把機器描述編成輸入對象:狀態、符號、指令表
方法:替狀態、符號與動作逐一編碼
作用:讓一部機器模擬其他機器

哥德爾與圖靈帶來的共同突破,可以直接說成一句話:描述不再只寫給人看;經過編碼,它也能成為系統可以處理的對象。哥德爾讓數學處理數學公式與證明的描述;圖靈則讓一部固定的機器讀取另一部機器的描述,並依照那份描述模擬它。

這一步把「執行工作的機制」與「指定要做甚麼的指令」分開。機制不用改變,只要換一份輸入的指令描述,行為便會隨之改變。下面的示範只集中展示這一點。

史實補充:圖靈的 universal machine 是否直接受 Gödel numbering 啟發?

1936 年 Turing 的研究是否和 Gödel 有因果關係,現時無從證實。現有史料顯示,圖靈可能在 universal machine 的核心構思成形後,才仔細讀到哥德爾的論文。因此,較準確的說法不是「圖靈沿用 Gödel numbering,順勢建構出 universal machine」,而是二人從不同問題出發,分別讓描述成為數學或機器可以處理的對象。

到了 1939 年,關係便十分明確:圖靈在博士論文中採用 Gödel representations,把公式編成整數,再由其他公式枚舉、辨認和轉換這些編碼。正文時間線所寫的,正是這段有文獻可證的技術接續。

05What did these two figures change together?

Gödel encoded mathematical statements and proofs as integers, allowing mathematics to inspect mathematical language. Turing encoded machine rules as description numbers, allowing one machine to read and simulate another. Together they opened a new possibility: encode symbols, structures, and rules as processable input, so that a system can operate on descriptions themselves.

  1. Content can be encoded. Formulae and proofs are no longer confined to human reading; their symbols and order can be preserved in full and handed to another formal procedure.
  2. Rules can be checked. A proof checker need not understand what a sentence means in order to verify, step by step, whether its form and derivation follow prescribed rules.
  3. Instructions can become input. A machine’s operating rules can be read like any other input, allowing another machine to simulate it from the description.
  4. Execution can be separated from the task. A universal mechanism can perform different work by reading different programs; programs themselves can be checked, translated, and modified by other programs.

From symbols to AI

06Before AI can process language, it needs a program

Modern AI is not a free-floating “intelligence” detached from a computer. A complete AI system includes programs specifying its computations, vast arrays of numbers recording patterns learned during training (parameters), data, and hardware. Programs make these parts work together: training software repeatedly reads data, calculates results, and adjusts parameters; inference software loads those parameters, reads new input, and computes an output step by step.

Here lies Turing’s most basic contribution to the infrastructure of modern AI. Instructions can be represented, stored, loaded, and executed; the same general computing mechanism can therefore perform different work under different programs. Today, a compiler translates human-written code into executable instructions, an operating system loads and manages programs, and an AI framework directs processors through immense volumes of mathematics. Without programmable computers and these layers of software, neither AI training nor inference could occur.

Foundation A · ProgramFirst, make the machine capable of running AITraining and inference are programs. They direct processors to read data, perform extensive mathematical operations, update or load model parameters, and produce outputs.

Foundation B · EncodingThen, make language admissible to AIText must first become tokens, token IDs, and vectors before it can enter the model as input that software can receive and compute upon.

How does a piece of text actually enter a language model?

A tokenizer first divides the text into smaller units called tokens, then assigns each token an ID. The model uses each ID to retrieve a corresponding vector and passes the sequence into a Transformer—an architecture that computes relationships among tokens layer by layer—before estimating which token is most likely to come next.

05兩位傳奇人物,共同改變了甚麼?

哥德爾把數學陳述與證明編成整數,令數學可以檢查數學語言;圖靈把機器規則編成描述數,令一部機器可以讀取並模擬另一部機器。二人共同打開了新的可能:先把符號、結構與規則變成可處理的輸入,令系統有能力處理描述本身。

  1. 內容可以被編碼。公式和證明不再只供人閱讀;它們的符號與排列可以完整保存,交由另一套形式程序處理。
  2. 規則可以被檢查。Proof checker 毋須理解一句話想表達甚麼,也能逐步核對公式格式與推導是否符合既定規則。
  3. 指令可以成為輸入。一部機器的運作規則可以像其他輸入一樣被讀取,讓另一部機器依照描述模擬它。
  4. 執行機制可以與任務分開。同一套通用機制讀入不同程式,便能處理不同工作;程式本身也可以由其他程式檢查、轉譯和修改。

From symbols to AI

06AI 先要有程式,才談得上處理語言

現代 AI 不是一團脫離電腦而存在的「智能」。一套完整的 AI 系統包括規定運算方法的程式、訓練後記下模型所學模式的大量數值(參數)、資料與硬件。讓這些部分真正運作的,仍然是程式:訓練程式反覆讀取資料、計算結果並調整參數;推理程式則載入參數,讀取新的輸入,再一步步計算輸出。

這正是圖靈為現代 AI 提供的最基礎設施:指令可以被表示、儲存、載入和執行,同一套通用計算機制才能按照不同程式完成不同工作。走到今天,人寫的程式先由編譯器翻譯成機器可以執行的指令,作業系統負責載入和管理程式,AI 訓練框架再指揮處理器完成大量數學運算。沒有可編程的電腦與這一層層軟件,AI 的訓練與推理根本無從發生。

Foundation A · Program先讓機器能執行 AI訓練與推理都是程式:它們指揮處理器讀取資料、進行大量數學運算、更新或載入模型參數,再產生輸出。

Foundation B · Encoding再讓語言能進入 AI文字必須先轉成 token、token ID 與向量,才會成為模型程式可以接收和運算的輸入。

一段文字,實際怎樣進入語言模型?

文字首先由 tokenizer 切成一小段一小段的 token;每個 token 再換成一個 token ID。模型利用 ID 找出相應的向量,然後交給 Transformer——一種負責計算各個 token 之間關係的模型架構——逐層處理,最後計算下一個 token 最可能是甚麼。

The example uses OpenAI’s o200k_base tokenizer. A different tokenizer may segment the same text differently and assign different IDs. The labels v₁, v₂, and v₃ stand only for three vectors; their actual values depend on the model.

So the claim that “AI can process language” conceals two transformations. First there must be a program capable of running the AI; then language must be encoded as numerical representations that the program can process. A Gödel number is not a modern token ID, and a Turing machine is not a Transformer. Yet all three depend on the same condition: symbols and rules must take a form the system can recognise and manipulate before processing can begin.

Mathematical statements became integers; machine instructions became input; language becomes tokens and vectors. The encodings are entirely different, yet the once-absurd turn remains: a description itself can become material for computation.

Mathematical statements can be written as integers; machine instructions can become input; language can become tokens and vectors. The strange conversion that began with 2,250 leads to programs reading programs, machines simulating machines, and AI software turning text into numbers—and numbers back into text.We stop at this threshold for now. In the next article, we will step together through the door into the magic of self-reference.

Scope noteFor narrative clarity, when this article turns to modern examples under the umbrella of “AI”, it focuses mainly on large language models (LLMs). AI is not synonymous with LLMs: recommender systems, diffusion models, computer-vision systems, and other approaches are also AI. This article follows one particular historical and technical path—from descriptions becoming processable input to language models—rather than attempting a complete account of every branch of AI.

← Part I: Gödel and mathematics encoded as integers

Sources and further reading

  1. Stanford Encyclopedia of Philosophy, “Gödel Numbering”.
  2. Kurt Gödel, On Undecidable Propositions of Formal Mathematical Systems, notes from the 1934 Princeton lectures.
  3. Alonzo Church, “An Unsolvable Problem of Elementary Number Theory”, 1936; S. C. Kleene, “λ-Definability and Recursiveness”, 1936.
  4. Emil L. Post, “Finite Combinatory Processes—Formulation 1”, 1936.
  5. Alan M. Turing, “On Computable Numbers, with an Application to the Entscheidungsproblem”, 1936–37.
  6. Alan M. Turing, “Systems of Logic Based on Ordinals”, 1939.
  7. Rico Sennrich, Barry Haddow & Alexandra Birch, “Neural Machine Translation of Rare Words with Subword Units”, 2016; Ashish Vaswani et al., “Attention Is All You Need”, 2017.
  8. OpenAI, “Counting tokens”; tiktoken. The o200k_base tokens and IDs in this article were calculated with that encoding.
  9. Stanford Encyclopedia of Philosophy, “The Church–Turing Thesis”.
  10. B. Jack Copeland & Zhao Fan, “Did Turing Stand on Gödel’s Shoulders?”, 2022.
  11. Thomas Haigh, “Actually, Turing Didn’t Invent the Computer”, 2014; Jürgen Schmidhuber, “Turing Oversold”, included as further reading from a contrasting position.
  12. Images: Young Kurt Gödel; Alan Turing, 1951. Licensing and provenance appear on the respective file pages.

以上使用 OpenAI 的 o200k_base tokenizer 實際計算;同一句文字換用另一套 tokenizer,切法和 ID 都可能不同。圖中的 v₁、v₂、v₃ 只代表三組向量,實際數值由模型決定。

所以,「AI 可以處理語言」其實包含兩次轉折:先有一套可以執行 AI 的程式,再把語言編碼成這套程式可以處理的數值表示。Gödel number 不是今日的 token ID,Turing machine 也不是 Transformer;但三者共享同一項必要前提:符號與規則必須先變成系統能夠辨認和操作的形式,處理才有可能開始。

由數學陳述變成整數、機器指令變成輸入,再到語言變成 token 與向量,編碼方式已經完全不同;那個最初看似荒謬的轉折卻一直沒有消失:描述本身,也可以成為計算的材料。

數學陳述可以寫成整數,機器指令可以成為輸入,語言也可以轉成 token 與向量。由 2,250 開始的怪異轉換,一路走到程式讀程式、機器模擬機器,再走到 AI 程式將文字轉成數字,從數字生成文字。今次先停在這道門前;下一篇,再和大家一起走進自我指涉的魔法大門。

閱讀範圍說明本文提到「AI」時,為了讓敘事集中,主要以大型語言模型(large language models, LLMs)作為現代例子。AI 並不等於 LLM;推薦系統、擴散模型、電腦視覺系統及其他方法同樣屬於 AI。本文追蹤的是一條由「描述變成可處理的輸入」通向語言模型的歷史與技術脈絡,而不是為 AI 的所有分支提供完整概覽。

← 上篇:哥德爾與變成整數的數學

資料與延伸閱讀

  1. Stanford Encyclopedia of Philosophy, 〈Gödel Numbering〉
  2. Kurt Gödel, 〈On Undecidable Propositions of Formal Mathematical Systems〉,1934 年 Princeton lectures 筆記。
  3. Alonzo Church, 〈An Unsolvable Problem of Elementary Number Theory〉, 1936;S. C. Kleene, 〈λ-Definability and Recursiveness〉, 1936。
  4. Emil L. Post, 〈Finite Combinatory Processes—Formulation 1〉, 1936。
  5. Alan M. Turing, 〈On Computable Numbers, with an Application to the Entscheidungsproblem〉, 1936–37。
  6. Alan M. Turing, 〈Systems of Logic Based on Ordinals〉, 1939。
  7. Rico Sennrich, Barry Haddow & Alexandra Birch, 〈Neural Machine Translation of Rare Words with Subword Units〉, 2016;Ashish Vaswani et al., 〈Attention Is All You Need〉, 2017。
  8. OpenAI, 〈Counting tokens〉tiktoken。文中的 o200k_base token 與 ID 由該編碼器實際計算。
  9. Stanford Encyclopedia of Philosophy, 〈The Church–Turing Thesis〉
  10. B. Jack Copeland & Zhao Fan, 〈Did Turing Stand on Gödel’s Shoulders?〉, 2022。
  11. Thomas Haigh, 〈Actually, Turing Didn’t Invent the Computer〉, 2014;Jürgen Schmidhuber, 〈Turing Oversold〉,作為不同立場的延伸閱讀。
  12. 圖片:Young Kurt GödelAlan Turing, 1951。兩者的授權及來源資料見各檔案頁。
From the lab來自實驗室

Enjoyed this?喜歡這篇?

Get new writing from the lab in your inbox, plus the occasional invite to a class. Free and paid tiers — read at your own depth.訂閱以收到實驗室的新文章,以及不時的課堂邀請。設有免費與付費方案——依你想要的深度閱讀。

Subscribe — free & paid訂閱——免費與付費
Keep reading繼續閱讀
AI Prehistory | Two Legends Who Made Encoding Possible · Part I · GödelAI 前傳|讓編碼變成可能的兩位傳奇人物 · 上篇 · 哥德爾
AIAI 10 min10 分鐘
Fairness Lies Where the Eye Cannot See公平,藏在看不見之處
Mathematics數學 11 min11 分鐘
Spreads Fast, or Hits Hard? From Virus Models to Digital Marketing傳得快,還是殺得狠?由病毒模型講到數碼營銷
Data × Behaviour數據 × 行為 8 min8 分鐘
← All writing← 全部文章 海納百川,自乘一派