Hang Kong

Welcome to Hang’s blog.

人工智能|机器学习开篇——从源代码开始认识机器学习

人工智能|机器学习开篇——从源代码开始认识机器学习 选择深度学习框架 对于初学者来说,当他们初次接触深度学习时,通常首要问题是如何选择合适的深度学习框架。截止2023年,推荐的框架有: Tensorflow Keras PyTorch MxNet Chainer Caffe Theano Deeplearning4j CNTK Torch 我也是个初学者,这里就不过多介绍框架的异同,若有兴趣可以点击查看详细介绍。在这篇文章里我们选择PyTorch作为深度学习框架。 使用PyTorch构建模型 准备数据 在机器学习中,算法和数据都是同等重要的,而获取、处理数据的过程甚至都是困难的。在本例中使用已收集且已特征化的数据来完成实例。 PyTorch加载数据使用两个抽象类型torch.utils.data.DataLoader和torch.utils.data.Dataset。 import torch from torch import nn from torch.utils.data import DataLoader from torchvision import datasets from torchvision.transforms import ToTensor PyTorch提供TorchText、TorchVision、TorchAudio三个领域模型来处理文本、图片、声音。本实例使用TorchVision来处理图片。 # Download training data from open datasets. training_data = datasets.FashionMNIST( root="data", train=True, download=True, transform=ToTensor(), ) # Download test data from open datasets. test_data = datasets.FashionMNIST( root="data", train=False, download=True, transform=ToTensor(), ) 输出: Downloading http://fashion-mnist.s3-website.eu-central-1.amazonaws.com/train-images-idx3-ubyte.gz Downloading http://fashion-mnist....

October 15, 2023 · 4 min · Hang Kong

人工智能|从部署开源模型Llama2认识机器学习

人工智能|从部署开源模型Llama2认识机器学习 引言 Llama2是Meta AI开源的大模型。截止目前,它算是比较好的开源大模型。 但是,从部署的效果来看,比ChatGPT的推理能力、写作能力还有一些小差距。 部署后的试用效果: 以上只是我个人短暂试用的结果, 你可以在完成部署后使用自己的测试会话来测试Llama2。 Llama2 Chinese 模型介绍 Llama中文社区是一个专注于Llama模型在中文方面的优化和上层建设的高级技术社区。 基于大规模中文数据,从预训练开始对Llama2模型进行中文能力的持续迭代升级。 我们部署的Llama2-Chinese-7b-Chat模型可以在huggingface找到。 需要注意https://huggingface.co在国内无法打开,需要科学上网。 Docker文件 我们的部署案例使用的Dockerfile文件在Fork项目里,点击这里直接查看。 将项目clone到你本地查看Dockerfile。 ~ git clone https://github.com/kongh/Llama2-Chinese.git ~ git checkout kh 使用Aliyun部署模型 整个部署大概耗时1个小时,所以,费用一般就20元左右。 购买机器 在这里我们选择阿里云的GPU服务器, 优先选择配置GPU: 24G的服务器。 选购机器 镜像和存储 网络和登录凭证 启动模型 登录服务器 ~ ssh root@your server ip 查看GPU驱动 ~ nvidia-smi 安装docker 你可以直接参考https://docs.docker.com/engine/install/ubuntu/安装, 也可以直接使用如下命令。 # Add Docker's official GPG key: sudo apt-get update sudo apt-get install ca-certificates curl gnupg sudo install -m 0755 -d /etc/apt/keyrings curl -fsSL https://download....

September 22, 2023 · 2 min · Hang Kong

人工智能|机器学习开篇——从大模型开始认识机器学习

