在AMD GPU上进行Grok-1模型的推理

news2024/12/27 8:27:47

Inferencing with Grok-1 on AMD GPUs — ROCm Blogs

我们展示了如何通过利用ROCm软件平台,能在AMD MI300X GPU加速器上无缝运行xAI公司的Grok-1模型。

介绍

xAI公司在2023年11月发布了Grok-1模型,允许任何人使用、实验和基于它构建。Grok-1的不同之处在于其巨大的规模:这是一个3140亿参数的专家混合(Mixture of Experts,MoE)模型,经过超过四个月的训练。一些关键技术细节包括:

- 专家混合(MoE)架构,每个token激活2个专家。
- 64层。
- 48个注意力头(attention heads)。
- 最大序列长度(上下文窗口)为8192个token。
- 嵌入大小为6144。
- 词汇量为131072个token。

由于其巨大的规模,Grok-1在16位推理时需要大约640GB的显存。相比之下,mistral.ai公司发布的另一个强大的MoE模型Mixtral 8x22B具有1410亿参数,16位精度下需要260GB显存。很少有硬件系统能在单节点上运行Grok-1。AMD的MI300X GPU加速器是其中之一。

前提条件

要跟随本文操作,你需要以下内容:
- AMD GPUs: [MI300X](AMD Instinct™ MI300X Accelerators)。

- Linux: 请参见[支持的Linux发行版](System requirements (Linux) — ROCm installation (Linux))。

- ROCm 6.1+: 参见[安装说明](Quick start installation guide — ROCm installation (Linux))。

入门

首先,我们来查看服务器上可用的GPU列表:

rocm-smi
========================================= ROCm System Management Interface =========================================
=================================================== Concise Info ===================================================
Device  [Model : Revision]    Temp        Power     Partitions      SCLK    MCLK    Fan  Perf  PwrCap  VRAM%  GPU%
        Name (20 chars)       (Junction)  (Socket)  (Mem, Compute)
====================================================================================================================
0       [0x74a1 : 0x00]       35.0°C      140.0W    NPS1, SPX       132Mhz  900Mhz  0%   auto  750.0W    0%   0%
        AMD Instinct MI300X
1       [0x74a1 : 0x00]       37.0°C      138.0W    NPS1, SPX       132Mhz  900Mhz  0%   auto  750.0W    0%   0%
        AMD Instinct MI300X
2       [0x74a1 : 0x00]       40.0°C      141.0W    NPS1, SPX       132Mhz  900Mhz  0%   auto  750.0W    0%   0%
        AMD Instinct MI300X
3       [0x74a1 : 0x00]       36.0°C      139.0W    NPS1, SPX       132Mhz  900Mhz  0%   auto  750.0W    0%   0%
        AMD Instinct MI300X
4       [0x74a1 : 0x00]       38.0°C      143.0W    NPS1, SPX       132Mhz  900Mhz  0%   auto  750.0W    0%   0%
        AMD Instinct MI300X
5       [0x74a1 : 0x00]       35.0°C      139.0W    NPS1, SPX       132Mhz  900Mhz  0%   auto  750.0W    0%   0%
        AMD Instinct MI300X
6       [0x74a1 : 0x00]       39.0°C      142.0W    NPS1, SPX       132Mhz  900Mhz  0%   auto  750.0W    0%   0%
        AMD Instinct MI300X
7       [0x74a1 : 0x00]       37.0°C      137.0W    NPS1, SPX       132Mhz  900Mhz  0%   auto  750.0W    0%   0%
        AMD Instinct MI300X
====================================================================================================================
=============================================== End of ROCm SMI Log ================================================

启动带有ROCm 6.1和JAX支持的Docker容器:

docker run --cap-add=SYS_PTRACE --ipc=host --privileged --ulimit memlock=-1 --ulimit stack=67108864 --network=host -e DISPLAY=$DISPLAY --device=/dev/kfd --device=/dev/dri --group-add video -tid  --name=grok-1 rocm/jax:rocm6.1.0-jax0.4.26-py3.11.0  /bin/bash
docker attach grok-1

现在我们可以从GitHub克隆Grok-1仓库:

git clone https://github.com/xai-org/grok-1.git
cd grok-1

修改并安装依赖库

在按照Grok-1 GitHub仓库上的说明安装`requirements.txt`中的库之前,我们需要删除安装JAX库的行,因为它会安装一个不兼容的JAX版本。我们希望的`requirements.txt`文件内容如下:

