写点什么

【ARTS】Week 1

作者:小小
  • 2023-08-21
    北京
  • 本文字数:1615 字

    阅读完需:约 5 分钟

【ARTS】Week 1

Algorithm

除了刚毕业那会儿,工作以来从来没有正经刷过算法题呢,不知道算是幸运还是不幸 -0 -,借此打卡机会从头开始刷吧,以备日后不时之需 ^ _ ^

【简单】两数之和

https://leetcode.cn/problems/two-sum/

题目

给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target  的那 两个 整数,并返回它们的数组下标。

你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。

你可以按任意顺序返回答案。

考察点

数组、哈希表

解法

自己的解法

很容易想到的就是双层 for 循环,但是时间复杂度 n2 次方,很显然太暴力不优雅。但是想了一会儿也没想到太好的方法,偷瞄了下官方的解法是用哈希表,就灵光一现写了出来。哎,争取下次能自己先想到吧……

class Solution:    def twoSum(self, nums: List[int], target: int) -> List[int]:        results = {}        for i, n in enumerate(nums):            m = target - n            if m in results:                return [i, results[m]]            else:                results[n] = i        return []
复制代码

官方解法

class Solution:    def twoSum(self, nums: List[int], target: int) -> List[int]:        hashtable = dict()        for i, num in enumerate(nums):            if target - num in hashtable:                return [hashtable[target - num], i]            hashtable[nums[i]] = i        return []
作者:力扣官方题解链接:https://leetcode.cn/problems/two-sum/solutions/434597/liang-shu-zhi-he-by-leetcode-solution/来源:力扣(LeetCode)著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
复制代码


Review

由于工作和 AI 相关,每周的 Review 就定为 AI 相关的论文吧,第一篇就从最经典的《Attention Is All You Need》开始吧,从 Bert 到 ChatGPT,attention 和 transformer 现在真得火到爆了,工作中也是每天都打交道,原论文却没有正式的读过,借此机会重读经典!本周先来学习论文的前两小结。

原文链接

Attention Is All You Need

概述

这里推荐一下李沐大神在 B 站对这篇论文的精读:https://www.bilibili.com/video/BV1pu411o7BE/

笔记

Abstract

提出了一种全新的简单的模型架构 Transformer,摒弃了传统的 RNN 和 CNN 结构,完全使用 attention 机制,不仅训练时间缩短,还在多个 NLP 任务中获得非常好的效果,并预言将来会用到更多的场景中(发现预言家,刀了……)

Introduction

回顾了 RNN 的不足,基于自回归机制,RNN 要维护一个隐状态,该隐状态取决于上一时刻的隐状态,不能并行计算,而最终的隐状态所包含的信息不足,序列越长对早期的信息遗忘越多。所以提出了 Transformer 架构,使用注意力机制来学习输入输出之间的序列关系,表现力更强,还可以并行计算。

Tips

最近在使用 tritonserver 作为推理服务的框架,它的模型编排,模型自动加载,支持多种 backend 的功能是真的香!但使用过程中也遇到了一些坑,比如有些模型在 GPU 推理比较快,到 CPU 就很拉胯。而很多时候生产环境部署,不得不使用 CPU,经过一番折腾测试,发现加入以下参数可以大幅提高 onnxruntime backend 在 CPU 下并发性能和稳定性。

parameters { key: "intra_op_thread_count" value: { string_value: "2" } }parameters { key: "inter_op_thread_count" value: { string_value: "2" } }instance_group [{count: 10 kind: KIND_CPU}]
复制代码

优化参数详见:https://github.com/triton-inference-server/onnxruntime_backend/blob/main/README.md

Share

人因梦想而伟大

又因坚持梦想而成长

-- 雷军

前几天看了雷布斯的演讲,其中一个片段很有感触,说的是为了和徕卡提升摄影效果,在小米内部开设摄影班,让大家都参与进来学习摄影,在长城办影展,最终发布徕卡双画质的手机,得到用户的好评。这种说做就做,有想法,有执行力,为梦想而坚持的精神,值得学习!



用户头像

小小

关注

还未添加个人签名 2020-07-07 加入

还未添加个人简介

评论

发布
暂无评论
【ARTS】Week 1_ARTS 打卡计划_小小_InfoQ写作社区