> 기술 주변기기 > 일체 포함 > 고급 프롬프트 엔지니어링 : 사고 체인 (COT)

고급 프롬프트 엔지니어링 : 사고 체인 (COT)

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
풀어 주다: 2025-02-26 03:17:10
원래의
656명이 탐색했습니다.
큰 언어 모델의 추론 능력 : 체인 사고 및 기타 기술

_ 멤버가 아니지만이 기사를 읽고 싶다면이 친구 링크를 확인하십시오. _ <.> 체인 사고 (COT)는 한동안 주변에 있었고 기술적으로 고급 팁 엔지니어링이지만, 첫 번째 도입 후 몇 년 후에도 여전히 상당한 의미가 있습니다. 모든 형태의 COT는 종종 큰 언어 모델을 추론하기위한 것입니다.

OpenAi가 올해 9 월 모델 O1 미리보기 버전을 출시 한 후 COT 주변의 인기가 증가한 것을 알았습니다.

아무도 O1의 작동 방식 (OpenAI 제외), 조합 시스템이든, 미세 조정에 사용하는 데이터, 강화 학습이 사용되는지 또는 여러 모델이 함께 작동하는지 여부를 정확히 모릅니다. Advanced Prompt Engineering: Chain of Thought (CoT)

아마도 한 모델은 계획을 담당하고 다른 모델은 사고에 책임이 있고 세 번째 모델은 평가를 담당합니다. 그러나 우리는 그들이 일종의 단계별 추론 접근법을 취하고 있다는 것을 알고 있습니다.

이 문제에 대한 많은 공개 연구가 이루어졌으며,이 문제를 해결해야 할 수도 있습니다. 따라서이 게시물에서는 사용할 수있는 메소드를 알 수 있도록 기존 방법을 다룰 것입니다. 물론, 다른 기술을 테스트하여 실질적인 개선을 할 수 있는지 확인하겠습니다.

그러면 기술 작업을 수행하는 데 관심이 있다면 모델의 내부 신뢰 수준을 보는 시스템을 구축하여 답을 생성하는 데 도움이됩니다.

연구 결과 지난 2 년 동안 많은 논문이 출판되었으며 여기에서 찾은 많은 논문을 수집했습니다.

당신은 그들이 아래 그림에서 논의하는 추론 기술을 보게 될 것입니다.

대부분의 작품은 DeepMind 또는 Princeton University에서 직접 제공됩니다. 너무 많은 작업을 시작해 주셔서 감사합니다.

COT라는 단어는 DeepMind의 2022 종이에서 유래 한 것으로, 프롬프트에만 사용하여 최신 논문은 몬테 카를로 검색과 구운으로 프롬프트없이 두 번 생각합니다. 이 기사에서는 간단한 체인 사고 (COT), COT 체인, 탐욕스러운 디코딩, COT-SC, Decoding COT 및 Monte Carlo Tree 검색으로 두 번 (TOT)를 소개합니다.

우리는 또한 자체 데이터 세트를 사용하여 이러한 추론 기술을 사용할 때 할 수있는 개선 사항을 이해합니다.

큰 언어 모델의 기본 점수 큰 언어 모델의 결과를 개선하는 방법을 이해하려면 먼저 벤치 마크 점수를 설정해야합니다.

모델을 소개 할 때 일반적으로 평가 메트릭이 제공됩니다. MMLU (언어 이해력), 빅 벤치 (추론), Hellaswag (상식 추론) 등과 같은 인기있는 지표가 있습니다.

그러나 이러한 데이터 세트 중 일부는 구식이며 약간 오염 될 수 있음을 알아야합니다.

Hugging Face는 12 월에 새로운 LLM 순위를 출시했으며, 이는 새로운 데이터 세트를 기반으로 평가되었으며 대부분의 모델이 원래 데이터 세트보다 점수가 훨씬 낮다는 것을 분명히 알 수 있습니다.

모델 평가를 고려해야하는 방법과 귀하와 조직이 평가 해야하는 이유를 이해하기 위해 여기서 연구를 수행 할 가치가 있습니다. 테스트를 위해 내부 개인 데이터 세트를 갖는 것이 최악의 아이디어는 아닐 수 있습니다.

어쨌든, 나는 다양한 데이터 세트에서 약 350 개의 질문과 최대 11 개의 다른 모델을 평가하기 위해 온라인에서 찾은 인기있는 질문을 추출했습니다.