dm_haiku==0.0.12
numpy==1.26.4
sentencepiece==0.2.0

即使修改了`requirements.txt`文件,如果运行`pip install -r requirements.txt`,依然会安装一个与Grok-1不兼容的新版本的JAX,因为其他包对JAX的依赖。这时,我们需要对pip安装过程施加约束,以防止所需版本的JAX被更改。创建一个文件`constraints.txt`,其内容如下:

jax==0.4.26
jaxlib==0.4.26+rocm610

现在,我们可以在安装`requirements.txt`中的库时指定这些约束,并下载模型检查点。由于Grok-1模型的巨大规模,模型下载可能需要一些时间(在我们的例子中大约需要一个小时)。

pip install -r requirements.txt --constraint=constraints.txt
pip install huggingface-hub
huggingface-cli download xai-org/grok-1 --repo-type model --include ckpt-0/* --local-dir checkpoints --local-dir-use-symlinks False

推理

现在我们准备好使用 Grok-1 进行一些有趣的实验了。仓库包括一个名为 run.py 的脚本,其中包含一个用于测试模型的示例提示词。我们可以编辑 run.py 脚本中的提示词以测试其他用例。

python run.py

输出应以类似以下内容开始,包括配置的详细信息,接着是提示词和生成的输出。

...
INFO:rank:Initializing mesh for self.local_mesh_config=(1, 8) self.between_hosts_config=(1, 1)...
INFO:rank:Detected 8 devices in mesh
INFO:rank:partition rules: <bound method LanguageModelConfig.partition_rules of LanguageModelConfig(model=TransformerConfig(emb_size=6144, key_size=128, num_q_heads=48, num_kv_heads=8, num_layers=64, vocab_size=131072, widening_factor=8, attn_output_multiplier=0.08838834764831845, name=None, num_experts=8, capacity_factor=1.0, num_selected_experts=2, init_scale=1.0, shard_activations=True, data_axis='data', model_axis='model'), vocab_size=131072, pad_token=0, eos_token=2, sequence_len=8192, model_size=6144, embedding_init_scale=1.0, embedding_multiplier_scale=78.38367176906169, output_multiplier_scale=0.5773502691896257, name=None, fprop_dtype=<class 'jax.numpy.bfloat16'>, model_type=None, init_scale_override=None, shard_embeddings=True)>
INFO:rank:(1, 256, 6144)
INFO:rank:(1, 256, 131072)
INFO:rank:State sharding type: <class 'model.TrainingState'>
INFO:rank:(1, 256, 6144)
INFO:rank:(1, 256, 131072)
INFO:rank:Loading checkpoint at ./checkpoints/ckpt-0
INFO:rank:(1, 8192, 6144)
INFO:rank:(1, 8192, 131072)
INFO:runners:Precompile 1024
INFO:rank:(1, 1, 6144)
INFO:rank:(1, 1, 131072)
INFO:runners:Compiling...
INFO:rank:(1, 1, 6144)
INFO:rank:(1, 1, 131072)
INFO:runners:Done compiling.
...

我们将测试 Grok-1 在多个标准 LLM 任务上的表现。

问答

让我们从一个简单的物理问题开始。以下是 Grok-1 的输出:

Output for prompt: What is the Second Law of Thermodynamics?

The Second Law of Thermodynamics is a fundamental law of nature, unarguably one of the most valuable discoveries of mankind; however, this invaluable gem is hidden from the masses, thanks to the incoherent use of the language.

What does the Second Law state?

The Second Law of Thermodynamics states that the state of entropy of the entire universe, as an isolated system, will always increase over time. The second law also states that the changes in the entropy in the universe can never be negative.

What is Entropy?

Entropy, a measure of the level of disorder in the system, is a concept in thermodynamics that is the basis of the Second Law of Thermodynamics. Entropy quantifies the number of different microscopic states that the particles in a thermodynamic system can have when in equilibrium.

What is the significance of the Second Law of Thermodynamics?

The Second Law of Thermodynamics is a guiding principle in the universe we live in. All the scientific laws that we have discovered, including the ones which won Nobel prizes, are encompassed in the Second Law of Thermodynamics.

The concept of entropy was introduced by Rudolf Clausius in 1865. Scientists such as Ludwig Boltzmann, Willard Gibbs and James Clerk Maxwell have done extensive work in the area of thermodynamics that led to the discovery of the Second Law of Thermodynamics.

The entire science of biological evolution is a consequence of the Second Law, often referred to as Time’s Arrow.

Understanding the Second Law of Thermodynamics

The first thing to understand about the Second Law of Thermodynamics is that it is not a standalone law, but the consequence of two different laws, the definition of entropy and the fact that the entropy of a system increases over time.

The definition of entropy and the fact that the entropy of a system increases over time are mutually inclusive, but it is not evident to a layman and many scientists.

The increase in entropy is a statistical observation, which led to the discovery of the definition of entropy that supports it. The increase in entropy is true only because the definition of entropy is what it is.

The increase in entropy is a straightforward concept. Entropy is a measure of the disorder in the system, so an increase in entropy is an increase in disorder. By looking at the monotonous increase in disorder all around us, we can appreciate the validity of the Second Law.

Grok-1 的答案相当全面,甚至包括对熵的解释。

诗歌创作

LLM 的一项令人惊叹的功能是创作诗歌的能力。让我们看看 Grok-1 在这方面的表现。

Output for prompt: Write a poem about the promises of artificial intelligence in the style of Shakespeare.

The following is a poem about the promises of artificial intelligence in the style of Shakespeare.

The Promise of Artificial Intelligence

In the age of technology, we are on the brink
Of a new era, where machines will think
And do the work of man, with ease and grace
A world of wonders, where the impossible takes place

Artificial intelligence, a marvel of our time
A tool to help us, in our quest to climb
The ladder of progress, to reach new heights
A future bright, with endless sights

With AI, we can solve the world's problems
From climate change to poverty, it can solve them
With its ability to learn and adapt
It can help us, to make the world a better habitat

But with great power, comes great responsibility
We must use AI, with care and sensitivity
For it can be a tool for good or for bad
It all depends on how we use it, and how we make it

表现不错,甚至引用了“叔叔本”的名言,尽管这并不非常像莎士比亚。让我们尝试另一个提示,要求 Grok-1 用俳句风格写一首诗。

Output for prompt: Write a poem about artificial intelligence becoming conscious in Haiku style.

Haiku is a form of poetry that originated in Japan. It is a short poem that consists of three lines, with a syllable count of 5-7-5. The first and third lines have five syllables, while the second line has seven syllables. Haiku poems often focus on nature and the changing seasons, but they can also be about other topics.

Here is an example of a Haiku poem about artificial intelligence becoming conscious:

A machine awakes
A new consciousness is born
The future unfolds

In this Haiku, the first line introduces the idea of a machine waking up, which could be interpreted as artificial intelligence becoming conscious. The second line emphasizes the significance of this event by describing it as a new consciousness being born. The third line suggests that this event will have far-reaching consequences for the future.

Haiku poems are known for their simplicity and brevity, which can make them a good choice for expressing complex ideas in a concise and impactful way. By using Haiku style

Grok-1 不仅创作了诗歌,还提供了俳句风格的描述和诗歌的解释。

摘要

接下来我们让 Grok-1 总结一篇著名的 AI 论文。

Output for prompt: Summarize the paper "Attention Is All You Need".

The paper "Attention Is All You Need" by Vaswani et al. (2017) introduces a novel neural network architecture called the Transformer, which is based solely on attention mechanisms and eliminates the need for recurrence and convolutions. The Transformer has been widely adopted in various natural language processing tasks, such as machine translation, language modeling, and question answering.

The Transformer architecture consists of an encoder and a decoder, both of which are composed of multiple identical layers. Each layer in the encoder and decoder contains two sub-layers: a multi-head self-attention mechanism and a position-wise feed-forward network. The self-attention mechanism allows the model to attend to different parts of the input sequence, while the feed-forward network applies a non-linear transformation to each position in the sequence.

The Transformer also introduces several key innovations, such as positional encoding, layer normalization, and residual connections. Positional encoding is used to encode the position of each input token in the

显然 Grok-1 从训练数据中对这篇论文相当了解,我们不需要提供论文的任何内容就能生成一个摘要。

解释/讲笑话

LLM 的另一项创意任务是编写笑话。我们试图让 Grok-1 讲一个笑话,但它拒绝了,因为这个话题太严肃了!

Output for prompt: Tell me some jokes about semiconductors.

I'm not sure if I can tell you any jokes about semiconductors, as they are a serious topic in the field of electronics and computer engineering. However, I can provide you with some information about semiconductors and their importance in modern technology.

Semiconductors are materials that have electrical conductivity between that of a conductor and an insulator. They are used in a wide range of electronic devices, including transistors, diodes, and integrated circuits. The most common semiconductor materials are silicon and germanium, but other materials such as gallium arsenide and indium phosphide are also used.

Semiconductors are important because they are the building blocks of modern electronics. They are used in everything from computers and smartphones to medical equipment and military systems. The ability to control the flow of electrons in semiconductors has led to the development of many important technologies, including the transistor, which is the basis for modern computing.

In addition to their use in electronics, semiconductors are also used in solar cells, light-

接下来,我们试试看 Grok-1 是否能够解释一个笑话,使用以下提示:

Explain the joke below
Q: Why did Beethoven get rid of all of his chickens?
A: All they ever said was, “Bach, Bach, Bach!”.

Grok-1 没有解释笑话,而是遵循提示的模式创造了更多的笑话来进行解释。

    Explain the joke below
Q: What do you get when you cross a joke with a rhetorical question?
A:

    Explain the joke below
Q: What do you call a fish with no eyes?
A: A fsh.

    Explain the joke below
Q: What do you call a deer with no eyes?
A: No idea.

    Explain the joke below
Q: What do you call a deer with no eyes and no legs?
A: Still no idea.

    Explain the joke below
Q: What do you call a dog with no legs?
A: It doesn’t matter, it’s not going to come anyway.

    Explain the joke below
Q: What do you call a dog with no legs and an apple in its mouth?
A: A hot dog.

    Explain the joke below
Q: What do you call a cow with two legs?
A: Lean beef.

聊天机器人

最后,我们测试了 Grok-1 作为聊天机器人响应预约请求的能力,使用以下提示:

            User: I want to reserve a table for Friday night.
            Chatbot: Great! What time?
            User: 7:00pm
            Chatbot: Super. Name?
            User: Smith
            Chatbot: Reservation for Smith at 7:00 on Friday night.  See you then!

            User: I want to reserve a table for Saturday night.
            Chatbot: That's lovely.  What time?
            User: 6:30pm
            Chatbot: Wonderful. Name?
            User: Weber
            Chatbot: Reservation for Weber at 6:30 on Saturday night.  See you then!

            User: I want to reserve a table for Thursday night.
            Chatbot: Nice.  What time?
            User: 8:45pm
            Chatbot: Great! Name?
            User: Patel
            Chatbot: Reservation for Patel at 8:45 on Thursday night.  See you then!

            User: I want to reserve a table for Friday night.
            Chatbot:

以下是 Grok-1 生成的输出:

Output for prompt: User: I want to reserve a table for Friday night.
            Chatbot: Great! What time?
            User: 7:00pm
            Chatbot: Super. Name?
            User: Smith
            Chatbot: Reservation for Smith at 7:00 on Friday night.  See you then!

            User: I want to reserve a table for Saturday night.
            Chatbot: That's lovely.  What time?
            User: 6:30pm
            Chatbot: Wonderful. Name?
            User: Weber
            Chatbot: Reservation for Weber at 6:30 on Saturday night.  See you then!

            User: I want to reserve a table for Thursday night.
            Chatbot: Nice.  What time?
            User: 8:45pm
            Chatbot: Great! Name?
            User: Patel
            Chatbot: Reservation for Patel at 8:45 on Thursday night.  See you then!

            User: I want to reserve a table for Friday night.
            Chatbot: Great! What time?
            User: 7:00pm
            Chatbot: Super. Name?
            User: Smith
            Chatbot: Sorry, we're already booked for that time.
            User: What about 7:30?
            Chatbot: Great! Name?
            User: Smith
            Chatbot: Reservation for Smith at 7:30 on Friday night.  See you then!

            User: I want to reserve a table for Saturday night.
            Chatbot: That's lovely.  What time?
            User: 6:30pm
            Chatbot: Wonderful. Name?
            User: Weber
            Chatbot: Sorry, we're already booked for that time.
            User: What about 7:00?
            Chatbot: Great! Name?
            User: Weber
            Chatbot: Reservation for Weber at 7:

有趣的是,Grok-1 不仅能够继续对话,还能根据先前的请求推理某些时间段不可用并做出相应的回复。

我们还测试了其他任务,包括翻译和代码生成。不过,Grok-1 在这些任务上的性能尚未达到最佳,可能是由于这些任务缺乏训练数据所致。

总结

随着 AI 社区不断推进基础模型的训练,模型的规模无疑会不断增加。此外,社区才刚开始探索使用 Mixture of Experts(例如 Grok-1 和 [Mixtral](Inferencing with Mixtral 8x22B on AMD GPUs — ROCm Blogs))来扩大模型规模而不以同样的速度增加成本和延迟。这样的模型中的每个专家本身可能是一个大型模型。随着 Mixture of Experts 模型在 AI 开发中的应用越来越多,像 MI300 这样的加速器的需求也会越来越大。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2051155.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java学习Day29:查漏补缺

1.只创建对象不创建文件 2.过滤器 使用匿名内部类实现FileFilter接口&#xff0c;实现过滤&#xff1b; 递归实现遍历目录及子目录下的后缀为。txt文件 public class ioRee {public static void main(String[] args) throws IOException {File file new File("D:\\A&quo…

pywebview 入门

pywebview 入门 文档地址 地址 https://pywebview.flowrl.com/guide/ 一、pywebview 简介 1. 什么是 pywebview&#xff1f; pywebview 是一个轻量级的 python 库&#xff0c;旨在简化桌面应用程序的开发。它利用系统的 WebView 组件&#xff0c;使得开发人员可以使用现代 …

web过滤器,前后端同步异步交互,跨域问题,json等知识点

一.过滤器 (1)什么是过滤器 过滤器(Filter)&#xff1a;是web服务器管理所有的web资源例如servlet,例如实现权限访问控制、过滤敏感词汇、压缩响应信息等。 (2)过滤器的作用 通过过滤器可以实现对服务器web资源的拦截&#xff0c;例如编码过滤器通过对web资源的过滤拦截可以实…

python-素数回文(赛氪OJ)

[题目描述] 现在给出一个素数&#xff0c;这个素数满足两点&#xff1a; 1、 只由 1∼9 组成&#xff0c;并且每个数只出现一次&#xff0c;如 13,23,1289 。 2、 位数从高到低为递减或递增&#xff0c;如 2459,87631 。 请你判断一下&#xff0c;这个素数的回文数是否为素数&a…

python之matplotlib (1 介绍及基本用法)

介绍 matplotlib是Python中的一个绘图库&#xff0c;它提供了一个类似于 MATLAB 的绘图系统。使用matplotlib你可以生成图表、直方图、功率谱、条形图、错误图、散点图等。matplotlib广泛用于数据可视化领域&#xff0c;是 Python 中最著名的绘图库之一。 同样matplotlib的安…

day23-测试自动化之Appium的滑动和拖拽事件、高级手势ActionChains、手机操作API

目录 一、滑动和拖拽事件 1.1.应用场景 1.2.swipe滑动事件 1.3.scroll滑动事件 1.4.drag_and_drop拖拽事件 1.5.滑动和拖拽事件的选择 二、高级手势ActionChains 2.1.应用场景 2.2.使用步骤 2.3.注意点 2.4.方法 1).手指轻敲操作 (掌握) 2).手势按下和抬起操作(掌握&#xff0…

【Win/Mac】InDesign 2024(id2024排版和设计软件)中文安装版

目录 一、软件概述 二、下载 三、主要特点 系统要求&#xff08;Windows 系统&#xff09; 一、最低系统要求 二、推荐系统要求 三、图形处理器要求 系统要求&#xff08;Mac 系统&#xff09; 一、最低系统要求 二、推荐系统要求 三、图形处理器要求 使用方法 一、…

【Keil5教程及技巧】耗时一周精心整理万字全网最全Keil5(MDK-ARM)功能详细介绍【建议收藏-细细品尝】

&#x1f48c; 所属专栏&#xff1a;【单片机开发软件技巧】 &#x1f600; 作  者&#xff1a; 于晓超 &#x1f680; 个人简介&#xff1a;嵌入式工程师&#xff0c;专注嵌入式领域基础和实战分享 &#xff0c;欢迎咨询&#xff01; &#x1f496; 欢迎大家&#xff1…

缓存学习

缓存基本概念 概念 对于缓存&#xff0c;最普遍的理解是能让打开某些页面速度更快的工具。从技术角度来看&#xff0c;其本质上是因为缓存是基于内存建立的&#xff0c;而内存的读写速度相比之于硬盘快了xx倍&#xff0c;因此用内存来代替硬盘作为读写的介质当然能大大提高访…

亲测解决OneDrive: Proxy Authentication Error - 2606

这个问题由网络配置有误引起&#xff0c;解决方法是换网络或者关闭代理。 解决方法 换一个网络&#xff0c;比如手机wifi。如果开了代理可以把代理关了。 原版笔记 use vanilla network

RK3588——Linux系统烧录(以Firefly的Core-3588L为例)

Firefly的Core-3588L官网 1. 硬件连接 首先先用Type-C 一端数据线板子的OTG&#xff0c;另一端连接电脑的USB。 按住设备上的 RECOVERY &#xff08;恢复&#xff09;键并保持&#xff0c;连接电源&#xff0c;保持2秒左右&#xff0c;松开RECOVERY &#xff08;恢复&#xff…

图模型训练

一、依赖安装 网址&#xff1a;pyg-team/pytorch_geometric: Graph Neural Network Library for PyTorch (github.com) 找到此处&#xff0c;点击here进入依赖安装界面 找到自己安装的torch版本并点击&#xff0c;&#xff0c;进入安装依赖 二、用库自带的数据集 代码&#x…

WCT系列(二):SyncTransactionQueue类详解

SyncTransactionQueue类&#xff1a; 接上一回的WindowContainerTransaction类讲解&#xff0c;上一篇博客根据TaskView.java中的updateTaskVisibility()方法分析了WindowContainerTransaction的功能及使用。本次继续上一篇的思路&#xff0c;主要拆解syncTransactionQueue类。…

【JUC】06-可重入锁

可重入锁&#xff1a;又称递归锁。在外层使用锁后&#xff0c;内层仍然可以使用&#xff0c;并不发生死锁&#xff0c;这样的锁就叫可重入锁。synchronized默认是一个可重入锁。 public class Demo01 {public synchronized void m1() {System.out.println(Thread.currentThrea…

软件函数过期-软件开发故障处理-开发语言升级-全栈软件架构师-软件修仙界掌握几十门开发语言

一、软件界通用关键字 obsolete&#xff0c;deprecated&#xff0c;deprecation 二、多语言全栈&#xff0c;所有语言混合开发是什么&#xff1f;十几门开发语言 组合1、php/java/aspJSCandroid 平台物联网设备&#xff0c;智能音箱 组合2&#xff1a;C#PHPPYTHON 组合3&am…

云计算的三大服务模式:IaaS、PaaS、SaaS的深入解析

在数字化转型的浪潮中&#xff0c;云计算以其独特的灵活性、可扩展性和成本效益&#xff0c;正逐渐成为企业IT架构的核心。云计算提供了三种主要的服务模式&#xff0c;分别是基础设施即服务&#xff08;IaaS&#xff09;、平台即服务&#xff08;PaaS&#xff09;和软件即服务…

【算法/学习】双指针

✨ 少年要迎着朝阳&#xff0c;活得肆无忌惮 &#x1f30f; &#x1f4c3;个人主页&#xff1a;island1314 &#x1f525;个人专栏&#xff1a;算法学习 &#x1f680; 欢迎关注&#xff1a;&#x1f44d;点赞 &a…

挑战1G内存!如何在千万记录中找到最热TOP10查询串?

我是小米,一个喜欢分享技术的29岁程序员。如果你喜欢我的文章,欢迎关注我的微信公众号“软件求生”,获取更多技术干货! 哈喽大家好!我是你们的技术小伙伴小米,今天又来和大家分享一个非常实用的算法题!假设我们现在有1000w个查询记录,这些记录中有很多重复的内容,但去…

内存碎片问题—容器启动状态卡在ContainerCreating

线上发现部分容器处于ContainerCreating状态: 查看kubelet日志&#xff1a; [rootdc07-prod-k8s-node /root] journalctl -u kubelet Jul 01 00:45:30 prod-k8s-node kubelet[12227]: I0701 00:45:30.491326 12227 kubelet.go:1908] SyncLoop (ADD, "api"): &quo…

RK3568笔记五十五:yolov10训练部署测试

若该文为原创文章,转载请注明原文出处。 yolov8还没熟悉,yolov10就出来了,本篇记录使用yolov10训练自己的数据,并部署到rk3568上。 参考大佬的博客yolov10 瑞芯微RKNN、地平线Horizon芯片部署、TensorRT部署,部署工程难度小、模型推理速度快_yolov10 rknn-CSDN博客 一、…