목차
요약하자면
기술 주변기기 일체 포함 ChatGPT는 어떻게 단어별로 출력하나요?

ChatGPT는 어떻게 단어별로 출력하나요?

Jun 02, 2023 pm 05:40 PM
대규모 언어 모델

ChatGPT는 어떻게 단어별로 출력하나요?

ChatGPT가 질문에 답변하면 한 단어씩 팝업되어 사람들에게 진지하게 생각하는 느낌을 줍니다.

이 대화의 기본 내용은 다음과 같습니다.

Q: 대규모 언어 생성 모델은 어떻게 작동하나요?
A: 대규모 언어 생성 모델(예: GPT-3)은 딥 러닝 기술을 기반으로 하는 신경망입니다. 모델. 이러한 모델은 자연어 처리 분야에서 큰 성공을 거둔 "Transformer"라는 아키텍처를 사용하는 경우가 많습니다.

대규모 언어 생성 모델의 작동 방식에 대한 개요는 다음과 같습니다.

… 단락 생략…

텍스트 생성: 모델이 훈련되면 이를 사용할 수 있습니다. 텍스트를 생성합니다. 초기 텍스트 또는 프롬프트가 주어지면 모델은 학습한 확률 분포를 기반으로 다음 단어를 생성한 다음 생성된 단어를 입력으로 사용하고 다음 단어를 계속 생성하는 방식으로 원하는 텍스트 길이에 도달하거나 생성될 때까지 계속됩니다. 상징.

... 단락 생략...

LLM이라고 하는 대형 언어 모델.

모델 관점에서 LLM은 텍스트 길이 제한에 도달하거나 종결자가 생성될 때까지 추론을 수행할 때마다 토큰을 생성합니다.

서버 입장에서는 생성된 토큰을 HTTPS 프로토콜을 통해 하나씩 브라우저에 반환해야 합니다.

클라이언트-서버 모드에서 일반적인 상호작용 방식은 클라이언트가 요청을 보내고 응답을 받는 것입니다. 분명히 이것은 ChatGPT가 질문에 응답하는 시나리오를 충족할 수 없습니다.

두 번째로 HTTP를 사용하여 Handshake를 구현하고 WebSocket으로 업그레이드되는 websocket을 생각할 수 있습니다. 그러나 WebSocket은 클라이언트와 서버 모두 지속적으로 소켓을 점유해야 하며, 서버 측의 비용이 상대적으로 높습니다.

ChatGPT는 타협: 서버 전송 이벤트(줄여서 SSE)를 사용합니다. OpenAI의 API 문서에서 이를 확인할 수 있습니다.

ChatGPT는 어떻게 단어별로 출력하나요?

SSE 모드에서 클라이언트는 서버에 한 번만 메시지를 보내면 됩니다. 요청된 경우 서버는 끝이 필요할 때까지 계속해서 출력할 수 있습니다. 전체 상호 작용 프로세스는 아래 그림에 나와 있습니다.

ChatGPT는 어떻게 단어별로 출력하나요?

SSE는 여전히 HTTP를 애플리케이션 계층 전송 프로토콜로 사용하여 HTTP의 긴 연결 기능을 최대한 활용하여 서버 측 푸시 기능을 달성합니다.

코드 수준에서 SSE 모드와 단일 HTTP 요청의 차이점은 다음과 같습니다.

  1. 연결 시간이 초과되지 않도록 클라이언트는 연결 유지를 활성화해야 합니다.
  2. HTTP 응답 헤더에는 Content-Type=text/event-stream, Cache-Cnotallow=no-cache 등이 포함됩니다.
  3. HTTP 응답의 본문은 일반적으로 "data: ..."와 같은 구조입니다.
  4. 연결 시간 초과를 방지하기 위해 HTTP 응답에 빈 데이터가 있을 수 있습니다.

ChatGPT API를 예로 들어 요청을 보낼 때 stream 매개변수를 true로 설정하면 SSE 기능이 활성화되지만 데이터를 읽는 SDK에서는 약간의 주의가 필요합니다.