또한이 데이터 세트와 큰 언어 모델에서 생성 된 답변이 어떻게 보이는지 이해해야합니다.

그래서 나는이 질문들을 루프하기 위해 내 자신의 스크립트를 만들고 각 질문의 0 또는 1을 사용하여 큰 언어 모델을 평가했습니다.

당신은 나를 완벽 주의자라고 부를 수 있습니다. 아래에서 찾은 것을 볼 수 있습니다.

이것이 우리에게 무엇을 말해 주나요? 글쎄,별로.

나는 Big Bench, MMLU, Putnam 및 "딸기에 얼마나 많은 R이 있는지"와 같은 인기있는 질문을 사용했지만 이러한 문제가 그들에 의해 오염되었는지 알 수 없습니다. 또한 이것은 상당히 작은 데이터 세트입니다.

그러나 그러나 우리는 큰 모델이 더 잘 작동한다는 것을 분명히 알 수 있습니다.

흥미롭게도, 우리는 모델 이유를 만드는 방법을 적용하고 답을 "생각"하여 이러한 점수를 향상시킬 수 있습니다.

체인 사고 (COT) 체인 사고 (COT) 팁은 2022 년의 논문에서 Deepmind의 두뇌 팀에 의해 제안되었습니다.

COT의 아이디어는 꽤 오랫동안 주변에있었습니다.

그러나이 첫 번째 논문은 큐 전략을 사용하여 모델의 고유 한 추론 능력을 활성화함으로써 모델이 문제에 대한 추론을 강요하는 방법에 대한 연구입니다.

그 당시 사람들은 모델에 "철저한 생각"을 요청함으로써 올바른 방법을 홍보하고 있었는데, 이는 샘플이 제로 샘플 (예제를 제공하지 않음) 또는 몇 가지 샘플 (일부 예제 제공)으로 달성 할 수 있습니다. Advanced Prompt Engineering: Chain of Thought (CoT)

오늘, 프롬프트가 끝날 때 "단계별로 생각하자"를 추가하여 Claude, Chatgpt 또는 기타 모델과 같은 다양한 모델에 대해이 작업을 수행 할 수 있습니다. 샘플 학습을 덜 시도하려면 프롬프트에 몇 가지 예를 제공 할 수 있습니다.

Deepmind는 프롬프트를 올바르게 만들어 COT 기술 사용의 상당한 개선이 향상되었음을 확인할 수 있다고보고합니다.

그 이후로, 그 이후로,이 기술에 대한 많은 논문이 구축되어 점점 더 진보 된 경로로 확장되었습니다.

추론 체인을 구축하십시오 엔지니어링 커뮤니티의 많은 사람들이 COT 스타일 기술을 사용하여 실험합니다. 여기에서 찾은 리포지토리의 대부분을 수집 했으므로 쉽게 찾을 수 있습니다.

얼마 전, Benjamin Klieger는 Groq와 Llama 3.1 70B를 사용하여 사고 과정을 더욱 분류하여 체인 사고를 유도하는 프롬프트 스타일 애플리케이션을 구축 한 것을 강조했습니다. Advanced Prompt Engineering: Chain of Thought (CoT) 여기에서 그의 앱을 찾을 수 있습니다.

아이디어는 큰 언어 모델에 사고를 체인으로 분해하도록 요청하는 것이며, 답에 대한 자신감이 가득 할 때까지 계속 생각할 것입니다.

시스템은 전체 사고 과정을 한 번의 응답으로 갖지 않고 체인의 각 부분에 대해 큰 언어 모델 호출을 계속 생성합니다.

이것을 grok-beta에 적용하는 예를보십시오.

"딸기에는 몇 개의 rs가 있습니까?"

모델 자체가 각 섹션을 설정하고, 이름 지정하고, 다른 "아이디어"가 필요하고 계속되어야하는지 또는 최종 답변에 도달했는지 여부를 결정합니다.

이것은 선형 관계가 있기 때문에 여전히 COT 스타일 기술이지만 단순히 모델에 "단계별로 생각"하도록 요구하는 것보다 약간 더 발전합니다.

나는 그의 코드 중 일부를 사용하여 대형 언어 모델의 벤치 마크 문제를 통해이 시스템이 실제로 생성되는 얼마나 많은 개선 방법을 살펴 보는 스크립트를 작성하는 스크립트를 만들었습니다. 또한이 전략을 평가하기 위해 Claude와 Grok의 대본을 조정했습니다.

