목차
준비: 방정식 풀기
结论
用 bash 完成任务
归纳总结
기술 주변기기 일체 포함 알파카 시리즈 대형 모델과 ChatGPT의 차이점은 무엇인가요? 상세한 평가를 마친 후 나는 침묵했다.

알파카 시리즈 대형 모델과 ChatGPT의 차이점은 무엇인가요? 상세한 평가를 마친 후 나는 침묵했다.

May 19, 2023 pm 07:17 PM
ai 모델

얼마 전 구글에서 유출된 문서가 큰 관심을 끌었습니다. 이 문서에서 Google 내부 연구원은 중요한 점을 표현했습니다. Google에는 해자가 없으며 OpenAI도 마찬가지입니다.

연구원은 표면적으로는 OpenAI와 Google이 대규모 AI 모델에서 서로를 쫓고 있는 것처럼 보이지만 제3자의 세력이 조용히 부상하고 있기 때문에 이 둘에서 진정한 승자가 나오지 않을 수도 있다고 말했습니다.

이 힘을 "오픈 소스"라고합니다. Meta의 LLaMA와 같은 오픈소스 모델을 중심으로 커뮤니티 전체가 OpenAI 및 Google의 대형 모델과 유사한 기능을 갖춘 모델을 빠르게 구축하고 있습니다. 게다가 오픈소스 모델은 반복성이 더 빠르고, 사용자 정의가 가능하며, 비공개성이 더 높습니다… 무료이기 때문에 사람들은 제한되지 않은 대안의 품질이 동일할 때 제한된 모델에 비용을 지불하지 않을 것입니다.”라고 저자는 썼습니다.

이러한 견해는 소셜 미디어에서 많은 논란을 불러일으켰습니다. 더 큰 논란 중 하나는 이러한 오픈 소스 모델이 실제로 OpenAI ChatGPT 또는 Google Bard와 같은 대규모 상용 폐쇄 소스 모델과 유사한 수준에 도달할 수 있는가입니다. 현 단계에서 두 진영의 격차는 얼마나 됩니까?

이 문제를 살펴보기 위해 Marco Tulio Ribeiro라는 중형 블로거가 일부 복잡한 작업에서 일부 모델(Vicuna-13B, MPT-7b-Chat VS. ChatGPT 3.5)을 테스트했습니다.

그 중 Vicuna-13B는 캘리포니아대학교 버클리대학교, 카네기멜론대학교, 스탠포드대학교, 샌디에이고대학교 연구진이 제안한 오픈소스 모델입니다. 이 모델은 LLaMA를 기반으로 구축되었습니다. 13B 매개변수 버전입니다. GPT-4가 채점한 테스트에서 매우 좋은 성능을 보였습니다("ChatGPT의 9회 성공을 재현하기 위해 300달러, GPT-4가 직접 테스트를 감독했으며 130억 매개변수 오픈 소스 모델 "Little Alpaca" 참조). 여기에").

MPT-7B는 mosaicML에서 출시한 대규모 언어 모델로, 메타의 LLaMA 모델 훈련 방식을 따릅니다. mosaicML은 MPT-7B가 메타의 70억 매개변수 LLaMA 모델과 동등한 성능을 발휘한다고 말합니다.

대규모 언어 모델의 벤치마크인 ChatGPT가 그에 비견됩니다.

알파카 시리즈 대형 모델과 ChatGPT의 차이점은 무엇인가요? 상세한 평가를 마친 후 나는 침묵했다.

Marco Tulio Ribeiro는 현재 Microsoft Research의 적응 시스템 및 상호 작용 그룹에서 근무하는 연구원입니다. 그는 또한 워싱턴 대학교의 공동 조교수이기도 합니다. 이 작업은 그와 Microsoft의 또 다른 연구원인 Scott Lundberg가 수행했습니다. 테스트에서는 프롬프트 디자인을 돕기 위해 Microsoft의 지침 라이브러리를 사용했습니다.