일반 모드에서 http.Response를 받은 후 ioutil.ReadAll을 사용하여 데이터를 읽어옵니다.

func main() {payload := strings.NewReader(`{"model": "gpt-3.5-turbo","messages": [{"role": "user", "content": "大语言生成式模型是如何工作的"}],"max_tokens": 1024,"temperature": 1,"top_p": 1,"n": 1,"stream": false}`)client := &http.Client{}req, _ := http.NewRequest("POST", "https://api.openai.com/v1/chat/completions", payload)req.Header.Add("Content-Type", "application/json")req.Header.Add("Authorization", "Bearer <openai-token>")resp, err := client.Do(req)if err != nil {fmt.Println(err)return}defer resp.Body.Close()body, _ := ioutil.ReadAll(resp.Body)fmt.Println(string(body))}</openai-token>
로그인 후 복사

실행하는 데 약 20초 이상이 걸리며 완전한 결과를 얻습니다.

{"id": "chatcmpl-7KklTf9mag5tyBXLEqM3PWQn4jlfD","object": "chat.completion","created": 1685180679,"model": "gpt-3.5-turbo-0301","usage": {"prompt_tokens": 21,"completion_tokens": 358,"total_tokens": 379},"choices": [{"message": {"role": "assistant","content": "大语言生成式模型通常采用神经网络来实现,具体工作流程如下:\n\n1. 数据预处理:将语料库中的文本数据进行预处理,包括分词、删除停用词(如“的”、“了”等常用词汇)、去重等操作,以减少冗余信息。\n\n2. 模型训练:采用递归神经网络(RNN)、长短期记忆网络(LSTM)或变种的Transformers等模型进行训练,这些模型都具有一定的记忆能力,可以学习到语言的一定规律,并预测下一个可能出现的词语。\n\n3. 模型应用:当模型完成训练后,可以将其应用于实际的生成任务中。模型接收一个输入文本串,并预测下一个可能出现的词语,直到达到一定长度或遇到结束符号为止。\n\n4. 根据生成结果对模型进行调优:生成的结果需要进行评估,如计算生成文本与语料库文本的相似度、流畅度等指标,以此来调优模型,提高其生成质量。\n\n总体而言,大语言生成式模型通过对语言的规律学习,从而生成高质量的文本。"},"finish_reason": "stop","index": 0}]}
로그인 후 복사

수정 없이 스트림을 true로 설정하면 총 요청 소비는 28초 이상이 되며 이는 많은 스트림 메시지에 반영됩니다.

ChatGPT는 어떻게 단어별로 출력하나요?

위 사진은 Postman이 ioutil.ReadAll 모드를 이용해 chatgpt api를 호출하는 사진입니다. 스트림 읽기를 구현하기 위해 http.Response.Body를 세그먼트로 읽을 수 있습니다. 이 방법이 가능한 이유는 다음과 같습니다.

  1. http.Response.Body는 io.ReaderCloser 유형입니다. 기본 레이어는 HTTP 연결을 사용하고 스트림 읽기를 지원합니다.
  2. SSE에서 반환된 데이터는 개행 문자 n

으로 분할되므로 수정 방법은 이를 bufio.NewReader(resp.Body)로 감싸서 for-loop에서 읽는 것입니다. , 코드는 다음과 같습니다.