人工智能|机器学习开篇——从大模型开始认识机器学习 引言 在当今数字化时代,人工智能(AI)和机器学习(ML)已经成为科技领域的焦点。它们正在改变着我们的生活方式、商业模式和社会互动方式,无论是在自动驾驶汽车中的应用,还是在智能手机上的语音助手中,都可以看到AI和ML的身影。然而,要理解这些复杂的技术,首先需要从基础开始,了解它们的核心原理。 本文的主题是“从大模型开始认识机器学习”,我们将从一个引人注目的大型模型ChatGPT开始,逐步深入了解机器学习的基本概念。ChatGPT不仅代表了AI领域的最新成就,还将帮助我们更好地理解机器学习的核心原理和应用。 在本文中,我们将首先介绍ChatGPT,这是一个令人兴奋的自然语言处理模型,它具有出色的文本生成和理解能力。然后,我们将探讨机器学习的基础知识,包括数据驱动的决策、模型和算法。最后,我们将深入研究ChatGPT的机器学习实践,了解它是如何被训练和应用的。 通过本文的阅读,我们希望读者能够更好地理解AI和机器学习的核心概念,以及它们如何塑造着我们的未来。无论您是一名学生、一名工程师还是一个对技术充满好奇心的个体,这篇文章都将为您提供有关AI和机器学习的入门知识,以便您更深入地探索这个令人激动的领域。让我们开始这次探索之旅吧! 第一部分:ChatGPT 与大型模型 1.1 ChatGPT 的简介 ChatGPT是当今人工智能领域最引人注目的成就之一,代表了自然语言处理(NLP)领域中的最新进展。它不仅能够理解和生成自然语言文本,还可以进行复杂的对话和文本生成任务。让我们首先来了解一下ChatGPT的一些关键特点。 ChatGPT的起源 ChatGPT由OpenAI团队开发,是GPT(生成对抗网络)系列模型的最新成员。OpenAI是一个在人工智能和机器学习研究方面备受瞩目的组织,他们的目标是推动AI技术的前沿。ChatGPT的出现源于对自然语言处理能力的不断追求,以实现更加智能的对话系统。 ChatGPT的规模 一个引人注目的特点是ChatGPT的规模。这个模型拥有数十亿个参数,远超过了以前的NLP模型。这种规模意味着ChatGPT可以处理巨大的语料库,从中学习到更复杂和精细的语言模式。这也是为什么ChatGPT能够表现出出色的文本生成和理解能力的重要原因。 ChatGPT的应用领域 ChatGPT的强大功能使其在各种应用领域都能发挥作用。它可以用于自动化客服,为网站和应用提供智能聊天支持。此外,ChatGPT还可用于虚拟助手,如语音助手、智能家居设备等,使用户能够通过自然语言与计算机进行互动。在教育、医疗保健和研究领域,ChatGPT还可以帮助分析文本、生成报告以及进行自动化文档处理。 1.2 大型模型的背后 ChatGPT之所以如此强大,背后有着复杂的技术原理和构成要素。让我们深入探讨大型模型的内部机制和背后的科学原理。 深度学习基础 深度学习是实现ChatGPT等大型模型的核心技术。它是一种模仿人脑神经元工作方式的计算方法,通过神经网络实现对复杂数据的建模。在ChatGPT中,深度学习的神经网络由多个层次组成,每一层都可以捕获不同级别的语言特征。这种分层结构使得ChatGPT能够理解和生成自然语言文本。 自然语言处理 自然语言处理(NLP)是ChatGPT的基础。NLP是一门研究如何使计算机理解和处理人类语言的学科。在ChatGPT中,NLP技术使模型能够分析文本,提取关键信息,并生成与人类语言相似的回复。NLP的进步对ChatGPT等大型模型的性能至关重要。 大型模型的挑战 尽管大型模型如ChatGPT具有强大的能力,但它们也面临一些挑战。训练和部署这些模型需要大量的计算资源,这对于许多组织来说可能是一项昂贵的投资。此外,大型模型容易受到数据偏差和模型偏差的影响,需要采取额外的措施来减轻这些问题。 在本部分中,我们深入了解了ChatGPT及其背后的技术原理。下一步,我们将探讨机器学习的基础概念,以帮助读者更好地理解ChatGPT的训练和应用。 第二部分:机器学习的基础概念 2.1 什么是机器学习? 机器学习是实现人工智能的关键技术之一,它让计算机能够从数据中学习并提高性能,而无需显式编程。这一部分将深入探讨机器学习的核心概念和不同类型。 机器学习的定义 机器学习可以被定义为一种让计算机系统通过数据学习并改进性能的方法。与传统编程不同,机器学习系统不需要显式地编写规则,而是从数据中自动提取规律和模式。 机器学习的分类 机器学习可以分为几种不同的类型,每种类型都用于解决不同类型的问题。其中包括: 监督学习:在监督学习中,模型通过带有标签的训练数据进行学习,以预测未知数据的标签。这种方法常用于分类和回归任务,如垃圾邮件检测和房价预测。 无监督学习:无监督学习不依赖于标签,模型试图发现数据中的模式和结构。这种方法用于聚类、降维和异常检测等任务。 强化学习:强化学习涉及到一个智能体与环境互动,通过尝试不同的行动来最大化累积奖励。这种方法在自动驾驶、游戏玩法和机器人控制等领域具有广泛应用。 了解不同类型的机器学习有助于我们选择适合特定问题的方法,并了解如何构建和训练相应的模型。 2.2 数据驱动的决策 在机器学习中,数据是至关重要的资源。理解数据是如何驱动决策和模型训练的,对于深入了解机器学习至关重要。 数据的重要性 数据在机器学习中扮演着核心角色,模型的性能很大程度上取决于数据的质量和数量。大量、多样化的数据可以帮助模型更好地泛化到新的情况,但低质量或不平衡的数据可能导致模型性能下降。 数据类型 数据可以是多种类型,包括: 结构化数据:通常以表格形式呈现,如数据库中的数据。这类数据适合用于监督学习任务,如分类和回归。 非结构化数据:非结构化数据包括文本、图像、声音等,通常需要特殊的处理和分析技术。它们在自然语言处理、计算机视觉和音频处理等领域中发挥重要作用。 了解数据的类型和如何处理它们对于选择合适的机器学习方法和模型至关重要。 2.3 模型和算法 机器学习模型是实现任务的工具,而算法是让模型学习的方式。在这一部分,我们将讨论机器学习中常用的模型和算法。 机器学习模型 机器学习模型是一种数学表示,它们用于捕获数据中的模式和关系。一些常见的机器学习模型包括: 线性回归:用于处理回归问题,尝试拟合一条直线来预测连续值的输出。 决策树:用于分类和回归问题,通过树状结构进行决策。 神经网络:模仿人脑神经元工作方式的模型,用于处理复杂的非线性问题。 机器学习算法 机器学习算法是让模型从数据中学习的方法。一些常见的机器学习算法包括: 梯度下降:一种用于训练模型的优化算法,通过调整模型参数以最小化损失函数。 随机森林:一种集成学习方法,通过组合多个决策树来提高模型性能。 K均值聚类:一种用于无监督学习的聚类算法,将数据点分组成簇。 了解不同的机器学习模型和算法,以及它们的应用场景,将有助于选择适合特定任务的方法。 在本部分中,我们深入了解了机器学习的基本概念,包括不同类型的机器学习、数据的重要性以及常见的模型和算法。接下来,我们将深入研究ChatGPT的机器学习实践,以更好地理解这些概念如何应用于现实世界中的大型模型。 第三部分:ChatGPT 的机器学习实践 3.1 ChatGPT 的训练 了解ChatGPT是如何被训练的,将有助于我们更好地理解它为什么具备出色的自然语言处理能力。以下是ChatGPT的训练过程的关键要点。...