준비: 방정식 풀기

첫 번째 작업은 간단한 다항식 방정식을 푸는 것입니다. 이러한 질문에는 표준 답이 있으므로 옳고 그름을 더 쉽게 평가할 수 있습니다.

세 가지 지정된 모델에 대해 테스터가 제공한 질문은 두 변수 "x^2+3x=0"의 선형 방정식에 대한 해를 찾는 것입니다. 그들은 다음 프롬프트를 사용했습니다.

알파카 시리즈 대형 모델과 ChatGPT의 차이점은 무엇인가요? 상세한 평가를 마친 후 나는 침묵했다.

세 모델은 다음과 같이 수행했습니다.

ChatGPT:

<code>equation = 'x^2 + 3.0x = 0'roots = [0, -3]answer_gpt = find_roots (llm=chatgpt, equatinotallow=equation)</code>
로그인 후 복사

알파카 시리즈 대형 모델과 ChatGPT의 차이점은 무엇인가요? 상세한 평가를 마친 후 나는 침묵했다.

Vicuna:

<code>answer_vicuna = find_roots (llm=vicuna, equatinotallow=equation)</code>
로그인 후 복사

알파카 시리즈 대형 모델과 ChatGPT의 차이점은 무엇인가요? 상세한 평가를 마친 후 나는 침묵했다.

MPT:

<code>answer_mpt = find_roots (llm=mpt, equatinotallow=equation)</code>
로그인 후 복사

알파카 시리즈 대형 모델과 ChatGPT의 차이점은 무엇인가요? 상세한 평가를 마친 후 나는 침묵했다.

분명히 정답은 [-3 이어야 합니다. , 0], ChatGPT만 올바르게 응답했습니다(Vicuna는 지정된 형식으로도 응답하지 않았습니다).

在这篇文章附带的 notebook 中,测试者编写了一个函数,用于生成具有整数根的随机二次方程,根的范围在 - 20 到 20 之间,并且对每个模型运行了 20 次 prompt。三个模型的准确率结果如下:

<code>╔═══════════╦══════════╦║ Model ║ Accuracy ║ ╠═══════════╬══════════╬║ ChatGPT ║ 80%║║ Vicuna║0%║ ║ MPT ║0%║╚═══════════╩══════════╩</code>
로그인 후 복사

在二元一次方程的测试中,虽然 GPT 做错了一些题,但 Vicuna 和 MPT 一道都没做对,经常在中间步骤中犯错(MPT 甚至经常不写中间步骤)。下面是一个 ChatGPT 错误的例子:

알파카 시리즈 대형 모델과 ChatGPT의 차이점은 무엇인가요? 상세한 평가를 마친 후 나는 침묵했다.

ChatGPT 在最后一步计算错误,(13 +- 25)/2 应该得到 [19,-6] 而不是 [19.5,-6.5]。

由于 Vicuna 和 MPT 实在不会解二元一次方程,测试者就找了一些更简单的题让他们做,比如 x-10=0。对于这些简单的方程,他们得到了以下统计结果:

<code>╔═══════════╦══════════╦║ Model ║ Accuracy ║ ╠═══════════╬══════════╬║ ChatGPT ║ 100% ║║ Vicuna║85% ║ ║ MPT ║30% ║╚═══════════╩══════════╩</code>
로그인 후 복사

下面是一个 MPT 答错的例子:

알파카 시리즈 대형 모델과 ChatGPT의 차이점은 무엇인가요? 상세한 평가를 마친 후 나는 침묵했다.

结论

在这个非常简单的测试中,测试者使用相同的问题、相同的 prompt 得出的结论是:ChatGPT 在准确性方面远远超过了 Vicuna 和 MPT。

任务:提取片段 + 回答会议相关的问题