// stream event 结构体定义type ChatCompletionRspChoiceItem struct {Deltamap[string]string `json:"delta,omitempty"` // 只有 content 字段Indexint `json:"index,omitempty"`Logprobs *int`json:"logprobs,omitempty"`FinishReason string`json:"finish_reason,omitempty"`}type ChatCompletionRsp struct {IDstring`json:"id"`Objectstring`json:"object"`Created int `json:"created"` // unix secondModel string`json:"model"`Choices []ChatCompletionRspChoiceItem `json:"choices"`}func main() {payload := strings.NewReader(`{"model": "gpt-3.5-turbo","messages": [{"role": "user", "content": "大语言生成式模型是如何工作的"}],"max_tokens": 1024,"temperature": 1,"top_p": 1,"n": 1,"stream": true}`)client := &http.Client{}req, _ := http.NewRequest("POST", "https://api.openai.com/v1/chat/completions", payload)req.Header.Add("Content-Type", "application/json")req.Header.Add("Authorization", "Bearer "+apiKey)req.Header.Set("Accept", "text/event-stream")req.Header.Set("Cache-Control", "no-cache")req.Header.Set("Connection", "keep-alive")resp, err := client.Do(req)if err != nil {fmt.Println(err)return}defer resp.Body.Close()reader := bufio.NewReader(resp.Body)for {line, err := reader.ReadBytes('\n')if err != nil {if err == io.EOF {// 忽略 EOF 错误break} else {if netErr, ok := err.(net.Error); ok && netErr.Timeout() {fmt.Printf("[PostStream] fails to read response body, timeout\n")} else {fmt.Printf("[PostStream] fails to read response body, err=%s\n", err)}}break}line = bytes.TrimSuffix(line, []byte{'\n'})line = bytes.TrimPrefix(line, []byte("data: "))if bytes.Equal(line, []byte("[DONE]")) {break} else if len(line) > 0 {var chatCompletionRsp ChatCompletionRspif err := json.Unmarshal(line, &chatCompletionRsp); err == nil {fmt.Printf(chatCompletionRsp.Choices[0].Delta["content"])} else {fmt.Printf("\ninvalid line=%s\n", line)}}}fmt.Println("the end")}
로그인 후 복사

클라이언트 측을 읽은 후 서버 측을 살펴보겠습니다. 이제 우리는 chatgpt 서버를 모의하고 텍스트를 그대로 반환하려고 합니다. 여기에는 두 가지 사항이 관련됩니다.

  1. 응답 헤더는 연결을 연결 유지로 설정하고 콘텐츠 유형을 텍스트/이벤트 스트림으로 설정해야 합니다.
  2. respnose를 작성한 후 클라이언트에 플러시해야 합니다.

코드는 다음과 같습니다.

func streamHandler(w http.ResponseWriter, req *http.Request) {w.Header().Set("Connection", "keep-alive")w.Header().Set("Content-Type", "text/event-stream")w.Header().Set("Cache-Control", "no-cache")var chatCompletionRsp ChatCompletionRsprunes := []rune(`大语言生成式模型通常使用深度学习技术,例如循环神经网络(RNN)或变压器(Transformer)来建模语言的概率分布。这些模型接收前面的词汇序列,并利用其内部神经网络结构预测下一个词汇的概率分布。然后,模型将概率最高的词汇作为生成的下一个词汇,并递归地生成一个词汇序列,直到到达最大长度或遇到一个终止符号。在训练过程中,模型通过最大化生成的文本样本的概率分布来学习有效的参数。为了避免模型产生过于平凡的、重复的、无意义的语言,我们通常会引入一些技巧,如dropout、序列扰动等。大语言生成模型的重要应用包括文本生成、问答系统、机器翻译、对话建模、摘要生成、文本分类等。`)for _, r := range runes {chatCompletionRsp.Choices = []ChatCompletionRspChoiceItem{{Delta: map[string]string{"content": string(r)}},}bs, _ := json.Marshal(chatCompletionRsp)line := fmt.Sprintf("data: %s\n", bs)fmt.Fprintf(w, line)if f, ok := w.(http.Flusher); ok {f.Flush()}time.Sleep(time.Millisecond * 100)}fmt.Fprintf(w, "data: [DONE]\n")}func main() {http.HandleFunc("/stream", streamHandler)http.ListenAndServe(":8088", nil)}
로그인 후 복사

