【科技新聞】60 行 NumPy 中的 GPT


60 行 NumPy 中的 GPT
A GPT in 60 Lines of NumPy

評論

嘿,你們將在這裡創作!

感謝您的所有友好和建設性意見!

為清楚起見,這只是模型的前向傳遞。沒有訓練代碼、批處理、提高效率的 kv 緩存、GPU 支持等……

這裡的目標是對作為教育工具的 GPT 進行簡單而完整的技術介紹。試圖讓前兩部分成為任何程序員都能理解的東西,但是,是的,除此之外你還需要了解一些深度學習。

順便說一句,我試圖讓實現盡可能地易於破解。例如,如果將導入從“import numpy as np”更改為“import jax.numpy as np”,代碼將變為端到端可微分:

 def lm_loss(params, inputs, n_head) -> float: x, y = inputs[:-1], inputs[1:] output = gpt(x, **params, n_head=n_head) loss = np.mean(-np.log(output[y])) return loss grads = jax.grad(lm_loss)(params, inputs, n_head)

您甚至可以使用 `jax.vmap` ( https://jax.readthedocs.io/en/latest/_autosummary/jax.vmap.h… ) 支持批處理:

 gpt2_batched = jax.vmap(gpt2, in_axes=0) gpt2_batched(batched_inputs) # [batch, seq_len] -> [batch, seq_len, vocab]

當然,JAX 帶有內置 GPU 甚至 TPU 支持!

至於推理效率的訓練代碼和 KV 緩存,我把它留給讀者練習 lol

這篇文章絕對是對 GPT 模型的精彩介紹——我認為這是我在任何地方看到的最清晰的介紹,至少對於討論生成文本和採樣的第一部分而言是這樣。

然後進入訓練部分,開始“我們像訓練任何其他神經網絡一樣訓練 GPT,使用關於某些損失函數的梯度下降”。

從那時起它仍然很好,但它不如初學者的介紹那麼有價值。

評論裡批評的太多了。我很欣賞這篇文章和代碼示例。對於一些像我這樣不在 ML 領域的人來說,很難理解 GPT 背後的概念,這讓它更清晰了一些。


GitHub 裁員 10% 並關閉所有辦公室
GitHub to lay off 10% and close all offices

評論

我不得不說,關閉所有辦公室可以更容易地進行更多裁員。在 90 年代經歷了半導體製造業的裁員,當你不得不,你知道,讓人們下班並把他們帶到一個地方等等,這涉及為額外的安全等支付大量金錢。沒有辦公室,這就容易多了,而且您永遠不必與人面對面。

五年後,我認為我們不會看到一家大公司“僅限遠程”並認為“哦,我猜他們重視他們的員工”,而是“呃哦,他們喜歡將員工視為虛擬的”服務器,在您不需要為該容量付費的那一刻很容易啟動和關閉”。

我真的很喜歡 Shopify 的遠程模式,即不關閉辦公室,而是將它們變成大城市團隊的“港口”,全年聚集在一起進行規劃、團隊建設和務虛會。你有一個正式的聚會場所,享受科技公司辦公室的福利,但目的是進行深度短暫的互動,而不是專注於工作。

我的心與下崗員工同在,儘管我認為他們在準備好後將能夠找到穩定的工作(或創辦自己的公司)。

更讓我感到驚訝的是: 1. GitHub 的運營如此獨立於微軟,以至於他們有自己的裁員(不包括在微軟宣布將與他們分道揚鑣的 10,000 人中)。 2. GitHub 的運作如此獨立,以至於他們可以決定先進行遠程操作。


Gitlab 裁員 7%
Gitlab to lay off 7% of staff

評論

昨天聽了一個關於裁員的精彩播客 ( https://hbr.org/podcast/2023/02/why-many-companies-get-layof… )

要點是,裁員對未裁員的員工來說是極度破壞信任的,而且最終不清楚他們是否是財務淨正數。包括直接和間接成本(缺乏員工參與等)。

在這一點上,看起來科技公司開始這樣做是因為這是一種時髦的做法,同時在他們的網站和推銷平台上插入一些關於人工智能的詞。

對他們有好處,因為他們提供了適當的遣散費。在我的公司,我們只有2 週的工作時間。甚至連 CEO 一封深思熟慮的信都沒有。沒有什麼。 (這是一家規模龐大的科技公司,正處於首次公開募股的過程中)。


留言討論區