Code Llama 70B พร้อมใช้งานแล้วใน Amazon SageMaker JumpStart | อเมซอนเว็บเซอร์วิส

Code Llama 70B พร้อมใช้งานแล้วใน Amazon SageMaker JumpStart | อเมซอนเว็บเซอร์วิส

วันนี้เรารู้สึกตื่นเต้นที่จะประกาศว่าโมเดลรากฐาน Code Llama ที่พัฒนาโดย Meta พร้อมให้ใช้งานสำหรับลูกค้าผ่านทาง Amazon SageMaker JumpStart เพื่อปรับใช้ด้วยการคลิกเพียงครั้งเดียวสำหรับการอนุมาน Code Llama เป็นโมเดลภาษาขนาดใหญ่ (LLM) ที่ล้ำสมัยที่สามารถสร้างโค้ดและภาษาธรรมชาติเกี่ยวกับโค้ดจากทั้งโค้ดและภาษาธรรมชาติ คุณสามารถลองใช้โมเดลนี้กับ SageMaker JumpStart ซึ่งเป็นฮับแมชชีนเลิร์นนิง (ML) ที่ให้การเข้าถึงอัลกอริทึม โมเดล และโซลูชัน ML เพื่อให้คุณสามารถเริ่มต้นใช้งาน ML ได้อย่างรวดเร็ว ในโพสต์นี้ เราจะอธิบายวิธีการค้นหาและปรับใช้โมเดล Code Llama ผ่าน SageMaker JumpStart

โค๊ดลามะ

Code Llama เป็นโมเดลที่ออกโดย Meta ที่สร้างขึ้นบน Llama 2 โมเดลล้ำสมัยนี้ได้รับการออกแบบมาเพื่อปรับปรุงประสิทธิภาพการทำงานสำหรับงานการเขียนโปรแกรมสำหรับนักพัฒนา โดยช่วยให้พวกเขาสร้างโค้ดคุณภาพสูงและมีเอกสารประกอบอย่างดี โมเดลเหล่านี้เก่งใน Python, C++, Java, PHP, C#, TypeScript และ Bash และมีศักยภาพในการประหยัดเวลาของนักพัฒนาและทำให้เวิร์กโฟลว์ซอฟต์แวร์มีประสิทธิภาพมากขึ้น

มีสามรูปแบบที่ออกแบบมาเพื่อให้ครอบคลุมการใช้งานที่หลากหลาย: โมเดลพื้นฐาน (Code Llama), โมเดลเฉพาะทาง Python (Code Llama Python) และโมเดลตามคำสั่งสำหรับการทำความเข้าใจคำสั่งภาษาธรรมชาติ (Code Llama Instruct) Code Llama ทุกรูปแบบมีสี่ขนาด: พารามิเตอร์ 7B, 13B, 34B และ 70B ตัวแปรฐานและคำสั่ง 7B และ 13B รองรับการเติมตามเนื้อหาโดยรอบ ทำให้เหมาะสำหรับการใช้งานผู้ช่วยโค้ด แบบจำลองได้รับการออกแบบโดยใช้ Llama 2 เป็นฐาน จากนั้นฝึกอบรมเกี่ยวกับข้อมูลโค้ดโทเค็นจำนวน 500 พันล้านโทเค็น โดยเวอร์ชันพิเศษของ Python จะได้รับการฝึกอบรมเกี่ยวกับโทเค็นส่วนเพิ่ม 100 พันล้านโทเค็น โมเดล Code Llama มอบการสร้างที่เสถียรด้วยโทเค็นบริบทมากถึง 100,000 โทเค็น ทุกรุ่นได้รับการฝึกอบรมเกี่ยวกับลำดับโทเค็น 16,000 รายการ และแสดงการปรับปรุงอินพุตที่มีโทเค็นสูงสุด 100,000 รายการ

ซึ่งรุ่นนี้ก็ได้จัดทำขึ้นภายใต้ชื่อเดียวกัน ใบอนุญาตชุมชนเป็น Llama 2