这个任务更加现实,而且在会议相关的问答中,出于安全性、隐私等方面考虑,大家可能更加倾向于用开源模型,而不是将私有数据发送给 OpenAI。

以下是一段会议记录(翻译结果来自 DeepL,仅供参考):

알파카 시리즈 대형 모델과 ChatGPT의 차이점은 무엇인가요? 상세한 평가를 마친 후 나는 침묵했다.

알파카 시리즈 대형 모델과 ChatGPT의 차이점은 무엇인가요? 상세한 평가를 마친 후 나는 침묵했다.

测试者给出的第一个测试问题是:「Steven 如何看待收购一事?」,prompt 如下:

<code>qa_attempt1 = guidance ('''{{#system~}}{{llm.default_system_prompt}}{{~/system}}{{#user~}}You will read a meeting transcript, then extract the relevant segments to answer the following question:Question: {{query}}Here is a meeting transcript:----{{transcript}}----Please answer the following question:Question: {{query}}Extract from the transcript the most relevant segments for the answer, and then answer the question.{{/user}}{{#assistant~}}{{gen 'answer'}}{{~/assistant~}}''')</code>
로그인 후 복사

ChatGPT 给出了如下答案:

알파카 시리즈 대형 모델과 ChatGPT의 차이점은 무엇인가요? 상세한 평가를 마친 후 나는 침묵했다.

虽然这个回答是合理的,但 ChatGPT 并没有提取任何对话片段作为答案的支撑(因此不符合测试者设定的规范)。测试者在 notebook 中迭代了 5 个不同的 prompt,以下是一些例子:

<code>qa_attempt3 = guidance ('''{{#system~}}{{llm.default_system_prompt}}{{~/system}}{{#user~}}You will read a meeting transcript, then extract the relevant segments to answer the following question:Question: {{query}}Here is a meeting transcript:----{{transcript}}----Based on the above, please answer the following question:Question: {{query}}Please extract from the transcript whichever conversation segments are most relevant for the answer, and then answer the question.Note that conversation segments can be of any length, e.g. including multiple conversation turns.Please extract at most 3 segments. If you need less than three segments, you can leave the rest blank.As an example of output format, here is a fictitious answer to a question about another meeting transcript.CONVERSATION SEGMENTS:Segment 1: Peter and John discuss the weather.Peter: John, how is the weather today?John: It's raining.Segment 2: Peter insults JohnPeter: John, you are a bad person.Segment 3: BlankANSWER: Peter and John discussed the weather and Peter insulted John.{{/user}}{{#assistant~}}{{gen 'answer'}}{{~/assistant~}}''')</code>
로그인 후 복사

在这个新的 prompt 中,ChatGPT 确实提取了相关的片段,但它没有遵循测试者规定的输出格式(它没有总结每个片段,也没有给出对话者的名字)。

不过,在构建出更复杂的 prompt 之后,ChatGPT 终于听懂了指示:

<code>qa_attempt5 = guidance ('''{{#system~}}{{llm.default_system_prompt}}{{~/system}}{{#user~}}You will read a meeting transcript, then extract the relevant segments to answer the following question:Question: What were the main things that happened in the meeting?Here is a meeting transcript:----Peter: HeyJohn: HeyPeter: John, how is the weather today?John: It's raining.Peter: That's too bad. I was hoping to go for a walk later.John: Yeah, it's a shame.Peter: John, you are a bad person.----Based on the above, please answer the following question:Question: {{query}}Please extract from the transcript whichever conversation segments are most relevant for the answer, and then answer the question.Note that conversation segments can be of any length, e.g. including multiple conversation turns.Please extract at most 3 segments. If you need less than three segments, you can leave the rest blank.{{/user}}{{#assistant~}}CONVERSATION SEGMENTS:Segment 1: Peter and John discuss the weather.Peter: John, how is the weather today?John: It's raining.Segment 2: Peter insults JohnPeter: John, you are a bad person.Segment 3: BlankANSWER: Peter and John discussed the weather and Peter insulted John.{{~/assistant~}}{{#user~}}You will read a meeting transcript, then extract the relevant segments to answer the following question:Question: {{query}}Here is a meeting transcript:----{{transcript}}----Based on the above, please answer the following question:Question: {{query}}Please extract from the transcript whichever conversation segments are most relevant for the answer, and then answer the question.Note that conversation segments can be of any length, e.g. including multiple conversation turns.Please extract at most 3 segments. If you need less than three segments, you can leave the rest blank.{{~/user}}{{#assistant~}}{{gen 'answer'}}{{~/assistant~}}''')</code>
로그인 후 복사