아래의 백분율 개선이 표시됩니다. llama 3.1 70b는 처음 세 가지 범주에서 가장 좋은 개선을 달성했습니다. Grok은 전염병에 대해 더 나빠지고 있습니다 (Haiku와 마찬가지로). Putnam 데이터 세트는 고급 수학이며, 이와 관련하여 큰 언어 모델은 거의 수행 할 수 없으므로 Claude Sonnet 3.5가 O1-PREVIEW (O1-PREVIEW)를 68.75%로 성능해질 수 있었을 때이 COT 체인에서 나는 놀랐을 때 놀랐습니다. 63%).

전반적으로 소네트의 COT 사용은 고급 수학에서 81%를 향상 시켰습니다.

Advanced Prompt Engineering: Chain of Thought (CoT) 기억하십시오. 여기에서 매우 작은 데이터 세트를 사용하고 있습니다. 단지 그들이 잘하는 일과 점수를 향상시킬 수 있는지 이해하는 것입니다. 더 큰 데이터 세트에서 테스트하지 않고는 특정한 내용을 알려주지 않습니다.

그러나 그러나 작은 모델이 단순한 문제를 과도하게 분석하기 시작하면 더 나쁜 결과를 얻을 수 있음을 관찰했습니다. 이것은 Grok-Beta와 Haiku의 인기있는 "쉬운"문제에서 분명합니다.

더 쉬운 비가 모학적인 문제는 COT와 동일한 이점을 얻지 못할 수 있습니다.

우리는 또한 모델이 자신의 기능 내에서 작동하도록 푸시 할 수 있지만 그 기능을 거의 초과 할 수 없다는 것을 기억해야합니다. 답을 모른다면 모릅니다.

추론을위한 미세 튜닝 계속하기 전에 미세 조정을 언급하고 싶습니다.

매우 흥미로운 영역은 COT 데이터 세트에서 작은 모델을 미세 조정하여 정확도를 향상 시키려고하여 모델의 정확도에 1-2 배 더 큰 모델에 도달하려고합니다.

나는 여러 리소스를 발견했지만 불행히도 적절한 분석에 합당하다고 생각되는 벤치 마크 모델의 크게 개선 된 것을 찾지 못했습니다.

아래에서 찾은 오픈 소스 모델이 표시됩니다.

아래에서 찾은 오픈 소스 침대 데이터 세트가 표시됩니다.

이것은 COT의 미세 조정이 작동하지 않을 것이며, 더 나은 문서화 된 모델을 구축하면됩니다.

자신을 미세 조정하려고한다면이 리소스를 확인하십시오. 더 많은 자원이 있다고 생각합니다. Advanced Prompt Engineering: Chain of Thought (CoT) 대체 세대 기술 지금까지, 우리는 스레드 (또는 체인)에서 출력을 생성하는 모델의 선형 기술을 연구 해 왔습니다.

그러나 첫 번째 COT 용지를 발표 한 직후 DeepMind는 COT-SC (Consensistent Chain Thinking)라는보다 진보 된 기술을 제안했습니다.

이 기술은 다중 추론 경로를 생성하고 일부 방법을 사용하여 끝에서 가장 일관된 답변 (또는 경로)을 선택합니다. Advanced Prompt Engineering: Chain of Thought (CoT) 그들은이 방법을 사용하여 산술 추론이 약 1-8% 개선되었다고보고했다.

올해 방금 제안 된 방법은 여러 경로를 사용하는 것과 동일한 아이디어를 따르지만 힌트를 사용하지는 않습니다.

이전 섹션에서 논의한 욕심 많은 디코딩 아이디어를 기억하십니까?

이 접근법은 가장 가능성이 높은 마커를 강요 할뿐만 아니라 전체 응답의 신뢰 점수를 검토한다는 점을 제외하고는 비슷합니다.

이를 수행하기 위해 시스템은 먼저 특정 수의 초기 최상위 마커를 시작한 다음 각 마커로부터 경로를 생성합니다. 답이 생성 된 후, 각 마커의 확률 (로이트)을 다른 경로에서 분석하여 신뢰 점수를 계산합니다.

는 확률이 가장 높은 답변 (또는 경로)을 반환합니다.

이 방법을 디코딩 코트라고하며 DeepMind가 제안합니다. 이 접근법의 아이디어는 반환 답변에 대한 모델의 내부 신뢰를 보는 것입니다.