โมเดลพื้นฐานใน SageMaker

SageMaker JumpStart ให้การเข้าถึงโมเดลต่างๆ จากฮับโมเดลยอดนิยม รวมถึง Hugging Face, PyTorch Hub และ TensorFlow Hub ซึ่งคุณสามารถใช้ภายในเวิร์กโฟลว์การพัฒนา ML ของคุณใน SageMaker ความก้าวหน้าล่าสุดใน ML ได้ก่อให้เกิดคลาสของโมเดลใหม่ที่เรียกว่า โมเดลรองพื้นซึ่งโดยทั่วไปแล้วจะได้รับการฝึกอบรมเกี่ยวกับพารามิเตอร์นับพันล้านรายการ และสามารถปรับให้เข้ากับกรณีการใช้งานประเภทต่างๆ มากมาย เช่น การสรุปข้อความ การสร้างงานศิลปะดิจิทัล และการแปลภาษา เนื่องจากโมเดลเหล่านี้มีราคาแพงในการฝึก ลูกค้าจึงต้องการใช้โมเดลพื้นฐานที่ได้รับการฝึกล่วงหน้าที่มีอยู่แล้ว และปรับแต่งตามความจำเป็น แทนที่จะฝึกโมเดลเหล่านี้ด้วยตนเอง SageMaker มีรายการโมเดลที่คัดสรรมาอย่างดีซึ่งคุณสามารถเลือกได้บนคอนโซล SageMaker

คุณสามารถค้นหาโมเดลพื้นฐานจากผู้ให้บริการโมเดลต่างๆ ภายใน SageMaker JumpStart ซึ่งช่วยให้คุณเริ่มต้นใช้งานโมเดลพื้นฐานได้อย่างรวดเร็ว คุณสามารถค้นหาโมเดลพื้นฐานตามงานหรือผู้ให้บริการโมเดลต่างๆ และตรวจสอบคุณลักษณะของโมเดลและเงื่อนไขการใช้งานได้อย่างง่ายดาย คุณยังสามารถลองใช้โมเดลเหล่านี้ได้โดยใช้วิดเจ็ต UI ทดสอบ เมื่อคุณต้องการใช้โมเดลพื้นฐานในวงกว้าง คุณสามารถทำได้โดยไม่ต้องออกจาก SageMaker โดยใช้สมุดบันทึกที่สร้างไว้ล่วงหน้าจากผู้ให้บริการโมเดล เนื่องจากโมเดลดังกล่าวโฮสต์และปรับใช้บน AWS คุณจึงมั่นใจได้ว่าข้อมูลของคุณ ไม่ว่าจะใช้สำหรับการประเมินหรือใช้โมเดลในวงกว้าง จะไม่ถูกแชร์กับบุคคลที่สาม

ค้นพบโมเดล Code Llama ใน SageMaker JumpStart

