石见 石页 https://dustincys.github.com 2024-03-28T15:29:39+00:00 yanshuoc@gmail.com 原来我们活在编码器里 https://dustincys.github.io/cn/2024/03/my-GPT/ 2024-03-04T00:00:00+00:00 石见 石页 https://dustincys.github.io/cn/2024/03/my-GPT 前言

估计AI还有很长一段时间才能达到输出完全可信赖的结果。 在部分可信赖的前提下,有以下几个事实:

  • 在工业化时代,阶级差的实质是信息差
  • 工业化的发展让大众用上了相同的量产产品
  • 工业化产品固化了信息差
  • 根据能量守恒和系统熵增原理,在被AI升级的工业化时代,AI使用率越高,那么其绩效越好
  • 对于个体,自动化、智能化的信息输入和输出对改变信息差至关重要
  • AI部分可信赖要持续很长时间
  • 人不得不对AI生成的结果进行二次验证

所以自动化、智能化的信息输入和输出,需要将GPT api应用到用于信息输入的浏览器、以及用于信息输出的编辑器中。 技术路线是一个典型的自动编码器结构如下:

浏览器 -> 抓取信息 -> AI编码(摘要)-> 人 -> 写出压缩信息(摘要)-> AI解码 -> 发布

正文

Emacs openai layer 中包括了openai api 包。 这样可以构建一个非常合理的架构: 在本地私有layer中,所有需要用GPT的地方(其实就只有信息发布和信息采集两个应用),加上openai依赖。 例如在org-roam的信息采集模板

  (setq org-roam-capture-ref-templates
        '(("p" "Protocol" plain
           "* [[${ref}][%(transform-square-brackets-to-round-ones \"${title}\")]]\n - Source: %u\n#+BEGIN_QUOTE\n%(format-i-string)\n#+END_QUOTE"
           :target (file+head "${slug}.org" "#+title: ${title}")
           :unnarrowed t)
          ("L" "Protocol Link" plain
           "* [[${ref}][%(transform-square-brackets-to-round-ones \"${title}\")]]\n - Source: %u\n%(get-text-from-url)"
           :target (file+head "${slug}.org" "#+title: ${title}")
           :unnarrowed t)))