그러나 질문에 대답 할 내재 된 지식이 없다면 어떻게됩니까? COT-SC와 마찬가지로이 접근법은 모델이 처음부터 정답을 가지고 있는지 여부에 달려 있습니다.

그러나 이것이 우리가 테스트해서는 안된다는 의미는 아닙니다.

이러한 모든 기술의 경우 오픈 소스에는 다른 실용적인 구현이 있으며,이 기술도 예외는 아닙니다.

따라서 이러한 방법을 테스트하고 작은 오픈 소스 모델 LLAMA 3 8B를 사용하여 어느 것이 더 나은지 비교하는 시스템을 구축하기가 쉽습니다.

오픈 소스에 대한 Codelion에게 감사드립니다. Advanced Prompt Engineering: Chain of Thought (CoT) 위의 결과를보십시오. 디코딩 침대를 사용하여 엔트로피 또는 특정 모델에 대해서만 욕심 많은 디코딩과 같은 다른 방법에 비해 최상의 결과를 생성하는 것을 알 수 있습니다.

우리는 기술 섹션 에서이 디코딩 침대 시스템을 사용하여 작동 방식을 이해할 수 있도록 API를 생성합니다.

업데이트 된 기술 유지하기는 어렵지만 연구는 더 높은 위험 영역에서 추론을 위해 간단한 간이 침대를 사용하는 것 이상이었습니다.

나는 지금이 모든 전략을 다루지 않을 것입니다. 왜냐하면 그것은 또 다른 주제이기 때문에, 특히 Monte Carlo Search와 함께 사용될 때 두 번 생각하는 것 (TOT)을 언급하고 싶습니다.

TOT는 2023 년 말 Princeton University와 Deepmind에 의해 제안되었지만 일반적으로 이전의 나무 기반 추론 방법을 기반으로합니다.

(TOT) 전에 두 번 생각하는 것은 일관된 체인 사고 (COT-SC)와 다소 다릅니다. 여러 경로를 생성하고 생성 된 후에 평가하는 대신 TOT가 진행됨에 따라 나타난 아이디어를 동적으로 평가합니다.

4 명의 다른 사람들이 문제를 해결하기 위해 함께 일하는 것으로 생각하십시오. 각 단계에서 그들은 아이디어를 제시하고 어떤 아이디어가 가장 유망한지를 공동으로 평가합니다. 추론이 결함이있는 것처럼 보이면 떠나기 때문에 다른 사람들은 계속해서 문제를 해결할 것입니다.

마지막으로, 올바르게 추론 할 수있는 사람들은 답변을 제공 할 수 있습니다.

이를 통해 모델은 나쁘게 보이는 경로를 동적으로 다듬고 더 유망한 스레드에 중점을 두어 잠재적으로 자원을 절약 할 수 있습니다.

그러나 시스템이 어떤 스레드가 올바른 지, 어떤 스레드가 잘못되었는지에 대해 의문을 제기 할 수 있습니까? 이것은 모델 자체에 의해 결정됩니다.

이것이 Monte Carlo Tree Search (MCTS)와 같은 확장이보다 편견없는 평가 메커니즘을 제공하는 이유입니다. MCTS는 역전을 허용하므로 새로운 정보를 기반으로 초기 단계를 다시 방문하고 개선 할 수 있지만 간단한 TOT는 앞으로 나아갈 수 있습니다.

4 명 문제 해결 사례의 경우 MCTS는 사람들이 이상적인 아이디어보다 적은 아이디어를 가질 수있게하고 여전히 게임에 더 오래 머물 수 있습니다. 평가 방법은 다릅니다.

MCTS는 여러 미래의 경로를 시뮬레이션하고 잠재력을 평가하며 초기 의사 결정을 개선 할 수 있습니다. 모델에 전적으로 의존하기보다는 외부 메트릭 (보상)을 소개합니다.

UCB (상위 신뢰 경계)와 같은 통계는 이러한 보상을 사용하여 더 자세히 탐색하거나 다시 방문 할 아이디어를 결정합니다.

MCTS는 단순한 토트보다 조금 더 복잡하며 별도로 작성 될 수 있습니다.

코트의 경제 지금까지, 지금까지 우리는 몇 가지 개선 사항이 있다고 생각할 수도 있습니다. 왜 항상 더 고급 형태의 체인 사고를 사용하지 않습니까?