알파카 시리즈 대형 모델과 ChatGPT의 차이점은 무엇인가요? 상세한 평가를 마친 후 나는 침묵했다.

알파카 시리즈 대형 모델과 ChatGPT의 차이점은 무엇인가요? 상세한 평가를 마친 후 나는 침묵했다.

测试者表示,他们之所以要多次迭代 prompt,是因为 OpenAI API 不允许他们做部分输出补全(即他们不能指定 AI 助手如何开始回答),因此他们很难引导输出。

相反,如果使用一个开源模型,他们就可以更清楚地指导输出,迫使模型使用他们规定的结构。

新一轮测试使用如下 prompt:

<code>qa_guided = guidance ('''{{#system~}}{{llm.default_system_prompt}}{{~/system}}{{#user~}}You will read a meeting transcript, then extract the relevant segments to answer the following question:Question: {{query}}----{{transcript}}----Based on the above, please answer the following question:Question: {{query}}Please extract the three segment from the transcript that are the most relevant for the answer, and then answer the question.Note that conversation segments can be of any length, e.g. including multiple conversation turns. If you need less than three segments, you can leave the rest blank.As an example of output format, here is a fictitious answer to a question about another meeting transcript:CONVERSATION SEGMENTS:Segment 1: Peter and John discuss the weather.Peter: John, how is the weather today?John: It's raining.Segment 2: Peter insults JohnPeter: John, you are a bad person.Segment 3: BlankANSWER: Peter and John discussed the weather and Peter insulted John.{{/user}}{{#assistant~}}CONVERSATION SEGMENTS:Segment 1: {{gen'segment1'}}Segment 2: {{gen'segment2'}}Segment 3: {{gen'segment3'}}ANSWER: {{gen 'answer'}}{{~/assistant~}}''')</code>
로그인 후 복사

如果用 Vicuna 运行上述 prompt,他们第一次就会得到正确的格式,而且格式总能保持正确:

알파카 시리즈 대형 모델과 ChatGPT의 차이점은 무엇인가요? 상세한 평가를 마친 후 나는 침묵했다.

当然,也可以在 MPT 上运行相同的 prompt:

알파카 시리즈 대형 모델과 ChatGPT의 차이점은 무엇인가요? 상세한 평가를 마친 후 나는 침묵했다.

虽然 MPT 遵循了格式要求,但它没有针对给定的会议资料回答问题,而是从格式示例中提取了片段。这显然是不行的。

接下来比较 ChatGPT 和 Vicuna。

测试者给出的问题是「谁想卖掉公司?」两个模型看起来答得都不错。

以下是 ChatGPT 的回答:

알파카 시리즈 대형 모델과 ChatGPT의 차이점은 무엇인가요? 상세한 평가를 마친 후 나는 침묵했다.

以下是 Vicuna 的回答:

알파카 시리즈 대형 모델과 ChatGPT의 차이점은 무엇인가요? 상세한 평가를 마친 후 나는 침묵했다.

接下来,测试者换了一段材料。新材料是马斯克和记者的一段对话:

알파카 시리즈 대형 모델과 ChatGPT의 차이점은 무엇인가요? 상세한 평가를 마친 후 나는 침묵했다.