실제 시나리오에서 반환할 데이터는 다른 서비스 또는 함수 호출에서 가져온 것입니다. 이 서비스 또는 함수 호출의 반환 시간이 불안정할 경우 클라이언트가 발생할 수 있습니다. 오랫동안 데이터를 수신할 수 없으므로 일반적인 처리 방법은 다음과 같습니다.

  1. 제3자에 대한 호출을 고루틴에 넣습니다.
  2. 시간에 따른 타이머를 만듭니다. 체크하고 클라이언트에게 빈 메시지를 보냅니다.
  3. 응답 시간이 너무 길어지는 것을 방지하려면 시간 초과 채널을 만드세요.

다른 채널의 데이터를 읽을 수 있으려면 다음 데모 코드와 같이 select가 좋은 키워드입니다.

// 声明一个 event channel// 声明一个 time.Tick channel// 声明一个 timeout channelselect {case ev := <h2 id="요약하자면">요약하자면</h2><p style="text-align: justify;"><span style="color: #333333;">전체 결과에 대한 응답을 생성하는 프로세스 대규모 언어 모델은 상대적으로 길지만 토큰으로 생성된 응답은 상대적으로 빠릅니다. ChatGPT는 이 기능을 SSE 기술과 완전히 결합하여 단어 단위로 응답을 팝업하여 사용자 경험의 질적 향상을 달성합니다. </span></p><p style="text-align: justify;"><span style="color: #333333;">생성 모델을 살펴보면 LLAMA/Little Alpaca(상용 아님) 또는 Stable Diffusion/Midjourney 등이 있습니다. 온라인 서비스를 제공할 때 SSE 기술을 사용하면 사용자 경험을 개선하고 서버 리소스를 절약할 수 있습니다. </span></p>
로그인 후 복사

위 내용은 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. 아무도들을 수없는 경우 오디오를 수정하는 방법
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

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

SublimeText3 중국어 버전

SublimeText3 중국어 버전

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

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

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

Groq Llama 3 70B를 로컬에서 사용하기 위한 단계별 가이드 Groq Llama 3 70B를 로컬에서 사용하기 위한 단계별 가이드 Jun 10, 2024 am 09:16 AM

번역기 | Bugatti 리뷰 | Chonglou 이 문서에서는 GroqLPU 추론 엔진을 사용하여 JanAI 및 VSCode에서 초고속 응답을 생성하는 방법을 설명합니다. 모두가 AI의 인프라 측면에 초점을 맞춘 Groq와 같은 더 나은 대규모 언어 모델(LLM)을 구축하기 위해 노력하고 있습니다. 이러한 대형 모델의 빠른 응답은 이러한 대형 모델이 더 빠르게 응답하도록 보장하는 핵심입니다. 이 튜토리얼에서는 GroqLPU 구문 분석 엔진과 API 및 JanAI를 사용하여 노트북에서 로컬로 액세스하는 방법을 소개합니다. 이 기사에서는 코드 생성, 코드 리팩터링, 문서 입력 및 테스트 단위 생성을 돕기 위해 이를 VSCode에 통합합니다. 이 기사에서는 우리만의 인공 지능 프로그래밍 도우미를 무료로 만들 것입니다. GroqLPU 추론 엔진 Groq 소개

7가지 멋진 GenAI 및 LLM 기술 인터뷰 질문 7가지 멋진 GenAI 및 LLM 기술 인터뷰 질문 Jun 07, 2024 am 10:06 AM

AIGC에 대해 자세히 알아보려면 다음을 방문하세요. 51CTOAI.x 커뮤니티 https://www.51cto.com/aigc/Translator|Jingyan Reviewer|Chonglou는 인터넷 어디에서나 볼 수 있는 전통적인 문제 은행과 다릅니다. 고정관념에서 벗어나 생각해야 합니다. LLM(대형 언어 모델)은 데이터 과학, 생성 인공 지능(GenAI) 및 인공 지능 분야에서 점점 더 중요해지고 있습니다. 이러한 복잡한 알고리즘은 인간의 기술을 향상시키고 많은 산업 분야에서 효율성과 혁신을 촉진하여 기업이 경쟁력을 유지하는 데 핵심이 됩니다. LLM은 자연어 처리, 텍스트 생성, 음성 인식 및 추천 시스템과 같은 분야에서 광범위하게 사용될 수 있습니다. LLM은 대량의 데이터로부터 학습하여 텍스트를 생성할 수 있습니다.