우선, 비용 (그리고 생각할 시간). Advanced Prompt Engineering: Chain of Thought (CoT) 다른 모델에 적용한 체인의 경우 평균 추론 단계 수를 계산했습니다.

이것을 살펴보면 평균적으로 질문 당 8 배 더 지불합니다. 고급 수학 문제에서 가장 잘 수행되는 Sonnet의 경우 500 개의 질문 당 최대 $ 15를 지불하게됩니다.

이것은 그리 많이 보이지 않을 수도 있지만,이 시스템을 사용하여 매일 고객 서비스 나 팀에 대한 답변을 생성하면 한 달에 수백 또는 수천 달러를 소비하게됩니다. Advanced Prompt Engineering: Chain of Thought (CoT) 어떤 경우에는 고급 추론 방법을 사용하는 것이 합리적이지만 항상 그런 것은 아닙니다.

이제 COT에 미세 조정이 수행 된 경우가있을 수 있으며, 본질적으로 여러 통화를 생성 할 필요가 없지만 지금까지 오픈 소스 모델을 잘 보지 못했습니다.

여기에는 약간의 트레이드 오프가 있습니다. 우리는 모델이 효과적으로 추론하기에 충분한 시간을 갖도록 사고 시간을 늘리고 싶지만 그렇게하면 사용자 좌절과 비용도 증가 할 것입니다.

지능형 시스템을 구축하십시오 올해 9 월에 "침대가 아닌 침대가 아닌가?"

우리는 여기에서도 간단한 질문에 대한 개선이 제한되어 있습니다.

이 체인을 적용 할 때 응답을 얻기 위해 더 오래 기다려야합니다. 그만한 가치가 있습니까? 그러나 이러한 모든 전략은 간단한 작업에 비해 너무 복잡 할 수 있습니다.

이것이 대부분의 질문에서 OpenAi의 O1을 사용할 때 좌절감을 느낄 수 있으며 간단한 답변은 일반적으로 충분합니다.

그러나 답이 올바른지 확인 해야하는 시스템을 구축하는 경우 침대 형태의 침대 또는 디코딩을하는 것이 좋습니다.

질문의 어려움에 따라 첫 번째 단계를 설정하기 위해 모델을 사용하여 먼저 대답 할 수 있다고 확신하는지 분석하는 것이 좋습니다. 그런 다음 모델이 (체인을 통해) 추론하고 마지막에 다른 모델이 응답을 얻게하십시오.

노트 여기에 소개 한 것 외에 더 많은 프레임 워크가 있습니까? 절대적으로, 나는 이해하기 흥미로운 것만 소개합니다. 이것은 정보 과부하없이 얼마나 많은 진전을했는지에 대한 아이디어를 제공합니다.

대부분의 AI 엔지니어들은 이러한 프레임 워크에 정통한 것이지만 불행히도 연구는 대중에게 예상 한대로 빨리 퍼지지 않았습니다.

COT를 구현하는 방법을 배우는 것은 사용하지 않기로 결정하더라도 LLM 응용 프로그램을 구축하는 기본의 일부 여야합니다.

기술 작업 실습을하자.

우리는 오픈 소스 모델 LLAMA 3.1 8B를 사용하여 디코딩 COT 시스템을 구현합니다.

침대를 디코딩하는 방법은 올해 발표 된 "팁이없는 체인 사고 추론"에서 유래되었으며, 여기에서 발견 된 Codelion에서 구현이 얻어졌습니다. 시스템이 난이도를 확인하여 경로 수 (k)를 결정하도록 몇 가지 기능을 추가했습니다.

지난번에 Modal을 사용했기 때문에 이번에는 Beam을 사용할 수 있습니다.이 시간은 서버리스 LLM 서비스 플랫폼이기도합니다. 그들은 15 시간의 무료 계층을 제공하므로 무료입니다. 우리가 사용할 대본은 여기에서 찾을 수 있습니다.

테스트를 위해 Colab을 사용하는 것을 선호하는 경우 여기 에서이 스크립트를 실행할 수 있습니다.

결과는 API 엔드 포인트가되어야하는 API 엔드 포인트가되어야하는데, 이는 어려움을 평가 한 다음 질문에 대한 디코딩 침대를 수행하고 다음 응답을 반환 할 수있는 질문을 할 수 있어야합니다.