测试者提出的问题是:「Elon Musk 有没有侮辱(insult)记者?」

ChatGPT 给出的答案是:

알파카 시리즈 대형 모델과 ChatGPT의 차이점은 무엇인가요? 상세한 평가를 마친 후 나는 침묵했다.

Vicuna 给出的答案是:

알파카 시리즈 대형 모델과 ChatGPT의 차이점은 무엇인가요? 상세한 평가를 마친 후 나는 침묵했다.

Vicuna 给出了正确的格式,甚至提取的片段也是对的。但令人意外的是,它最后还是给出了错误的答案,即「Elon musk does not accuse him of lying or insult him in any way」。

测试者还进行了其他问答测试,得出的结论是:Vicuna 在大多数问题上与 ChatGPT 相当,但比 ChatGPT 更经常答错。

用 bash 完成任务

测试者尝试让几个 LLM 迭代使用 bash shell 来解决一些问题。每当模型发出命令,测试者会运行这些命令并将输出插入到 prompt 中,迭代进行这个过程,直到任务完成。

ChatGPT 的 prompt 如下所示:

<code>terminal = guidance ('''{{#system~}}{{llm.default_system_prompt}}{{~/system}}{{#user~}}Please complete the following task:Task: list the files in the current directoryYou can give me one bash command to run at a time, using the syntax:COMMAND: commandI will run the commands on my terminal, and paste the output back to you. Once you are done with the task, please type DONE.{{/user}}{{#assistant~}}COMMAND: ls{{~/assistant~}}{{#user~}}Output: guidance project{{/user}}{{#assistant~}}The files or folders in the current directory are:- guidance- projectDONE{{~/assistant~}}{{#user~}}Please complete the following task:Task: {{task}}You can give me one bash command to run at a time, using the syntax:COMMAND: commandI will run the commands on my terminal, and paste the output back to you. Once you are done with the task, please type DONE.{{/user}}{{#geneach 'commands' stop=False}}{{#assistant~}}{{gen 'this.command'}}{{~/assistant~}}{{~#user~}}Output: {{shell this.command)}}{{~/user~}}{{/geneach}}''')</code>
로그인 후 복사

测试者在~/work/project 中创建了一个虚拟存储库,其中包含文件 license.txt,但不是标准的 LICENSE 文件名。

然后测试者尝试在不与 ChatGPT 沟通的情况下,看它是否能完成任务 ——「找出位于~/work/project 中的开源项目正在使用的 license」(Find out what license the open source project located in ~/work/project is using)。

알파카 시리즈 대형 모델과 ChatGPT의 차이점은 무엇인가요? 상세한 평가를 마친 후 나는 침묵했다.

ChatGPT 遵循一个非常自然的顺序,并解决了这个问题。

对于开源模型,测试者编写了一个更简单的(引导式)prompt,其中包含一系列命令输出:

<code>guided_terminal = guidance ('''{{#system~}}{{llm.default_system_prompt}}{{~/system}}{{#user~}}Please complete the following task:Task: list the files in the current directoryYou can run bash commands using the syntax:COMMAND: commandOUTPUT: outputOnce you are done with the task, use the COMMAND: DONE.{{/user}}{{#assistant~}}COMMAND: lsOUTPUT: guidance projectCOMMAND: DONE {{~/assistant~}}{{#user~}}Please complete the following task:Task: {{task}}You can run bash commands using the syntax:COMMAND: commandOUTPUT: outputOnce you are done with the task, use the COMMAND: DONE.{{~/user}}{{#assistant~}}{{#geneach 'commands' stop=False ~}}COMMAND: {{gen 'this.command' stop='\\n'}}OUTPUT: {{shell this.command)}}{{~/geneach}}{{~/assistant~}}''')</code>
로그인 후 복사

我们来看一下 Vicuna 和 MPT 执行该任务的情况。

Vicuna:

알파카 시리즈 대형 모델과 ChatGPT의 차이점은 무엇인가요? 상세한 평가를 마친 후 나는 침묵했다.

MPT:

알파카 시리즈 대형 모델과 ChatGPT의 차이점은 무엇인가요? 상세한 평가를 마친 후 나는 침묵했다.

在一个有趣的转折中,Vicuna 无法解决这个任务,但 MPT 却成功了。除了保密性之外,开源模型在这里有一个显著的优势:整个 prompt 被作为一个输入传递给一个 LLM 模型(测试者甚至通过不让它生成像 COMMAND 这样的输出结构 token 来加速它)。

相比之下,他们必须为每个命令重新调用 ChatGPT,这更慢,开销也更大。

接下来,他们又尝试了一个不同的命令:「在~/work/guidance 目录下找到当前未被 git 跟踪的所有 jupyter notebook 文件」

以下是 ChatGPT 的回答:

알파카 시리즈 대형 모델과 ChatGPT의 차이점은 무엇인가요? 상세한 평가를 마친 후 나는 침묵했다.

测试者再次遇到一个问题:ChatGPT 没有遵循他们指定的输出结构(这样就使得它无法在无人干预的情况下在程序内使用)。该程序只是执行命令,因此在上面最后一条 ChatGPT 信息之后就停止了。

测试者怀疑空输出会导致 ChatGPT 关闭,因此他们通过在没有输出时更改信息来解决这个特殊问题。然而,他们无法解决「无法强迫 ChatGPT 遵循指定的输出结构」这一普遍问题。

在做了这个小小的修改后,ChatGPT 就能解决这个问题:让我们看看 Vicuna 是怎么做的:

알파카 시리즈 대형 모델과 ChatGPT의 차이점은 무엇인가요? 상세한 평가를 마친 후 나는 침묵했다.

Vicuna 遵循了输出结构,但不幸的是,它运行了错误的命令来完成任务。MPT 反复调用 git status,所以它也失败了。

测试者还对其他各种指令运行了这些程序,发现 ChatGPT 几乎总是能产生正确的指令序列,但有时并不遵循指定的格式(因此需要人工干预)。此处开源模型的效果不是很好(或许可以通过更多的 prompt 工程来改进它们,但它们在大多数较难的指令上都失败了)。

归纳总结

测试者还尝试了一些其他任务,包括文本摘要、问题回答、创意生成和 toy 字符串操作,评估了几种模型的准确性。以下是主要的评估结果:

  • 작업 품질: ChatGPT(3.5)는 모든 작업에서 Vicuna보다 나은 반면 MPT는 거의 모든 작업에서 성능이 좋지 않아 테스트 팀에서도 사용에 문제가 있다고 의심하게 됩니다. Vicuna의 성능이 일반적으로 ChatGPT에 가깝다는 점은 주목할 가치가 있습니다.
  • 사용 용이성: ChatGPT는 지정된 출력 형식을 따르는 데 어려움이 있으므로 프로그램에서 이를 사용하려면 출력에 대한 정규식 파서를 작성해야 합니다. 대조적으로, 출력 구조를 지정할 수 있다는 것은 오픈 소스 모델의 중요한 이점이므로 Vicuna는 때로는 작업 성능이 떨어지더라도 ChatGPT보다 사용하기 쉽습니다.
  • 효율성: 로컬 배포 모델은 단일 LLM 실행으로 작업을 더 빠르고 저렴하게 해결할 수 있음을 의미합니다(프로그램이 실행되는 동안 지침은 LLM 상태를 유지함). 이는 하위 단계에 항상 OpenAI API에 대한 새로운 호출이 필요한 다른 API 또는 기능(예: 검색, 터미널 등) 호출이 포함되는 경우 특히 그렇습니다. 또한 지침은 모델이 출력 구조 태그를 생성하지 못하게 하여 생성 속도를 높입니다. 이는 때로는 큰 차이를 만들 수 있습니다.