หากต้องการปรับใช้โมเดล Code Llama 70B ให้ทำตามขั้นตอนต่อไปนี้ใน สตูดิโอ Amazon SageMaker:

  1. บนหน้าแรกของ SageMaker Studio ให้เลือก เริ่มกระโดด ในบานหน้าต่างนำทาง

    Code Llama 70B พร้อมใช้งานแล้วใน Amazon SageMaker JumpStart | Amazon Web Services PlatoBlockchain ข้อมูลอัจฉริยะ ค้นหาแนวตั้ง AI.

  2. ค้นหารุ่น Code Llama และเลือกรุ่น Code Llama 70B จากรายการรุ่นที่แสดง

    Code Llama 70B พร้อมใช้งานแล้วใน Amazon SageMaker JumpStart | Amazon Web Services PlatoBlockchain ข้อมูลอัจฉริยะ ค้นหาแนวตั้ง AI.

    คุณสามารถดูข้อมูลเพิ่มเติมเกี่ยวกับโมเดลนี้ได้บนการ์ดโมเดล Code Llama 70B

    Code Llama 70B พร้อมใช้งานแล้วใน Amazon SageMaker JumpStart | Amazon Web Services PlatoBlockchain ข้อมูลอัจฉริยะ ค้นหาแนวตั้ง AI.

    ภาพหน้าจอต่อไปนี้แสดงการตั้งค่าตำแหน่งข้อมูล คุณสามารถเปลี่ยนตัวเลือกหรือใช้ตัวเลือกเริ่มต้นได้

  3. ยอมรับข้อตกลงสิทธิ์การใช้งานสำหรับผู้ใช้ปลายทาง (EULA) และเลือก ปรับใช้.
    Code Llama 70B พร้อมใช้งานแล้วใน Amazon SageMaker JumpStart | Amazon Web Services PlatoBlockchain ข้อมูลอัจฉริยะ ค้นหาแนวตั้ง AI.

    นี่จะเป็นการเริ่มกระบวนการปรับใช้ตำแหน่งข้อมูล ดังที่แสดงในภาพหน้าจอต่อไปนี้

    Code Llama 70B พร้อมใช้งานแล้วใน Amazon SageMaker JumpStart | Amazon Web Services PlatoBlockchain ข้อมูลอัจฉริยะ ค้นหาแนวตั้ง AI.

ปรับใช้โมเดลด้วย SageMaker Python SDK

หรือคุณสามารถปรับใช้ผ่านสมุดบันทึกตัวอย่างโดยเลือก เปิดสมุดบันทึก ในหน้ารายละเอียดโมเดลของ Classic Studio สมุดบันทึกตัวอย่างให้คำแนะนำตั้งแต่ต้นจนจบเกี่ยวกับวิธีการปรับใช้แบบจำลองสำหรับการอนุมานและล้างข้อมูลทรัพยากร

หากต้องการปรับใช้โดยใช้โน้ตบุ๊ก เราเริ่มต้นด้วยการเลือกรุ่นที่เหมาะสมซึ่งระบุโดย model_id. คุณสามารถปรับใช้โมเดลที่เลือกใดๆ บน SageMaker ด้วยรหัสต่อไปนี้:

from sagemaker.jumpstart.model import JumpStartModel model = JumpStartModel(model_id="meta-textgeneration-llama-codellama-70b")
predictor = model.deploy(accept_eula=False) # Change EULA acceptance to True

ซึ่งปรับใช้โมเดลบน SageMaker ด้วยการกำหนดค่าเริ่มต้น รวมถึงประเภทอินสแตนซ์เริ่มต้นและการกำหนดค่า VPC เริ่มต้น คุณสามารถเปลี่ยนการกำหนดค่าเหล่านี้ได้โดยการระบุค่าที่ไม่ใช่ค่าเริ่มต้นใน JumpStartโมเดล. โปรดทราบว่าโดยค่าเริ่มต้น accept_eula ถูกตั้งค่าเป็น False. คุณต้องตั้งค่า accept_eula=True เพื่อปรับใช้ปลายทางได้สำเร็จ การทำเช่นนี้แสดงว่าคุณยอมรับข้อตกลงสิทธิ์การใช้งานของผู้ใช้และนโยบายการใช้งานที่ยอมรับได้ดังที่กล่าวไว้ข้างต้น นอกจากนี้คุณยังสามารถ ดาวน์โหลด ข้อตกลงใบอนุญาต

เรียกใช้ตำแหน่งข้อมูล SageMaker

หลังจากปรับใช้ตำแหน่งข้อมูลแล้ว คุณสามารถดำเนินการอนุมานได้โดยใช้ Boto3 หรือ SageMaker Python SDK ในโค้ดต่อไปนี้ เราใช้ SageMaker Python SDK เพื่อเรียกโมเดลสำหรับการอนุมานและพิมพ์การตอบกลับ:

def print_response(payload, response): print(payload["inputs"]) print(f"> {response[0]['generated_text']}") print("n==================================n")