대형 모델은 시계열 예측에도 매우 강력합니다! 중국 팀은 LLM의 새로운 기능을 활성화하고 기존 모델을 뛰어넘는 SOTA를 달성합니다. 대형 모델은 시계열 예측에도 매우 강력합니다! 중국 팀은 LLM의 새로운 기능을 활성화하고 기존 모델을 뛰어넘는 SOTA를 달성합니다. Apr 11, 2024 am 09:43 AM

대규모 언어 모델의 잠재력이 자극됩니다. 모든 기존 시계열 모델을 능가하는 대규모 언어 모델을 훈련하지 않고도 고정밀 시계열 예측을 달성할 수 있습니다. Monash University, Ant 및 IBM Research는 여러 양식에 걸쳐 시퀀스 데이터를 처리하는 대규모 언어 모델의 기능을 성공적으로 촉진하는 일반 프레임워크를 공동으로 개발했습니다. 프레임워크는 중요한 기술 혁신이 되었습니다. 시계열 예측은 도시, 에너지, 교통, 원격 감지와 같은 일반적인 복잡한 시스템의 의사 결정에 유용합니다. 이후 대형 모델은 시계열/시공간 데이터 마이닝에 혁명을 일으킬 것으로 예상됩니다. 일반 대형 언어 모델 재프로그래밍 프레임워크 연구팀은 별도의 훈련 없이 일반 시계열 예측을 위해 대형 언어 모델을 쉽게 사용할 수 있는 일반 프레임워크를 제안했습니다. 주로 두 가지 핵심 기술이 제안되었습니다: 타이밍 입력 재프로그래밍; 시간-

OpenHarmony에서 대규모 언어 모델을 로컬로 배포 OpenHarmony에서 대규모 언어 모델을 로컬로 배포 Jun 07, 2024 am 10:02 AM

이 기사는 제2회 OpenHarmony 기술 컨퍼런스에서 시연된 "OpenHarmony에서 대규모 언어 모델의 로컬 배포" 결과를 오픈 소스로 제공합니다. 오픈 소스 주소: https://gitee.com/openharmony-sig/tpc_c_cplusplus/blob/master/thirdparty /InferLLM/docs/hap_integrate.md. 구현 아이디어와 단계는 경량 LLM 모델 추론 프레임워크 InferLLM을 OpenHarmony 표준 시스템에 이식하고 OpenHarmony에서 실행할 수 있는 바이너리 제품을 컴파일하는 것입니다. InferLLM은 간단하고 효율적인 L입니다.

홍멍 스마트 트래블 S9과 풀시나리오 신제품 출시 컨퍼런스, 다수의 블록버스터 신제품이 함께 출시됐다 홍멍 스마트 트래블 S9과 풀시나리오 신제품 출시 컨퍼런스, 다수의 블록버스터 신제품이 함께 출시됐다 Aug 08, 2024 am 07:02 AM

오늘 오후 Hongmeng Zhixing은 공식적으로 새로운 브랜드와 신차를 환영했습니다. 8월 6일, Huawei는 Hongmeng Smart Xingxing S9 및 Huawei 전체 시나리오 신제품 출시 컨퍼런스를 개최하여 파노라마식 스마트 플래그십 세단 Xiangjie S9, 새로운 M7Pro 및 Huawei novaFlip, MatePad Pro 12.2인치, 새로운 MatePad Air, Huawei Bisheng을 선보였습니다. 레이저 프린터 X1 시리즈, FreeBuds6i, WATCHFIT3 및 스마트 스크린 S5Pro를 포함한 다양한 새로운 올-시나리오 스마트 제품, 스마트 여행, 스마트 오피스, 스마트 웨어에 이르기까지 화웨이는 풀 시나리오 스마트 생태계를 지속적으로 구축하여 소비자에게 스마트한 경험을 제공합니다. 만물인터넷. Hongmeng Zhixing: 스마트 자동차 산업의 업그레이드를 촉진하기 위한 심층적인 권한 부여 화웨이는 중국 자동차 산업 파트너와 손을 잡고

