Welcome

Welcome to Xiaoquan Kong’s Blog.

TensorFlow 用户编程接口演化简史

TL;DR TensorFlow 从 2015 年发布至今,用户编程接口经历了几次重大演化,本文将对这几次演化进行简要介绍,并讨论其背后的动机,方便读者理解 TensorFlow 在不同阶段的设计思路。 注解: 这里所说的用户编程接口,是指 TensorFlow 提供给用户的编程接口,而不是指 TensorFlow 的内部编程接口。 我们讨论的 TensorFlow 是一个泛义的概念,包括 TensorFlow 和 JAX 等基于相同底层的同样来自 Google 的机器学习框架。 TensorFlow 0.x 时代(2015 - 2017) 源代码:https://github.com/tensorflow/tensorflow/releases/tag/0.12.1 TensorFlow 0.x 时代的用户编程接口,后来被称为 TensorFlow Core, 是基于 Python 的,主要包括: tf.placeholder:用于定义占位符,用于表示输入数据的维度和类型,但不包含具体的数据。 tf.Variable:用于定义变量,用于表示模型参数,包含具体的数据。 tf.Session:用于执行计算图,将计算图中的节点映射到具体的设备上,并执行计算。 代码示例 一个经典的线性回归模型,可以用 TensorFlow 0.x 的代码表示如下: import tensorflow as tf sess = tf.InteractiveSession() # 定义模型输入 x = tf.placeholder(tf.float32, shape=[None, 784]) y_ = tf.placeholder(tf.float32, shape=[None, 10]) # 定义模型参数 W = tf.Variable(tf.zeros([784,10])) b = tf....

八月 9, 2023 · 3 分钟 · Xiaoquan Kong

ChatGPT 的解码过程和其中的各种参数

TL:DR OpenAI 的 ChatGPT 在其官方文档(https://platform.openai.com/docs/api-reference/chat/create)中给出了各种参数的范围和含义。我们将讨论 ChatGPT 的生成过程和这些参数是如何实现其生成的效果的。 ChatGPT 的解码过程 我们假设 minGPT (等同于 GPT-2) 和 ChatGPT 拥有一样的解码过程:https://github.com/karpathy/minGPT/blob/master/mingpt/model.py#LL283C12-L283C12 。 总体过程可以概括为以下几个步骤: 将用户的请求,从 1 个扩充成 num_samples 大小的 batch 进行模型推理,得到 logits 进行 temperature 映射:logits = logits / temperature [可选] 进行 topk 处理:logits = topk_func(logits, top_k) logits 到 概率的转换:probs = softmax(logits) 是否 sample: 进行 sample:idx_next = multinomial_sample(probs, num_samples=1) 不进行 sample:idx_next = topk_func(probs, k=1) 重复上述过程 max_new_tokens 次 ChatGPT 的解码参数 temperature temperature 参数的官方定义如下: temperature number Optional Defaults to 1...

八月 7, 2023 · 5 分钟 · Xiaoquan Kong

使用 Rasa 构建天气查询机器人

本文将介绍如何使用 Rasa NLU 和 Rasa Core 来构建一个简单的带 Web UI 界面的中文天气情况问询机器人(chatbot)。 ...

九月 9, 2018 · 2 分钟 · Xiaoquan Kong

Rasa NLU 的 pipeline 和 component

本文将详细介绍 Rasa NLU 的 pipeline 和 component,介绍其原理和如何使用。 ...

九月 8, 2018 · 3 分钟 · Xiaoquan Kong

构建中文分词器 - 隐马尔科夫模型

利用 隐马尔科夫模型(HMM) 的解码能力,能从一个观察序列(字符串序列)解码成另一个隐藏状态序列(分词符号序列)。 ...

八月 20, 2018 · 1 分钟 · Xiaoquan Kong

构建中文分词器 - 双向最大匹配法

结合 正向最大匹配法 和 反向最大匹配法 的优点,按照一定的规则选择其中表现最优秀的结果作为 双向最大匹配法 的结果。 ...

八月 14, 2018 · 1 分钟 · Xiaoquan Kong

「盤古之白」

TL;DR 中文文案排版指南 ...

一月 24, 2018 · 2 分钟 · Xiaoquan Kong

Chinese Spelling Check Task: 资料汇总

TL;DR 一些关于 Chinese Spelling Check Task 比较重要的会议和资料的整理和汇总。 ...

一月 16, 2018 · 1 分钟 · Xiaoquan Kong

TenserFlow 新特性:Eager Execution

TL;DR 在即将发布(本文章写于 2018-01-06)的 TenserFlow v1.5 中,TensorFlow将会引入一个重要的 User-friendly 特性:Eager Execution. 本文章将展示 Eager Execution 引入的一些新的特性。 ...

十二月 23, 2017 · 2 分钟 · Xiaoquan Kong

Reinforcement Learning: 初次交手,多多指教

TL;DR 图形游戏(比如坦克大战)如果要实现智能Agent(AKA 电脑玩家)的话,目前最佳的方案就是Reinforcement Learning (简称 RL ;中文:增强学习)。 本文记录了我和Reinforcement Learning的第一次交手,将带你了解这位名扬四海却又神秘莫测的对手。:) ...

十一月 24, 2017 · 2 分钟 · Xiaoquan Kong