ฟังก์ชั่น print_response รับเพย์โหลดที่ประกอบด้วยเพย์โหลดและการตอบสนองของโมเดล แล้วพิมพ์เอาต์พุต Code Llama รองรับพารามิเตอร์มากมายในขณะที่ทำการอนุมาน:

  • สูงสุด_ความยาว – โมเดลสร้างข้อความจนกระทั่งถึงความยาวของเอาต์พุต (ซึ่งรวมถึงความยาวบริบทอินพุต) max_length. หากระบุ จะต้องเป็นจำนวนเต็มบวก
  • max_new_tokens – โมเดลจะสร้างข้อความจนกระทั่งถึงความยาวเอาต์พุต (ไม่รวมความยาวบริบทอินพุต) max_new_tokens. หากระบุ จะต้องเป็นจำนวนเต็มบวก
  • num_beams – ระบุจำนวนคานที่ใช้ในการค้นหาโลภ หากระบุไว้ จะต้องเป็นจำนวนเต็มที่มากกว่าหรือเท่ากับ num_return_sequences.
  • no_repeat_ngram_size – ตัวแบบช่วยให้แน่ใจว่าลำดับของคำของ no_repeat_ngram_size ไม่ซ้ำในลำดับเอาต์พุต หากระบุ จะต้องเป็นจำนวนเต็มบวกที่มากกว่า 1
  • อุณหภูมิ – สิ่งนี้จะควบคุมการสุ่มในเอาต์พุต สูงกว่า temperature ผลลัพธ์ที่ได้คือลำดับเอาต์พุตที่มีคำที่มีโอกาสต่ำและต่ำกว่า temperature ผลลัพธ์ที่ได้คือลำดับเอาต์พุตที่มีคำที่น่าจะเป็นไปได้สูง ถ้า temperature เป็น 0 ส่งผลให้มีการถอดรหัสอย่างละโมบ หากระบุไว้จะต้องเป็นค่าทศนิยมที่เป็นบวก
  • ต้น_หยุด - ถ้า Trueการสร้างข้อความจะเสร็จสิ้นเมื่อสมมติฐานบีมทั้งหมดถึงจุดสิ้นสุดของโทเค็นประโยค หากระบุไว้ จะต้องเป็นบูลีน
  • ทำ_ตัวอย่าง - ถ้า Trueโมเดลจะสุ่มตัวอย่างคำถัดไปตามความน่าจะเป็น หากระบุไว้ จะต้องเป็นบูลีน
  • ท็อป_เค – ในแต่ละขั้นตอนของการสร้างข้อความ โมเดลจะสุ่มตัวอย่างจากเฉพาะ top_k คำที่เป็นไปได้มากที่สุด หากระบุ จะต้องเป็นจำนวนเต็มบวก
  • ท็อป_พี – ในแต่ละขั้นตอนของการสร้างข้อความ โมเดลจะสุ่มตัวอย่างจากชุดคำที่เล็กที่สุดเท่าที่จะเป็นไปได้ด้วยความน่าจะเป็นสะสม top_p. หากระบุไว้ จะต้องเป็นแบบทศนิยมระหว่าง 0 ถึง 1
  • return_full_text - ถ้า Trueข้อความที่ป้อนจะเป็นส่วนหนึ่งของข้อความที่สร้างเอาต์พุต หากระบุไว้ จะต้องเป็นบูลีน ค่าเริ่มต้นสำหรับมันคือ False.
  • หยุด – หากระบุจะต้องเป็นรายการสตริง การสร้างข้อความจะหยุดลงหากมีการสร้างสตริงที่ระบุอย่างใดอย่างหนึ่ง

คุณสามารถระบุชุดย่อยของพารามิเตอร์เหล่านี้ได้ในขณะที่เรียกใช้ตำแหน่งข้อมูล ต่อไป เราจะแสดงตัวอย่างวิธีเรียกใช้จุดสิ้นสุดด้วยอาร์กิวเมนต์เหล่านี้

การเติมโค้ดให้สมบูรณ์

ตัวอย่างต่อไปนี้สาธิตวิธีการเติมโค้ดให้สมบูรณ์โดยที่การตอบสนองปลายทางที่คาดหวังคือความต่อเนื่องตามธรรมชาติของพร้อมท์