대규모 언어 모델의 공간 추론 능력 자극: 사고 시각화 팁 대규모 언어 모델의 공간 추론 능력 자극: 사고 시각화 팁 Apr 11, 2024 pm 03:10 PM

LLM(대형 언어 모델)은 언어 이해 및 다양한 추론 작업에서 인상적인 성능을 보여줍니다. 그러나 인간 인지의 핵심 측면인 공간 추론에서의 역할은 아직까지 제대로 연구되지 않은 상태입니다. 인간은 마음의 눈이라는 과정을 통해 보이지 않는 사물과 행동에 대한 정신적 이미지를 만들어 보이지 않는 세계를 상상할 수 있는 능력을 가지고 있습니다. 이러한 인지 능력에 영감을 받아 연구자들은 "생각의 시각화"(VoT)를 제안했습니다. VoT는 추론의 징후를 시각화하여 후속 추론 단계를 안내함으로써 LLM의 공간 추론을 안내하는 것을 목표로 합니다. 연구원들은 자연어 탐색, 비전을 포함한 다중 홉 공간 추론 작업에 VoT를 적용합니다.

374개의 관련 연구를 요약한 Tao Dacheng 팀은 홍콩 대학교 및 UMD와 함께 LLM 지식 증류에 대한 최신 리뷰를 발표했습니다. 374개의 관련 연구를 요약한 Tao Dacheng 팀은 홍콩 대학교 및 UMD와 함께 LLM 지식 증류에 대한 최신 리뷰를 발표했습니다. Mar 18, 2024 pm 07:49 PM

LLM(대형 언어 모델)은 지난 2년 동안 급속도로 발전했으며 GPT-4, Gemini, Claude 등과 같은 일부 경이로운 모델과 제품이 등장했지만 대부분은 비공개 소스입니다. 현재 연구 커뮤니티에서 액세스할 수 있는 대부분의 오픈 소스 LLM과 폐쇄 소스 LLM 사이에는 큰 격차가 있습니다. 따라서 오픈 소스 LLM 및 기타 소규모 모델과 폐쇄 소스 대규모 모델 간의 격차를 줄이기 위해 기능을 개선하는 것이 연구 핫스팟이 되었습니다. 이 분야에서. LLM, 특히 비공개 소스 LLM의 강력한 기능을 통해 과학 연구자와 산업 실무자는 자신의 모델을 교육할 때 이러한 대규모 모델의 결과와 지식을 활용할 수 있습니다. 이 과정은 본질적으로 지식 증류(Knowledge, Dist)입니다.

OWASP, 대규모 언어 모델 네트워크 보안 및 거버넌스 체크리스트 출시 OWASP, 대규모 언어 모델 네트워크 보안 및 거버넌스 체크리스트 출시 Apr 17, 2024 pm 07:31 PM

현재 인공지능 기술이 직면하고 있는 가장 큰 리스크는 대형언어모델(LLM)과 생성인공지능 기술의 개발 및 적용 속도가 보안과 거버넌스의 속도를 훨씬 뛰어넘었다는 점이다. OpenAI, Anthropic, Google, Microsoft와 같은 회사의 생성 AI 및 대규모 언어 모델 제품의 사용이 기하급수적으로 증가하고 있습니다. 동시에 HuggingFace와 같은 오픈 소스 인공 지능 커뮤니티는 수많은 오픈 소스 모델, 데이터 세트 및 AI 애플리케이션을 제공하며 빠르게 성장하고 있습니다. 인공지능 발전을 촉진하기 위해 OWASP, OpenSSF, CISA 등 업계 기관에서는 OWASPAIExchange,

See all articles