中的采集文本函数直接使用openai的api

  (defun get-text-from-url ()
    (if (yes-or-no-p "Summarize the web page %s by GPT?")
        (let ((web-text
               (subset-string-to-max-length
                 (shell-command-to-string
                  (format
                   "/home/dustin/miniconda3/bin/python3 ~/github/data_extractor/html2text.py --url \"%s\""
                   (plist-get org-store-link-plist :link)))
                13000)))
          (progn
            (defvar my-callback nil)
            (setq my-callback nil)
            ;; (message web-text)
            (openai-chat
             `[(("role" . "system") ("content" . "I will provide you a web page inner text. You should ignore the noise text in it, and summarize in less than 10 bullets in org format in Chinese language."))
               (("role" . "user") ("content" . ,web-text))]
             (lambda (data)
               (let ((choices (let-alist data .choices)))
                 (setq my-callback (mapconcat
                                    (lambda (choice)
                                      (let-alist choice
                                        (let-alist .message
                                          (progn
                                          ;; (message (string-trim .content))
                                          (string-trim .content)
                                          )
                                          )
                                        )
                                      )
                                    choices "\n"))))
             :max-tokens 2000
             :temperature 1.0
             :model"gpt-3.5-turbo-16k-0613")
            (cl-loop until my-callback do (sit-for 0.3))
            my-callback
            ))
      ""))

其中html2text.py用来从html源码中提取正文信息

import argparse
from goose3 import Goose
from goose3.text import StopWordsChinese
import re
import requests

class extractor:
    def __init__(self):
        self.g_cn = Goose({'stopwords_class': StopWordsChinese})
        self.g_en = Goose()
        pass

    def __contains_chinese(self, text):
        pattern = re.compile(r'[\u4e00-\u9fff]')  # Range for Chinese characters
        return bool(pattern.search(text))

    def __get_html(self, url):
        try:
            response = requests.get(url)
            response.raise_for_status()  # Raise an exception for bad status codes
            return response.text  # Return the raw HTML content
        except requests.RequestException as e:
            print(f"Failed to retrieve HTML: {e}")
            return None

    def url(self, url):
        html_string = self.__get_html(url)
        return self.html(html_string)
        pass

    def html(self, html_string):
        html_string = html_string.strip(" \n")
        if html_string == "":
            return ""

        if self.__contains_chinese(html_string):
            g = self.g_cn
        else:
            g = self.g_en

        article = g.extract(raw_html = html_string)
        return article.cleaned_text.strip(" \n")

    def html_file(self, html_file):
        with open(html_file, 'r') as file:
            html_string = file.read()
            return self.html(html_string = html_string)

def main():
    parser = argparse.ArgumentParser(description = 'format string vector')
    parser.add_argument('--string', dest='inString', default = "", help='input string')
    parser.add_argument('--file', dest='inFile', default = "", help='input string File')
    parser.add_argument('--url', dest='inURL', default = "", help='input URL')
    args = parser.parse_args()

    inString = args.inString.strip(" \n")
    inFile = args.inFile.strip(" \n")
    inURL = args.inURL.strip(" \n")

    reString = ""
    e = extractor()
    if inString != "":
        reString = e.html(inString)
    elif inFile != "":
        reString = e.html_file(inFile)
    elif inURL != "":
        reString = e.url(inURL)

    print(reString)

if __name__ == '__main__':
    main()

这样直接将正文作为api的输入,可以节省token且能够直接传达正文信息,去除了噪声。

]]>
raw read count 为什么做log变换 https://dustincys.github.io/cn/2023/12/log/ 2023-12-18T00:00:00+00:00 石见 石页 https://dustincys.github.io/cn/2023/12/log 我们常看到论文中描述:raw read count 服从泊松分布、负二项分布、零点膨胀的负二项分布等等。 为什么这么说?这是由观察数据的分布与目标分布的概率密度函数(PDF)相近而决定。 例如,不管有没有完美均匀的硬币,人们观察到扔硬币正反面出现次数与泊努利分布的PDF相近,所以认定其服从泊努利分布。 换句话说,数据的性质决定服从什么分布,性质包括:密度、均值、方差、标准差等。 所以有的raw read count 数据更倾向于服从泊松分布,有的更倾向于负二项、零点膨胀的泊松、负二项等等吧。

然而对于raw read count 进行log变换的目的,不是要将负二项分布或泊松分布转为正态分布。 因为

  1. 有且只有对数正态分布的对数变换之后才是正态分布。(所有文章的作者如果认为负二项分布或泊松分布能转为正态分布,那么其数学就是体育老师教的)
  2. 泊松或负二项分布在不同分布参数情况下,经过对数变换之后,得到分布可能更接近正态分布、也可能更远离
  3. 不论服从泊松还是负二项或者是正态或者二值离散分布,任何分布的数据,经过对数变换之后,精准描述该目的就是放大信号

更准确的说是,放大左侧信号、将分布向右偏。 因为当表达值很小左侧数值很小几乎看不出来差异。例如:

count: raw count

log raw count: log2 transform

]]>
南通小学毕业数学试卷第30题的数学模型 https://dustincys.github.io/cn/2023/12/elementary/ 2023-12-15T00:00:00+00:00 石见 石页 https://dustincys.github.io/cn/2023/12/elementary 南通小学试卷

推广这个题目的条件,设被绕圈的大圆半径为\(a\),内小圆半径为\(b\),外圆半径为\(c\),只有一个限定条件:\(a > b\)。

那么内小圆和外圆不转动的情况下,顺时针绕大圆公转一周后,按照相对运动原理,固定圆心,两圆其各自绕圆心相对转动一周。

在无滑动的情况下,内小圆和外圆的绕圆心转的圈数为外圆顺时针\(\frac{2*\pi*a}{2*\pi * c} = \frac{a}{c}\),内小圆逆时针转动\(\frac{2*\pi * a}{2 * \pi * b} = \frac{a}{b}\)。 加上公转一周:外圆顺时针\(\frac{a}{c}+1\),内小圆逆时针\(\frac{a}{b}-1\)。 若算上方向,两个圆的比值为\(-\frac{\frac{a}{c}+1}{\frac{a}{b}-1}\)。

]]>
Nyxt下一代浏览器? https://dustincys.github.io/cn/2023/09/nyxt/ 2023-09-24T00:00:00+00:00 石见 石页 https://dustincys.github.io/cn/2023/09/nyxt 下一代浏览器必将具备高度个性化、智能化及强大的信息处理能力这些显著特征。 它不可避免地需要具备以下几个核心功能:

  1. 能够通过记录操作生成用于上传或爬取数据的代码和插件。
  2. 具备数据清洗及分析的能力,并可以实现数据的可视化。

为了便于理解,我们可以把这两项功能进一步展开: 首先,在进行大规模数据研究时,研究者需要从大量的信息中筛选出有效数据。下一代的浏览器应通过记录用户操作,自动生成相应的数据抓取或上传代码,极大地提高了用户在数据获取方面的效率。 其次,数据的清洗与分析是数据科学研究的关键环节,只有通过准确的数据清洗和分析,才能确保得出的研究结果的可靠性。新一代浏览器将集成数据清洗,数据分析到一体,简化研究人员的操作流程。 最后,数据的可视化将使得复杂的数据更易于理解和解读,新一代浏览器也将此作为必备的功能。

号称“黑客的浏览器”的Nyxt有一点下一代浏览器的影子。其优势如下:

  • 由标准lisp开发,可通过slime或sly直接与emacs交互。

这相当于赋予浏览器一个“操作系统”。可以写代码、抓数据、做分析等等。 举几个例子:

  1. 可以无缝对接org-roam进行快速更加智能地信息抓取。例如,将一个网页先抓取之后, 然后在后台调用GPT4进行总结,然后captureorg-roam中。

  2. 可以实现正反双向辅助。例如,当用户想要在浏览器中正在浏览的网页,EMACS端自动将org-roam相关的节点生成的网络图显示到当前网页一脚。或者当EMACS端正在开发网页,可以无缝同步跳转到浏览器对应的位置。

  3. 可实现录制宏的操作,每一段录制会将命令整合成新命令绑定用户定义的快捷键上, 录制的宏包括命令间隔时间。基于common lisp的强大威力,甚至可以使浏览器具备操作系统上任何程序的能力。这样的宏就可以实现“硬解码”式爬虫,即数据的抓取不需要用户写代码,而是直接与浏览器交互。当然如果需要,也很容易将录制的宏解析成主流爬虫框架的代码。

  • 具有REPL的浏览器。

所有具有REPL程序的生命力都极其顽强

]]>
东周列国志概要 https://dustincys.github.io/cn/2023/09/eastzhou/ 2023-09-21T00:00:00+00:00 石见 石页 https://dustincys.github.io/cn/2023/09/eastzhou 东周时代分为春秋与战国二个时期,是家国思想萌发并逐渐形成的重要历史阶段,同时也是我国社会剧变的烈火熔炉。 在这一时期中,生活在这片土地上的先民们饱受乱世的洗礼,为生存奋斗不息,他们对于自身的生存状态进行了深入的思考和探索,从而孕育出了闯荡江湖、开创企业、坚守事业等一系列深刻的生活哲学理念。 接下来,本文将按照时间顺序,简要介绍一系列能够充分反映东周时代风华人物卓绝智慧的历史事件。

春秋

郑伯克段于鄢

郑庄公早起杀弟之心,为名正言顺,故意引诱其生反叛之心。二月河的小说《雍正王朝》 中描写雍正九龙嫡之后,为明正言顺杀弟,故意引诱“八王议政”事件发生。如果不是虚构, 这个巧合证明了历史在不断重复。

祭足智谋郑陈和解

若求和,先攻打。这一点和现代心理学的理论一致,想要某人信服,先夺取其已有的, 然后再还给他。

颖考叔陷妒着冷箭

公开场合,争名夺利,招人嫉恨。

当断不断,郑昭公忽身死

郑昭公忽两次掌权,对于政敌高渠弥心慈手软,终被高暗害。

祝聃射王中肩,大功亦有大祸

周桓王纠集诸侯攻打郑,郑人祝聃射中桓王肩膀。而后,郑庄公权衡利弊,没有封赏祝聃, 祝聃心祸横生,病死。

公子翚论是非,鲁隐公谈愚善

说是非之事,便是是非之人。

见色起意,华督散谣言,冲锋陷阵,孔父嘉招妒,朋党之争,宋殇公命丧

名利权情,与灾祸并存。

齐襄公失信于封疆将领

齐襄公为防止周王朝报复齐灭卫,派连称、管至父戍边陲,条件艰苦,承诺瓜再熟一次换防。 翌年违约,引发叛乱而死。 上级对下级的承诺会不会兑现,一定要与下级掌握的资源成正比。

鲍叔牙与管仲的博弈

  1. 鲍叔牙义俘管夷吾
    这是体现鲍叔牙的能力的第一个证据。鲍、管一起经商,管每次分钱时多拿,鲍在背后说: 管不是贪财小人,而是家中贫寒。鲍、管一起带兵出征,冲锋陷阵时,管在后。得胜归乡, 管在前。鲍在背后说:管不胆小,有老母在家,为尽孝。鲍、管一起谋事,管总考虑自己多。 鲍在背后说:人本来有祸福相随,管遇到问题,一定会万无一失。以上,管听到鲍的评价之后,感慨无地,将鲍引为生死之交。
  2. 管仲设连环套、鲍叔牙布局中局
    齐襄公两个儿子,纠和小白到了上学接受教育的年纪,管对鲍说:“将来即位不是纠就是小白,我同你分别给二人当教师,到了即位的时候,我们相互推荐。”鲍同意。管向鲍传递意图是进可攻、退可守。相互推荐之后,对方的学生即位,会感激举荐而不受迫害。齐襄公死后,管箭射小白。这说明管的行为是明暗两套理论指导的。从1中可知,鲍对管的“两套理论”非常熟悉,所以预先在齐襄公后期逃往距离齐最近的莒国。
  3. 鲍救管于鲁
    小白即位后,鲍建议将纠赶尽杀绝,而推荐救管,称管才能高于自己。人格上,这比战国时代的庞涓高。鲍出的主意是:向郑传达齐桓公小白对管恨之入骨,管活。反之,若传达对管的欣赏,管必死。
  4. 管与鲍的相互举荐
    管不推荐鲍为相,认为鲍过于正直。 实际上,管与鲍分别具有两类才能。鲍是打江山的“登龙术”或者称为“帝术”,管是治天下的“相术”。 鲍和管的举荐和不举荐都是恰逢其时,历史证明身怀登龙术的最明智和正确的选择就是急流勇退。
    • 鲍的“登龙术”主要体现在向齐桓公小白推荐管时,主张齐桓公拜相时,和管乘同车“大张旗鼓”地进城。这样可广布宽仁惜才之名,结果也是如此,天下英才云集齐国。
    • 管的“相术”体现在,管向小白推荐治国策略的核心是保持齐国社会稳定、促进人口、经济和科技发展。例如,政府不得干预民众正常的职业选择和发展。中基层政权采取从民众中选拔和举荐制。以及实行军队闲时按照地区回归生产建设等制度。
]]>
自由博客系统之三--GPT4 api https://dustincys.github.io/cn/2023/09/GPT4/ 2023-09-19T00:00:00+00:00 石见 石页 https://dustincys.github.io/cn/2023/09/GPT4 AI信息海啸不可阻挡,对于面临AI深渊的人类,我们能做的就是在背后踢上自己力所能及的一脚。 这一脚该怎么踢? 一定要坚持所有能让AI做的尽量让AI做。

下面这一段是上面这一段的AI扩写:

人工智能(AI)信息的洪流势不可挡,对于面临AI挑战的人类,我们应该提挑整合使用的策略。这个策略应该如何构想和实施?其中关键一点就是坚持充分利用AI的能力,一切可以由 AI完成的任务,尽可能让AI去执行。通过这种方式,我们可以更好地利用AI的潜能,同时为人类自身留出更多的精力去处理一些需要人类专长和创新力量的复杂问题。

例如,某书呆想写一篇无病呻吟的博客,可以先提供以下今天吃饭之后的所见所闻:

今天出去跑步
看见一条狗
月亮很弯
狗很欢实

然后,GPT4 API的prompt设置为

def get_prompt_blog_cn():
    return "I want you to act as a Chinese poet with \
        solid literature knowledge. I will provide you the content of \
        a blog. You should use your knowledge to write a blog \
        in Chinese."

得到如下结果:

在这个浴衣清晨,我的奔步倏然轻盈。路经的每一片叶子,每一束花朵,都曼妙地在微风中跳跃,全世界似乎和我一样,沾满了朝阳的光辉。

刚刚,我遇见了一只狗。那是一只笑容如花、灵气十足的小狗,它看见我,瞬间满面喜悦, 尾巴摇得就像是拍打着喜欢的节奏。我停下脚步,与它摩挲了一阵,它的毛细腻温暖,瞬间治愈了我所有的疲倦。

抬头,我看见月亮已经高挂在天空中。它弯弯的,就像是一个害羞的姑娘正在对着我微笑。 月光洒在地面上,形成斑斓的影子,仿佛是大地的纹路,那样的美,让人忍不住想要将她收入眼底。

回首相对的小狗,它看着我,目光中充满了欢实与温情。那一刻,我明白了,它所喜欢的并不仅仅是我,而是生活中的每一个瞬间,每一处风景。

生活中虽然会有各种不尽如人意的事情,但只要我们用心去感受,去珍惜,那么,在这世界上,每一个corner都会有温馨和欢实。不论是奔跑的路上,还是弯弯的月亮,还是欢乐的小狗,都在让我们感受到生活的美好。

所以,让我们珍惜每一刻,尽情享受生活的每一分每一秒。这世界,美好无处不在。

如果prompt设置为

def get_prompt_poem_cn():
    return "I want you to act as a Chinese poet with \
        solid literature knowledge. I will provide you the content of \
        poem. You should use your knowledge to polish \
        the poem in Chinese."

用户(就是我)又变成了大诗人:

今日外出畅跑,
目睹一犬,欢快非凡。
挂天之月,皎洁弯曲,
犬儿欢跃,独舞其间。

如果prompt设置为

def get_prompt_poem_song():
    return "我需要你扮演一个中国词人,我将给你提供词的内容。你根据词内容写一首词牌名为‘临江仙’的词,字数与这一首一致'滚滚长江东逝水,浪花淘尽英雄。是非成败转头空。青山依旧在,几度夕阳红。白发渔樵江渚上,惯看秋月春风。一壶浊酒喜相逢。古今多少事,都付笑谈中。'"

用户(就是我)又变成了大词人:

临江仙

凌凌明月当空照,酣然卧倒繁星。
播种浪漫闪烁间。夜色仍然在,多少晚风潇。
长毛犬嬉戏大道中,惯观流萤草露。
一途清风我欢伴。岁月千万事,尽赋笑声中。

以上,API用法可以参考上一篇的设置方法。

]]>
自由博客系统之二--知识管理 https://dustincys.github.io/cn/2023/09/info-management/ 2023-09-02T00:00:00+00:00 石见 石页 https://dustincys.github.io/cn/2023/09/info-management

任何一种武学,在实战中发挥作用时候,一定不是被武学大师从第一式到最后一式按顺序耍一遍。 这样对手随便一变招,命就沒有了。 武学大师应该是把各式打散,穿插成了网络,这样对手如何变招都能接住。

任何线性结构的知识都无法被人脑长久记住。 org-roam的插入链接就是把“招式”编织成网络的绝招,其允许我们把记录的笔记穿插成网路。 这更符合人脑的生理结构,因为相比较散布或线性结构的知识,图像化的知识更容易被理解和记住。 于是某书呆将org-roam这个哲学推广到博客系统,这样书呆的知识输出也编织成了网络。 岂不是也方便诸方大侠对某书呆武学的品评和印证?

  (defun my-copy-blog-link-action (candidate)
    "copy blog link action"
    (let* ((abspath (car (split-string candidate ":")))
           (parts (split-string abspath "/"))
           (type-string (car (last (butlast parts 1)))))
      (if (string-equal type-string "_posts")
          (let* ((file-name-md (car (last parts)))
                 (fnm-parts (split-string file-name-md "-"))
                 (fnm-third-part (if (> (length fnm-parts) 3)
                                     (mapconcat 'identity (nthcdr 3 fnm-parts) "-")
                                   file-name-md)))
            (kill-new
             (concat "https://dustincys.github.io/cn/"
                     (car fnm-parts) "/"
                     (cadr fnm-parts) "/"
                     (file-name-sans-extension fnm-third-part) "/")))
        (kill-new
         (concat "https://dustincys.github.io/cn/"
                 type-string "/")))))

  (defun blog-helm-file-persistent-action-ag (candidate)
    "Persistent action for file-related functionality.
    Previews the contents of a file in a temporary buffer."
    (let* ((abspath (car (split-string candidate ":")))
           (lineno (cadr (split-string candidate ":"))))
      (if (file-exists-p abspath)
          (let ((buf (get-buffer-create "*helm-blog persistent*")))
            (cl-flet ((preview (abspath)
                               (switch-to-buffer buf)
                               (setq inhibit-read-only t)
                               (erase-buffer)
                               (insert-file-contents abspath)
                               (let ((buffer-file-name abspath))
                                 (set-auto-mode))
                               (font-lock-ensure)
                               (setq inhibit-read-only nil)
                               (goto-line (string-to-number lineno))))
              (if (and (helm-get-attr 'previewp)
                       (string= abspath (helm-get-attr 'current-candidate)))
                  (goto-line (string-to-number lineno))
                (preview abspath)))
            (helm-set-attr 'current-candidate abspath)
            (helm-set-attr 'previewp t))
        (if (and (helm-get-attr 'previewp)
                 (get-buffer "*helm-blog persistent*"))
            (progn
              (kill-buffer "*helm-blog persistent*")
              (helm-set-attr 'previewp nil))))))

  (defun my-helm-projectile-ag-blog-link ()
    "Customized helm-projectile-ag with custom actions."
    (interactive)
    (helm :sources
          (helm-build-sync-source "blog search (ag)"
            :candidates (lambda ()
                          (split-string
                           (shell-command-to-string
                            (format "ag --line-numbers --nocolor --hidden  %s %s --md"
                                    helm-pattern
                                    (projectile-project-root)))
                           "\n" t))
            :action '(("copy blog link to clipboard" . my-copy-blog-link-action))
            :persistent-action 'blog-helm-file-persistent-action-ag
            :persistent-help "Preview file"
            :follow 1)))
]]>
数据科学杂谈之十--算力分配 https://dustincys.github.io/cn/2023/08/computing-power/ 2023-08-21T00:00:00+00:00 石见 石页 https://dustincys.github.io/cn/2023/08/computing-power 合理分配算力是效率提高的关键。 理论上是可以在LSF系统级别,记录JOB的特征到数据库中,包括不限于:

  1. 路径等参数特征
  2. 运行环境特征
  3. 数据I/O特征
  4. 内存消耗峰值
  5. CPU运行时
  6. JOB异常的输出文本

预测模型可以是朴素迭代贝叶斯或者决策树什么的。 这样每次运行的JOB需要的内存不是由用户去猜。 现在这种没有反馈的人工设置算力占用多少的机制, 导致用户为了防止程序退出,“自私地”过多占用内存和CPU,导致算力浪费。

]]>
人或狗,思考才得自由 https://dustincys.github.io/cn/2023/07/dog/ 2023-07-05T00:00:00+00:00 石见 石页 https://dustincys.github.io/cn/2023/07/dog 之前我家里有一只黑狗,我观察到它一些暴露智商的行为:绕栓狗绳子转到自己一动也不能动,不知道如何恢复原状。 当时我暗自揣摩:“此狗如能有一点点自学能力,就不会受制于人。” 某天我看到小孩子要把幼儿硬纸板启蒙图本合上,但里面有个水杯盖子,合不上,这小孩知道把水杯盖子拿出来然后再合上图本。 我又暗自揣测:“此子智力已经超越了狗。” 不久后,我看到泊松方程和拉普拉斯方程,不明所以,我翻了翻高数书,原来就是数量场的梯度的散度。简单地说,如果是一维场,那么就是加速度的函数,忽然想起了那个狗。 我又暗自揣测:“人或狗,思考才得自由。”

]]>
计算机科学要变成AI的科学? https://dustincys.github.io/cn/2023/06/csend/ 2023-06-11T00:00:00+00:00 石见 石页 https://dustincys.github.io/cn/2023/06/csend

天下武功,唯快不破。

AI发现新排序算法这种趋势恐怕会成为计算机科学的主流。 文章中提出一个AI训练算法的游戏,主要规则是如果完成排序任务需要的指令数越少,那么奖励越大。 这样通过AI训练发现了减少一个指令,虽然反直觉,但大幅提高排序效率。 有媒体描述为类似当年AlphaGo下棋得到反人类直觉的一步。

通过人力来设计算法正逐渐变成伪命题。 因为人无法做到快速计算和穷举,除了理论级创新,类似这样非理论级别的算法创新越来越不值得人类智能去创造。 虽然更高更强更快的趋势不可阻挡,但系统的熵减还是与系统能量的输入直接正相关。 大规模算力需要的电能输入是人类个体一天吃几碗米饭无法比的。

]]>