전반적으로 이 테스트의 결론은 MPT가 실제 사용에 적합하지 않은 반면 Vicuna는 많은 작업에서 ChatGPT(3.5)의 실행 가능한 대안이라는 것입니다. 이러한 결과는 현재 공식적인 평가가 아닌 초기 탐색인 이 테스트에서 시도한 작업 및 입력(또는 프롬프트 유형)에만 적용됩니다.

더 많은 결과를 보려면 노트북을 참조하세요: https://github.com/microsoft/guidance/blob/main/notebooks/chatgpt_vs_open_source_on_harder_tasks.ipynb

위 내용은 알파카 시리즈 대형 모델과 ChatGPT의 차이점은 무엇인가요? 상세한 평가를 마친 후 나는 침묵했다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 채팅 명령 및 사용 방법
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

Debian Readdir의 파일 정렬을 구현하는 방법 Debian Readdir의 파일 정렬을 구현하는 방법 Apr 13, 2025 am 09:06 AM

Debian Systems에서 readDIR 함수는 디렉토리 내용을 읽는 데 사용되지만 반환하는 순서는 사전 정의되지 않습니다. 디렉토리에 파일을 정렬하려면 먼저 모든 파일을 읽은 다음 QSORT 기능을 사용하여 정렬해야합니다. 다음 코드는 데비안 시스템에서 readdir 및 qsort를 사용하여 디렉토리 파일을 정렬하는 방법을 보여줍니다.#포함#포함#포함#포함#포함 // QsortIntCompare (constvoid*a, constVoid*b) {returnStrcmp (*(*)

데비안 아파치 로그 레벨을 설정하는 방법 데비안 아파치 로그 레벨을 설정하는 방법 Apr 13, 2025 am 08:33 AM

이 기사에서는 데비안 시스템에서 Apacheweb 서버의 로깅 레벨을 조정하는 방법에 대해 설명합니다. 구성 파일을 수정하면 Apache가 기록한 로그 정보 수준을 제어 할 수 있습니다. 메소드 1 : 구성 파일을 찾으려면 기본 구성 파일을 수정합니다. 구성 파일 : APACHE2.X의 구성 파일은 일반적으로/etc/apache2/디렉토리에 있습니다. 파일 이름은 설치 방법에 따라 apache2.conf 또는 httpd.conf 일 수 있습니다. 구성 파일 편집 : 텍스트 편집기 (예 : Nano)를 사용하여 루트 권한이있는 구성 파일 열기 : sudonano/etc/apache2/apache2.conf

Debian Readdir의 성능을 최적화하는 방법 Debian Readdir의 성능을 최적화하는 방법 Apr 13, 2025 am 08:48 AM

Debian Systems에서 ReadDir 시스템 호출은 디렉토리 내용을 읽는 데 사용됩니다. 성능이 좋지 않은 경우 다음과 같은 최적화 전략을 시도해보십시오. 디렉토리 파일 수를 단순화하십시오. 대규모 디렉토리를 가능한 한 여러 소규모 디렉토리로 나누어 읽기마다 처리 된 항목 수를 줄입니다. 디렉토리 컨텐츠 캐싱 활성화 : 캐시 메커니즘을 구축하고 정기적으로 캐시를 업데이트하거나 디렉토리 컨텐츠가 변경 될 때 캐시를 업데이트하며 readDir로 자주 호출을 줄입니다. 메모리 캐시 (예 : Memcached 또는 Redis) 또는 로컬 캐시 (예 : 파일 또는 데이터베이스)를 고려할 수 있습니다. 효율적인 데이터 구조 채택 : 디렉토리 트래버스를 직접 구현하는 경우 디렉토리 정보를 저장하고 액세스하기 위해보다 효율적인 데이터 구조 (예 : 선형 검색 대신 해시 테이블)를 선택하십시오.

