이 블로그에서는 Llama 3.3의 기능, 특히 추론의 강점, 지침, 코딩 및 다국어 지원에 따라 다국어 코드 설명 앱을 구축 할 것입니다.
이 앱은 사용자가 다음을 허용합니다
모든 프로그래밍 언어로 코드 스 니펫을 입력하십시오
<for> 설명 (영어, 스페인어, 프랑스어 등)을위한 언어를 선택하십시오.
<begin> 코드에 대한 초보자 친화적 인 설명을 생성합니다
</begin></for>
앱은 다음을 사용하여 구축됩니다
llama 3.3은 처리를 위해 얼굴을 껴안습니다
사용자 인터페이스의 간소화
통합을위한 포옹 얼굴 추론 API
우리는 Llama 3.3 앱을 구축하는 데 바로 점프하지만, 먼저 모델 개요를 원한다면 Llama 3.3 에서이 안내서를 확인하십시오. 시작하자! 라마 3.3 설정
시작하려면 이것을 몇 단계로 나눌 것입니다. 먼저 포옹 얼굴을 사용하여 Llama 3.3에 액세스하는 방법을 다루고 계정을 설정하고 필요한 권한을 얻습니다. 그런 다음 프로젝트 환경을 만들고 필요한 종속성을 설치합니다.
껴안는 얼굴에 라마 3.3에 접근합니다
Llama 3.3에 액세스하는 한 가지 방법은 머신 러닝 모델을 호스팅하는 데 가장 인기있는 플랫폼 중 하나 인 Hugging Face를 통한 것입니다. Hugging Face의 추론 API를 통해 Llama 3.3을 사용하려면 다음과 같습니다.
-
포옹 얼굴 계정.
포옹 얼굴로 가서 아직 계정이없는 경우 계정에 가입하십시오.
-
올바른 권한이있는 API 토큰
로그인하면 액세스 토큰 페이지로 이동하십시오.
새로운 읽기 토큰을 생성합니다
토큰을 단단히 복사하십시오
LLAMA-3.3-70B 비 구역 모델에 대한 액세스
llama-3.3-70b-비 구역 페이지로 이동하십시오
라이센스 약관에 동의하고 액세스를 요청해야합니다.
참고 :이 모델에 대한 액세스에는 프로 가입이 필요합니다. 계정이 업그레이드되었는지 확인하십시오.
-
프로젝트 환경을 준비하십시오
모델에 액세스 할 수있게되면 앱의 환경을 설정해 봅시다. 먼저이 프로젝트를위한 폴더를 만들 것입니다. 터미널을 열고 프로젝트 폴더를 작성하려는 위치로 이동하여 실행하십시오.
-
그런 다음 app.py라는 파일을 만들어 코드를 보유하기 위해 : touch app.pynow, 환경을 만들고 활성화합니다.
필요한 종속성을 설치하십시오
환경이 준비되었으므로 필요한 라이브러리를 설치하겠습니다. Python 3.8을 실행하고 있는지 확인하십시오. 터미널에서 다음 명령을 실행하여 LMILLIT, Requests 및 Hugging Face 라이브러리를 설치하십시오.
-
지금까지 :
API 토큰이있는 포옹 페이스 계정 및 LLAMA 3.3 모델에 대한 액세스.
코딩 준비가 된 깨끗한 프로젝트 폴더
: 를 포함하여 필요한 모든 필요한 라이브러리가 설치되었습니다
-
인터페이스의 경우 간소
API 호출 요청.
포옹 페이스 모델과 상호 작용하기위한 변압기 및 포옹 페이스 허브
-
이제 설정이 완료되었으므로 앱을 구축 할 준비가되었습니다! 다음 섹션에서는 다국어 코드 설명 앱을 단계별로 코딩하기 시작합니다.
백엔드를 작성하십시오
백엔드는 포옹 페이스 API와 통신하여 코드 스 니펫을 보내고 설명을받습니다.
.
필수 라이브러리 가져 오기 -
먼저, 우리는 요청 라이브러리를 가져와야합니다. 이 라이브러리를 사용하면 HTTP 요청을 API에 보낼 수 있습니다. app.py 파일의 상단에서
API 액세스를 설정
포옹 얼굴에 호스팅 된 Llama 3.3 API와 상호 작용하려면 다음과 같이 필요합니다.
-
API 엔드 포인트 (모델이 호스팅되는 URL)
인증을위한 포옹 얼굴 API 키.
-
위의 코드에서 :
"hf_your_api_key_here"를 이전에 생성 한 토큰으로 교체하십시오
헤더 사전에는 API 키가 포함되어있어 포옹 얼굴은 엔드 포인트를 사용할 권한이 있음을 알고 있습니다.
-
쿼리 llama 3.3
에 함수를 작성하십시오
이제 API에 요청을 보내는 기능을 작성합니다. 함수는 다음과 같습니다.
모델에 무엇을 해야하는지 알려주는 프롬프트를 구성합니다. .
포옹 얼굴에 요청을 보내십시오.
응답을 처리하고 생성 된 설명을 추출하십시오
프롬프트는 Llama 3.3에 원하는 언어로 코드 스 니펫을 설명하라고 지시합니다.
면책 조항 : 나는 최고의 출력을 생성 한 사람을 찾기 위해 다른 프롬프트를 실험 했으므로 신속한 엔지니어링의 요소가 분명히 관련되어있었습니다!
다음으로 페이로드가 정의됩니다. 입력의 경우 프롬프트가 모델로 전송되도록 지정합니다. 매개 변수에서 Max_new_tokens는 응답 길이를 제어하고 온도는 출력의 창의성 수준을 조정합니다.
> requests.post () 함수는 데이터를 포옹 얼굴로 보냅니다. 응답이 성공하면 (status_code == 200) 생성 된 텍스트가 추출됩니다. 오류가 있으면 설명 메시지가 반환됩니다
마지막으로, 출력을 올바르게 정리하고 형식화하는 단계가 있습니다. 이것은 깔끔하게 제시되도록하여 사용자 경험을 크게 향상시킵니다.
간소 한 프론트 엔드 를 빌드하십시오
프론트 엔드는 사용자가 앱과 상호 작용하는 곳입니다. Streamlit은 Python 코드만으로 대화식 웹 앱을 생성 하고이 프로세스를 간단하고 직관적으로 만드는 라이브러리입니다. 이것이 앱의 프론트 엔드를 구축하는 데 사용할 수있는 것입니다. 나는 Demos와 POC! 를 구축하는 것이 간소를 정말 좋아합니다
import sleamlit
App.py 파일의 상단에서 add : mkdir multilingual-code-explanation
cd multilingual-code-explanation
로그인 후 복사
페이지 구성을 설정
우리는 set_page_config ()를 사용하여 앱 제목과 레이아웃을 정의합니다. 아래 코드에서 :
page_title : 브라우저 탭 제목을 설정합니다
레이아웃 = "넓은": 앱이 전체 화면 너비를 사용할 수 있도록합니다.
사이드 바 명령어를 작성
사용자가 앱 사용 방법을 이해하도록 돕기 위해 사이드 바에 지침을 추가 할 것입니다.
St.SideBar.title () : 사이드 바에 대한 제목을 만듭니다
St.SideBar.Markdown () : 간단한 지시 사항이있는 텍스트를 추가합니다
divider () : 깨끗한 시각적 분리를 추가합니다
Custom HTML : 개인 터치로 바닥에 작은 바닥 글을 표시합니다. 이 비트를 자유롭게 개인화하십시오! -
-
메인 앱 구성 요소 추가
우리는 메인 제목을 추가하고 자막을 페이지에 추가 할 것입니다 :
이제 사용자가 코드를 붙여 넣고 선호하는 언어를 선택할 수 있으려면 입력 필드가 필요합니다. 코드 텍스트는 언어 이름보다 길어질 가능성이 높기 때문에 코드의 텍스트 영역과 언어에 대한 텍스트 입력을 선택합니다.
text_area () : 코드를 붙여 넣기위한 큰 상자를 만듭니다
text_input () : 사용자가 언어를 입력 할 수 있습니다
python3 -m venv venv
source venv/bin/activate’
로그인 후 복사
버튼을 클릭하면 앱 :
코드 스 니펫과 언어가 제공되는지 확인하십시오
는 API를 쿼리하는 동안 스피너를 표시합니다
는 입력이 누락 된 경우 생성 된 설명 또는 경고를 보여줍니다.
-
바닥 글을 추가하십시오
를 마무리하려면 바닥 글을 추가합시다 :
라마 3.3 app 를 실행하십시오
앱을 실행할 시간입니다! 앱을 시작하려면 터미널 에서이 코드를 실행하십시오.
앱이 브라우저에서 열리고 재생을 시작할 수 있습니다!
-
테스트 llama 3.3 행동 -
이제 다국어 코드 설명 앱을 구축 했으므로 이제 모델이 얼마나 잘 작동하는지 테스트해야합니다. 이 섹션에서는 앱을 사용하여 몇 개의 코드 스 니펫을 처리하고 다른 언어로 생성 된 설명을 평가합니다.
테스트 1 : Python의 Factorial Function
첫 번째 테스트의 경우 재귀를 사용하여 숫자의 요인을 계산하는 파이썬 스크립트로 시작하겠습니다. 우리가 사용할 코드는 다음과 같습니다
이 스크립트는 주어진 숫자의 계승을 계산하는 재귀 함수 요인 (n)을 정의합니다. NUM = 5의 경우 함수는 5 × 4 × 3 × 2 × 1을 계산하여 120을 나타냅니다. 결과는 print () 문을 사용하여 화면에 인쇄됩니다. 스페인어로 설명을 생성 할 때의 출력은 다음과 같습니다.
스페인어 사용자로서, 설명이 코드가 재귀를 사용하여 숫자의 숫자 계승을 계산한다는 것을 올바르게 식별한다는 것을 확인할 수 있습니다. 재귀가 단계별로 작동하는 방식을 살펴보고 간단한 용어로 나뉩니다.
.
> 모델은 재귀 프로세스를 설명하고 0에 도달 할 때까지 N의 값이 감소하여 함수가 어떻게 호출되는지 보여줍니다.
설명은 요청에 따라 전적으로 스페인어로되어 있으며 Llama 3.3의 다국어 기능을 시연합니다.
간단한 문구를 사용하면 프로그래밍에 익숙하지 않은 독자들조차도 재귀 개념을 쉽게 따라갈 수 있습니다.
는 3과 같은 다른 입력에 대한 재귀가 어떻게 작동하는지, 프로그래밍에서 효율적인 문제 해결 개념으로서 재귀의 중요성을 요약하고 언급합니다.
이 첫 번째 테스트는 라마 3.3 : 의 힘을 강조합니다
는 단계별 방식으로 코드를 정확하게 설명합니다
설명은 요청 된 언어 (이 경우 스페인어)에 적응합니다.
지시에 따라 결과는 상세하고 명확하며 초보자에게 친숙합니다
이제 파이썬 스크립트를 테스트 했으므로 JavaScript 또는 SQL과 같은 다른 프로그래밍 언어로 이동할 수 있습니다. 이를 통해 추론, 코딩 및 다국어 지원에 대한 Llama 3.3의 기능을 더욱 탐색하는 데 도움이됩니다.
테스트 2 : JavaScript의 요인 기능
이 테스트에서는 다국어 코드 설명 앱이 JavaScript 기능을 얼마나 잘 처리하고 프랑스어로 설명을 생성하는지 평가합니다.
우리는 모델이 이것을 얼마나 잘 처리하는지 확인하기 위해 의도적으로 모호한 변수를 선택한 다음 JavaScript 코드 스 니펫을 사용합니다.
이 코드 스 니펫은 주어진 숫자 a의 요인을 계산하는 재귀 함수 x (a)를 정의합니다. 기본 조건은 a === 1인지 확인합니다. 그렇다면 1이 반환됩니다. 그렇지 않으면 함수는 -1로 호출하고 결과에 a를 곱합니다. 상수 y는 6으로 설정되므로 함수 X는 6 × 5 × 4 × 3 × 2 × 1을 계산합니다. fnally에서 결과는 변수 z에 저장되고 console.log를 사용하여 표시됩니다. 다음은 영어로 된 출력과 번역입니다
참고 : 응답이 갑자기 자른 것처럼 보이지만 출력을 500 개의 토큰으로 제한했기 때문입니다!
.이를 번역 한 후, 나는 설명이 함수 x (a)가 재귀임을 정확하게 식별한다고 결론 지었다. 기본 사례 (a === 1)와 재귀 사례 (a * x (a -1))를 설명하면서 재귀가 어떻게 작동하는지 설명합니다. 설명은 함수가 6의 계승을 계산하는 방법을 명시 적으로 보여주고 Y (입력 값) 및 Z (결과)의 역할을 언급합니다. 또한 Console.log가 결과를 표시하는 데 사용되는 방법에 유의합니다.
설명은 전적으로 프랑스어로되어 있습니다. "récursive"(재귀), "accorielle"(Factorial) 및 "Produit"(제품)와 같은 기술 용어는 올바르게 사용됩니다. 그리고 그뿐만 아니라,이 코드는 재귀적인 방식으로 숫자의 계승을 계산한다는 것을 식별합니다.
.
설명은 지나치게 기술적 인 전문 용어를 피하고 재귀를 단순화하므로 프로그래밍에 새로운 독자가 액세스 할 수 있습니다.
이 테스트는 라마 3.3 : 임을 보여줍니다
재귀와 관련된 JavaScript 코드를 정확하게 설명합니다
는 프랑스어로 명확하고 자세한 설명을 생성합니다
는 변수 역할과 코드 동작을 포함하도록 설명을 조정합니다.
이제 우리는 Python 및 JavaScript로 앱을 테스트 했으므로 SQL 쿼리를 사용하여 다국어 및 추론 기능을 추가로 평가하여 테스트하십시오.
테스트 3 : 독일어의 SQL 쿼리
이 마지막 테스트에서는 다국어 코드 설명 앱이 SQL 쿼리를 처리하고 독일어로 설명을 생성하는 방법을 평가합니다. 사용 된 SQL 스 니펫은 다음과 같습니다
이 쿼리는 ID 열을 선택하고 각 ID의 총 값 (sum (b.value))을 계산합니다. 두 개의 테이블에서 데이터를 읽습니다 : table_x (aliased)와 table_y (b로 별칭). 그런 다음 조인 조건을 사용하여 a.ref_id = B.ref에서 행을 연결합니다. B.flag = 1에서 행을 필터링하고 A.Id로 데이터를 그룹화합니다. adge clause는 B. 값의 합이 1000보다 큰 것들 만 포함하도록 그룹을 필터링합니다. 마지막으로, 전체 _amount에 의해 내림차순으로 결과를 주문합니다.
생성 설명 버튼을 누른 후 이것이 우리가 얻는 것입니다.
생성 된 설명은 간결하고 정확하며 잘 구조적입니다. 각 주요 SQL 조항 (선택,에서, 가입, 여기서, 그룹, group, while 및 주문)가 명확하게 설명됩니다. 또한 설명은 SQL의 실행 순서와 일치하여 독자가 쿼리 로직을 단계별로 따르는 데 도움이됩니다.
설명은 전적으로 독일어로되어 있습니다
키 SQL 용어 (예 : "필터", "Gruppiert", "Sortiert")는 컨텍스트에서 정확하게 사용됩니다. 이 설명은 홀드가 그룹화 된 결과를 필터링하는 데 사용되는 것으로 식별되는데, 이는 초보자에게 공통적 인 혼란의 원인이라는 것을 식별합니다. 또한 명확성을 위해 테이블과 열의 이름을 바꾸는 별명 (AS)의 사용을 설명합니다. 설명은 지나치게 복잡한 용어를 피하고 각 절의 기능에 중점을 둡니다. 이렇게하면 초보자가 쿼리 작동 방식을 쉽게 이해할 수 있습니다.
이 테스트는 라마 3.3 : 임을 보여줍니다
는 SQL 쿼리를 효과적으로 처리합니다
는 명확하고 구조화 된 클라스 별 조항을 생성합니다
는 출력 언어로 독일어를 지원합니다
는 초보자가 SQL 쿼리의 논리를 이해하는 데 도움이되는 충분한 세부 사항을 제공합니다.
우리는 파이썬, JavaScript 및 SQL의 코드 스 니펫으로 앱을 테스트하여 스페인어, 프랑스어 및 독일어로 설명을 생성했습니다. 모든 테스트에서 :
설명은 정확하고 명확하며 상세했습니다
이 모델은 강력한 추론 기술과 다국어 지원을 보여 주었다
이 테스트를 통해 우리는 우리가 구축 한 앱이 다양한 프로그래밍 언어와 자연 언어에서 코드를 설명하는 데 다재다능하고 신뢰할 수 있으며 효과적임을 확인했습니다.
- 결론
축하합니다! Hugging Face의 Streamlit 및 Llama 3.3을 사용하여 완전히 기능적인 다국어 코드 설명 조수를 구축했습니다.
이 튜토리얼에서는 다음과 같이 배웠습니다
포옹 페이스 모델을 간소화 앱에 통합하는 방법. -
코드 스 니펫을 설명하기 위해 llama 3.3 API를 사용하는 방법.
API 응답을 정리하고 사용자 친화적 인 앱을 만드는 방법.
이 프로젝트는 코드 추론, 다국어 지원 및 교육 내용 분야에서 LLAMA 3.3의 기능을 탐색하기위한 훌륭한 출발점입니다. 이 모델의 강력한 기능을 계속 탐색하려면 자신만의 앱을 만들면 자유롭게하십시오!
위 내용은 LLAMA 3.3 : 데모 프로젝트를 통한 단계별 자습서의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!