큰 언어 모델에 대한 요청 수와 시스템이 문제를 분류하는 방법을 볼 수 있습니다. 또한 시스템이 평가를 위해 여러 답변을 생성하기 때문에 시스템이 상당히 느리다는 것을 알 수 있습니다.

그러나 동일한 8B 모델로 GroQ를 시도하면 질문에 올바르게 답변하지 않음을 알 수 있습니다.

정답은 27.3이며 추가 연료에 대한 추가 포인트를 얻을 수 있습니다. Advanced Prompt Engineering: Chain of Thought (CoT) 최종 답변과 관련하여, 나는 그러한 작은 모델이 지금까지 우리를 얻을 수 있지만, 나는 지금까지 우리를 얻을 수 있음을 알 수 있습니다. 불행히도 더 큰 모델을 사용하려면 어딘가에 저장해야하므로 더 많은 작업이 필요합니다.

이 시스템을 설정하려면 5 분 동안 시간을 ​​차지할 것입니다. 아래 지침을 따를 수 있습니다.

포옹 얼굴 먼저 사용할 모델에 액세스 할 수 있습니다. LLAMA 3 8B 모델을 사용하려면 포옹을 통해 접근해야합니다.

이미 포옹 얼굴 계정이 있다면이 과정은 일반적으로 매우 빠릅니다. 계정이없는 경우 무료로 계정을 만들고 모델 카드로 이동할 수 있습니다.

Advanced Prompt Engineering: Chain of Thought (CoT) 모델 카드에 들어가면 모델을 테스트 하고이 새로운 시스템을 테스트하는 데 사용할 수있는 질문을 볼 수 있습니다. 이것은 꽤 표준적인 질문입니다. 이전에 평가에 사용했지만 표준 LLAMA 3 8B 모델은 처리하기가 어렵습니다.

액세스가 있으면 설정으로 이동하여 액세스 토큰을 얻으십시오.

빔으로 설정해야하기 때문에이 토큰을 어딘가에 저장하십시오.

빔 .Cloud

빔 계정이없는 경우 계정을 만들어야합니다 (Colab을 직접 사용하지 않는 한). 물론 다른 플랫폼에서 자신의 시스템을 구축 할 수도 있습니다.

빔을 사용하기로 결정한 경우 대시 보드에서 API 키를 가져옵니다.

이제 우리는 시작할 수 있습니다. 새 터미널을 열고 새 디렉토리를 만들고 해당 디렉토리로 CD를 작성하십시오. Advanced Prompt Engineering: Chain of Thought (CoT)

내가 설정 한 저장소를 복제하십시오.

가상 환경을 만듭니다 (이를 위해 파이썬을 설치해야 함).
<code>mkdir my-testing-dir
cd my-testing-dir</code>
로그인 후 복사
로그인 후 복사

빔을 설치하고 인증하십시오.

<code>git clone https://github.com/ilsilfverskiold/decoding-cot-beam.git </code>
로그인 후 복사
이전에 포옹을 통해 얻은 HF_Token을 설정하십시오.

여기에서 직접 서비스를 제공 할 수 있지만 코드를 간단히 소개하겠습니다.
<code>python3 -m venv .venv && source .venv/bin/activate</code>
로그인 후 복사
관심이 없다면 다음 섹션을 건너 뛸 수 있습니다.

코드

루트 폴더에는 3 개의 파이썬 파일이 있습니다.

<code>pip install beam-client
beam configure default --token "your_token_here"</code>
로그인 후 복사

app.py에는 빔에서 코드가있어서 포옹 얼굴 (스타트 업)에서 모델의 무게를 다운로드하고 볼륨을 통해 캐시 할 수 있습니다. 이것은 우리가 처음 실행할 때 서투르고 느릴 수 있음을 의미합니다.

빔은 또한 스크립트가 빔에서 원격으로 실행될 때 패키지를로드 할 수 있습니다.
<code>beam secret create HF_TOKEN</code>
로그인 후 복사
다음은 내 의견과 함께 app.py의 시작입니다.

우리는 사용하려는 리소스 (A100 GPU 및 2 CPU 코어)가있는 @endpoint를 정의합니다. 또한 시작시 모델을로드한다는 것을 알게 될 것입니다.

API 호출을받은 후 generate_text () 함수를 실행합니다.

우리는 먼저 get_k_value ()를 사용하여 복잡성에 따라 k를 계산하는 함수가 있습니다. 그러나 여기서 핵심 기능은 COT_DECODE ()이며 문제에 대한 디코딩 체인 사고를 수행합니다.