September 20, 2023 · 1 min · Hang Kong

Hugo Loveit 主题example配置文件

baseURL = "https://example.com" # theme # 主题 theme = "LoveIt" # themes directory # 主题目录 themesDir = "../.." # website title # 网站标题 title = "LoveIt" # determines default content language ["en", "zh-cn", "fr", "pl", ...] # 设置默认的语言 ["en", "zh-cn", "fr", "pl", ...] defaultContentLanguage = "en" # language code ["en", "zh-CN", "fr", "pl", ...] # 网站语言, 仅在这里 CN 大写 ["en", "zh-CN", "fr", "pl", ...] languageCode = "en" # language name ["English", "简体中文", "Français", "Polski", ....

October 29, 2022 · 17 min · KongHang

使用Hugo搭建个人博客指南

使用Hugo搭建个人博客指南 本文假设读者使用MacBook并且已经存在Git工具,若非此前提条件请提前安装对应的工具。 一、安装Hugo 1.1 安装 ~ brew install hugo 1.2 验证 ~ hugo version 二、创建项目 2.1 创建名为blog的项目 ~ hugo new site blog 2.2 打开项目 本文使用 vscode来编写 Markdown文件,你可以选择任何编辑器来编写。但是,我们推荐你使用 vscode, 同时,这里有一份安装指南提供参考。 2.3 初始化成git项目 ~ git init ~ git branch -m main ~ git add . ~ git commit -m "init" 2.4 添加主题 ~ git submodule add https://github.com/dillonzq/LoveIt.git themes/LoveIt 2.5 修改配置文件,添加主题 打开 config.toml文件,增加 theme = "LoveIt"配置。 2.6 创建第一篇文章 ~ hugo new posts/hugo-blog-guide/index.md 2.7 本地启动服务器,查看效果 ~ hugo server -D 使用浏览器打开后,应该会看到如下效果。 三、优化项目 3....

October 29, 2022 · 4 min · KongHang