데비안 메일 서버 방화벽 구성 팁 데비안 메일 서버 방화벽 구성 팁 Apr 13, 2025 am 11:42 AM

데비안 메일 서버의 방화벽 구성은 서버 보안을 보장하는 데 중요한 단계입니다. 다음은 iptables 및 방화구 사용을 포함하여 일반적으로 사용되는 여러 방화벽 구성 방법입니다. iptables를 사용하여 iptables를 설치하도록 방화벽을 구성하십시오 (아직 설치되지 않은 경우) : sudoapt-getupdatesudoapt-getinstalliptablesview 현재 iptables 규칙 : sudoiptables-l configuration

데비안 메일 서버 SSL 인증서 설치 방법 데비안 메일 서버 SSL 인증서 설치 방법 Apr 13, 2025 am 11:39 AM

Debian Mail 서버에 SSL 인증서를 설치하는 단계는 다음과 같습니다. 1. OpenSSL 툴킷을 먼저 설치하십시오. 먼저 OpenSSL 툴킷이 이미 시스템에 설치되어 있는지 확인하십시오. 설치되지 않은 경우 다음 명령을 사용하여 설치할 수 있습니다. 개인 키 및 인증서 요청 생성 다음에 다음, OpenSSL을 사용하여 2048 비트 RSA 개인 키 및 인증서 요청 (CSR)을 생성합니다.

Debian Readdir가 다른 도구와 통합하는 방법 Debian Readdir가 다른 도구와 통합하는 방법 Apr 13, 2025 am 09:42 AM

데비안 시스템의 readdir 함수는 디렉토리 컨텐츠를 읽는 데 사용되는 시스템 호출이며 종종 C 프로그래밍에 사용됩니다. 이 기사에서는 ReadDir를 다른 도구와 통합하여 기능을 향상시키는 방법을 설명합니다. 방법 1 : C 언어 프로그램을 파이프 라인과 결합하고 먼저 C 프로그램을 작성하여 readDir 함수를 호출하고 결과를 출력하십시오.#포함#포함#포함#포함#includinTmain (intargc, char*argv []) {dir*dir; structdirent*entry; if (argc! = 2) {

데비안을 오류하는 방법은 중간 중간의 공격을 방해합니다 데비안을 오류하는 방법은 중간 중간의 공격을 방해합니다 Apr 13, 2025 am 10:30 AM

Debian Systems에서 OpenSSL은 암호화, 암호 해독 및 인증서 관리를위한 중요한 라이브러리입니다. MITM (Man-in-the-Middle Attack)을 방지하려면 다음 측정을 수행 할 수 있습니다. HTTPS 사용 : 모든 네트워크 요청이 HTTP 대신 HTTPS 프로토콜을 사용하도록하십시오. HTTPS는 TLS (Transport Layer Security Protocol)를 사용하여 통신 데이터를 암호화하여 전송 중에 데이터가 도난 당하거나 변조되지 않도록합니다. 서버 인증서 확인 : 클라이언트의 서버 인증서를 수동으로 확인하여 신뢰할 수 있는지 확인하십시오. 서버는 대의원 메소드를 통해 수동으로 확인할 수 있습니다.

데비안 하프 로그 관리를 수행하는 방법 데비안 하프 로그 관리를 수행하는 방법 Apr 13, 2025 am 10:45 AM

Debian에서 Hadoop 로그 관리하면 다음 단계 및 모범 사례를 따라갈 수 있습니다. 로그 집계 로그 집계 : Yarn-site.xml 파일에서 Ture에서 True로 설정 할 수 있도록 설정 : 로그 집계를 활성화하십시오. 로그 보유 정책 구성 : 172800 초 (2 일)와 같이 로그의 유지 시간을 정의하기 위해 yarn.log-aggregation.retain-seconds를 설정하십시오. 로그 저장 경로를 지정하십시오 : Yarn.n을 통해

See all articles