ก่อนอื่นเราจะรันโค้ดต่อไปนี้:

prompt = """
import socket def ping_exponential_backoff(host: str): """ payload = { "inputs": prompt, "parameters": {"max_new_tokens": 256, "temperature": 0.2, "top_p": 0.9},
}
response = predictor.predict(payload)
print_response(payload, response)

เราได้รับผลลัพธ์ต่อไปนี้:

""" Pings the given host with exponential backoff. """ timeout = 1 while True: try: socket.create_connection((host, 80), timeout=timeout) return except socket.error: timeout *= 2

สำหรับตัวอย่างถัดไป เราใช้โค้ดต่อไปนี้:

prompt = """
import argparse
def main(string: str): print(string) print(string[::-1])
if __name__ == "__main__": """ payload = { "inputs": prompt, "parameters": {"max_new_tokens": 256, "temperature": 0.2, "top_p": 0.9},
}
predictor.predict(payload)

เราได้รับผลลัพธ์ต่อไปนี้:

parser = argparse.ArgumentParser(description='Reverse a string') parser.add_argument('string', type=str, help='String to reverse') args = parser.parse_args() main(args.string)

การสร้างรหัส

ตัวอย่างต่อไปนี้แสดงการสร้างโค้ด Python โดยใช้ Code Llama

ก่อนอื่นเราจะรันโค้ดต่อไปนี้:

prompt = """
Write a python function to traverse a list in reverse. """ payload = { "inputs": prompt, "parameters": {"max_new_tokens": 256, "temperature": 0.2, "top_p": 0.9},
}
response = predictor.predict(payload)
print_response(payload, response)

เราได้รับผลลัพธ์ต่อไปนี้:

def reverse(list1): for i in range(len(list1)-1,-1,-1): print(list1[i]) list1 = [1,2,3,4,5]
reverse(list1)

สำหรับตัวอย่างถัดไป เราใช้โค้ดต่อไปนี้:

prompt = """
Write a python function to to carry out bubble sort. """ payload = { "inputs": prompt, "parameters": {"max_new_tokens": 256, "temperature": 0.1, "top_p": 0.9},
}
response = predictor.predict(payload)
print_response(payload, response)

เราได้รับผลลัพธ์ต่อไปนี้:

def bubble_sort(arr): n = len(arr) for i in range(n): for j in range(0, n-i-1): if arr[j] > arr[j+1]: arr[j], arr[j+1] = arr[j+1], arr[j] return arr arr = [64, 34, 25, 12, 22, 11, 90]
print(bubble_sort(arr))

นี่คือตัวอย่างบางส่วนของงานที่เกี่ยวข้องกับโค้ดโดยใช้ Code Llama 70B คุณสามารถใช้โมเดลเพื่อสร้างโค้ดที่ซับซ้อนยิ่งขึ้นได้ เราขอแนะนำให้คุณลองใช้กรณีการใช้งานและตัวอย่างที่เกี่ยวข้องกับโค้ดของคุณเอง!

ทำความสะอาด

หลังจากที่คุณทดสอบตำแหน่งข้อมูลแล้ว ตรวจสอบให้แน่ใจว่าคุณได้ลบตำแหน่งข้อมูลปลายทางการอนุมานของ SageMaker และโมเดลแล้ว เพื่อหลีกเลี่ยงไม่ให้มีค่าใช้จ่ายเกิดขึ้น ใช้รหัสต่อไปนี้:

predictor.delete_endpoint()

สรุป

ในโพสต์นี้ เราได้แนะนำ Code Llama 70B บน SageMaker JumpStart Code Llama 70B เป็นโมเดลที่ล้ำสมัยสำหรับการสร้างโค้ดจากคำสั่งภาษาธรรมชาติและโค้ด คุณสามารถปรับใช้โมเดลด้วยขั้นตอนง่ายๆ เพียงไม่กี่ขั้นตอนใน SageMaker JumpStart จากนั้นใช้เพื่อดำเนินงานที่เกี่ยวข้องกับโค้ด เช่น การสร้างโค้ดและการเติมโค้ด ในขั้นตอนถัดไป ให้ลองใช้โมเดลกับกรณีการใช้งานและข้อมูลที่เกี่ยวข้องกับโค้ดของคุณเอง