이 기능은 메시지, 모델 및 토큰 화제를 받고 가장 높은 로이트를 사용하여 k 가능한 다음 태그를 예측하기 위해 첫 번째 초기 호출을합니다.

이들은 여러 답변을 생성하기위한 잠재적 인 출발점 역할을합니다. 이러한 각 출발점 또는 시작 표시에 대해 완전한 답변을 생성 한 다음 전체적으로 평가합니다. 우리가 논의한 탐욕스러운 디코딩을 기억하십니까? 다음 태그의 확률이 높으면 만 생성합니까? 이것은 모델이 하나씩 표시하는 대신 전체 답변을 결정하는 정도를 반영하는 신뢰 점수를 계산하여 전체 문장을 살펴 봅니다.
<code>│
├── app.py
├── question_classifier.py
└── cot_decoder.py </code>
로그인 후 복사
신뢰 점수가 가장 높은 경로를 얻은 후 k 값으로 반환됩니다.

모델이 여러 높은 신뢰 답변을 반환 할 때 Aggregate_answers BOOL을 추가하는 것과 같은 다른 옵션이 있지만 여기서는 사용하지 않습니다.

실행합시다

이제 코드를 간단히 설명 했으므로 코드가 어떻게 작동하는지 확인하기 위해 실행할 것입니다.

모든 것이 올바르게 설정되어 있으면 단순히 서브에 전화 할 수 있어야합니다.

시간이 초과되면 다시 서빙하면 모델을 캐시합니다.
<code>[...]
# 这确保了这些包仅在脚本在 Beam 上远程运行时加载
if env.is_remote():
    import torch
    from transformers import AutoModelForCausalLM, AutoTokenizer
    from cot_decoder import cot_decode
    from question_classifier import get_k_value

# 模型参数和在卷中缓存的位置
MODEL_NAME = "meta-llama/Meta-Llama-3-8B-Instruct"
CACHE_PATH = "./cached_models2"

# 加载模型和标记器
def load_models():
    tokenizer = AutoTokenizer.from_pretrained(MODEL_NAME, cache_dir=CACHE_PATH)
    tokenizer.pad_token = tokenizer.eos_token
    model = AutoModelForCausalLM.from_pretrained(
        MODEL_NAME, device_map="auto", torch_dtype=torch.float16, cache_dir=CACHE_PATH
    )
    return model, tokenizer

# 定义端点
# 您可以指定 CPU/内存/GPU + 图像
@endpoint(
    secrets=["HF_TOKEN"],
    on_start=load_models, # 启动时加载模型以进行缓存
    name="meta-llama-3-8b-instruct",
    cpu=2,
    memory="32Gi",
    gpu="A100-40",
    image=Image(
        python_version="python3.9",
        python_packages=["torch", "transformers", "accelerate"],
    ),
    volumes=[Volume(name="cached_models2", mount_path=CACHE_PATH)],
)
[...]</code>
로그인 후 복사
모델이 어디에 저장되는지 확인하려면 Beam.Cloud 플랫폼에서

볼륨

로 이동할 수 있습니다.

일단 실행되면 다음이 표시됩니다.

이것은 테스트 준비가되었음을 의미합니다. Advanced Prompt Engineering: Chain of Thought (CoT) 당신은 Postman을 시작하거나 Curl을 사용할 수 있습니다 (즉, 터미널 창의 엔드 포인트로 호출을 실행 함)

응답은 다음과 비슷해야합니다.

볼 수 있듯이 약간 더 잘 수행됩니다.
<code>mkdir my-testing-dir
cd my-testing-dir</code>
로그인 후 복사
로그인 후 복사
모델을 배포하려면 배포를 실행할 수 있습니다.

방금 테스트하는 데 사용 했으므로 지금 끄질 수 있습니다.

나는이 기사가 교육적이고 흥미 롭기를 바랍니다. 당신은 무언가를 얻을 것입니다. Advanced Prompt Engineering: Chain of Thought (CoT) 대형 언어 모델 및 COT 기술에 대한 결과를 보려면이 테이블 과이 저장소에서 찾을 수있는 다른 모든 리소스를 볼 수 있습니다.

도움이되면 코멘트를 남겨 주시고 박수를 보내십시오.

위 내용은 고급 프롬프트 엔지니어링 : 사고 체인 (COT)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