เกี่ยวกับผู้แต่ง

Code Llama 70B พร้อมใช้งานแล้วใน Amazon SageMaker JumpStart | Amazon Web Services PlatoBlockchain ข้อมูลอัจฉริยะ ค้นหาแนวตั้ง AI.ดร.ไคล์ อูลริช เป็นนักวิทยาศาสตร์ประยุกต์กับทีม Amazon SageMaker JumpStart งานวิจัยที่เขาสนใจ ได้แก่ อัลกอริธึมแมชชีนเลิร์นนิงที่ปรับขนาดได้ คอมพิวเตอร์วิทัศน์ อนุกรมเวลา เบส์ที่ไม่ใช่พารามิเตอร์ และกระบวนการเกาส์เซียน ปริญญาเอกของเขามาจาก Duke University และเขาได้ตีพิมพ์บทความใน NeurIPS, Cell และ Neuron

Code Llama 70B พร้อมใช้งานแล้วใน Amazon SageMaker JumpStart | Amazon Web Services PlatoBlockchain ข้อมูลอัจฉริยะ ค้นหาแนวตั้ง AI.ดร.ฟารุค ซาบีร์ เป็นสถาปนิกอาวุโสด้านปัญญาประดิษฐ์และผู้เชี่ยวชาญด้านการเรียนรู้ของเครื่องที่ AWS เขาสำเร็จการศึกษาระดับปริญญาเอกและปริญญาโทสาขาวิศวกรรมไฟฟ้าจากมหาวิทยาลัยเทกซัสออสติน และปริญญาโทสาขาวิทยาการคอมพิวเตอร์จากสถาบันเทคโนโลยีจอร์เจีย เขามีประสบการณ์การทำงานมากกว่า 15 ปี และยังชอบสอนและให้คำปรึกษาแก่นักศึกษาอีกด้วย ที่ AWS เขาช่วยลูกค้ากำหนดและแก้ปัญหาทางธุรกิจในด้านวิทยาศาสตร์ข้อมูล การเรียนรู้ของเครื่อง คอมพิวเตอร์วิทัศน์ ปัญญาประดิษฐ์ การเพิ่มประสิทธิภาพเชิงตัวเลข และโดเมนที่เกี่ยวข้อง เขาและครอบครัวอาศัยอยู่ในเมืองดัลลัส รัฐเท็กซัส รักการเดินทางและเดินทางไกล

Code Llama 70B พร้อมใช้งานแล้วใน Amazon SageMaker JumpStart | Amazon Web Services PlatoBlockchain ข้อมูลอัจฉริยะ ค้นหาแนวตั้ง AI.จูน วอน เป็นผู้จัดการผลิตภัณฑ์ของ SageMaker JumpStart เขามุ่งเน้นที่การสร้างแบบจำลองพื้นฐานที่ค้นพบได้ง่ายและใช้งานได้ เพื่อช่วยลูกค้าสร้างแอปพลิเคชัน AI เชิงกำเนิด ประสบการณ์ของเขาที่ Amazon ยังรวมถึงแอปพลิเคชันการช็อปปิ้งบนมือถือและการจัดส่งในระยะทางสุดท้าย

ประทับเวลา:

เพิ่มเติมจาก AWS Machine Learning AWS

Prodege ช่วยประหยัดค่าใช้จ่ายในการตรวจสอบโดยเจ้าหน้าที่ประจำปีได้ 1.5 ล้านเหรียญโดยใช้คอมพิวเตอร์วิทัศน์ AI ที่มีโค้ดต่ำ

โหนดต้นทาง: 1753024
ประทับเวลา: พฤศจิกายน 10, 2022