Mixtral-8x7B hiện có sẵn trong Amazon SageMaker JumpStart | Dịch vụ web của Amazon

Mixtral-8x7B hiện có sẵn trong Amazon SageMaker JumpStart | Dịch vụ web của Amazon

Hôm nay, chúng tôi vui mừng thông báo rằng Hỗn hợp-8x7B mô hình ngôn ngữ lớn (LLM), được phát triển bởi Mistral AI, có sẵn cho khách hàng thông qua Khởi động Amazon SageMaker để triển khai chỉ bằng một cú nhấp chuột để chạy suy luận. Mixtral-8x7B LLM là sự kết hợp thưa thớt được đào tạo trước của mô hình chuyên gia, dựa trên đường trục tham số 7 tỷ với tám chuyên gia trên mỗi lớp chuyển tiếp nguồn cấp dữ liệu. Bạn có thể dùng thử mô hình này với SageMaker JumpStart, một trung tâm máy học (ML) cung cấp quyền truy cập vào các thuật toán và mô hình để bạn có thể nhanh chóng bắt đầu với ML. Trong bài đăng này, chúng tôi hướng dẫn cách khám phá và triển khai mô hình Mixtral-8x7B.

Mixtral-8x7B là gì

Mixtral-8x7B là mô hình nền tảng được phát triển bởi Mistral AI, hỗ trợ văn bản tiếng Anh, tiếng Pháp, tiếng Đức, tiếng Ý và tiếng Tây Ban Nha, với khả năng tạo mã. Nó hỗ trợ nhiều trường hợp sử dụng khác nhau như tóm tắt văn bản, phân loại, hoàn thành văn bản và hoàn thành mã. Nó hoạt động tốt trong chế độ trò chuyện. Để chứng minh khả năng tùy chỉnh đơn giản của mô hình, Mistral AI cũng đã phát hành mô hình hướng dẫn Mixtral-8x7B cho các trường hợp sử dụng trò chuyện, được tinh chỉnh bằng nhiều bộ dữ liệu hội thoại có sẵn công khai. Các mô hình Mixtral có độ dài ngữ cảnh lớn lên tới 32,000 mã thông báo.

Mixtral-8x7B cung cấp những cải tiến hiệu suất đáng kể so với các mẫu máy tiên tiến nhất trước đây. Sự kết hợp thưa thớt của kiến ​​trúc chuyên gia cho phép nó đạt được kết quả hiệu suất tốt hơn trên 9 trên 12 điểm chuẩn xử lý ngôn ngữ tự nhiên (NLP) được thử nghiệm bởi trí tuệ nhân tạo. Mixtral phù hợp hoặc vượt quá hiệu suất của các mô hình gấp 10 lần kích thước của nó. Bằng cách chỉ sử dụng một phần nhỏ tham số trên mỗi mã thông báo, nó đạt được tốc độ suy luận nhanh hơn và chi phí tính toán thấp hơn so với các mô hình dày đặc có kích thước tương đương—ví dụ: với tổng số 46.7 tỷ tham số nhưng chỉ có 12.9 tỷ tham số được sử dụng cho mỗi mã thông báo. Sự kết hợp giữa hiệu suất cao, hỗ trợ đa ngôn ngữ và hiệu quả tính toán khiến Mixtral-8x7B trở thành lựa chọn hấp dẫn cho các ứng dụng NLP.

Mô hình này được cung cấp theo giấy phép Apache 2.0 cho phép sử dụng mà không bị hạn chế.

Khởi động SageMaker là gì

Với SageMaker JumpStart, những người thực hành ML có thể chọn từ danh sách ngày càng nhiều các mô hình nền tảng hoạt động tốt nhất. Những người thực hành ML có thể triển khai các mô hình nền tảng cho các mục đích chuyên dụng Amazon SageMaker các phiên bản trong môi trường mạng biệt lập và tùy chỉnh các mô hình bằng SageMaker để đào tạo và triển khai mô hình.

Bây giờ bạn có thể khám phá và triển khai Mixtral-8x7B chỉ bằng vài cú nhấp chuột trong Xưởng sản xuất Amazon SageMaker hoặc lập trình thông qua SageMaker Python SDK, cho phép bạn lấy được hiệu suất mô hình và các điều khiển MLOps bằng các tính năng của SageMaker như Đường ống Amazon SageMaker, Trình gỡ lỗi Amazon SageMakerhoặc nhật ký vùng chứa. Mô hình này được triển khai trong môi trường bảo mật AWS và dưới sự kiểm soát VPC của bạn, giúp đảm bảo tính bảo mật dữ liệu.

Khám phá các mô hình

Bạn có thể truy cập các mô hình nền tảng Mixtral-8x7B thông qua SageMaker JumpStart trong giao diện người dùng SageMaker Studio và SageMaker Python SDK. Trong phần này, chúng ta sẽ tìm hiểu cách khám phá các mô hình trong SageMaker Studio.

SageMaker Studio là một môi trường phát triển tích hợp (IDE) cung cấp một giao diện trực quan dựa trên web duy nhất, nơi bạn có thể truy cập các công cụ chuyên dụng để thực hiện tất cả các bước phát triển ML, từ chuẩn bị dữ liệu đến xây dựng, đào tạo và triển khai các mô hình ML của bạn. Để biết thêm chi tiết về cách bắt đầu và thiết lập SageMaker Studio, hãy tham khảo Xưởng sản xuất Amazon SageMaker.

Trong SageMaker Studio, bạn có thể truy cập SageMaker JumpStart bằng cách chọn Khởi động trong khung điều hướng.

Mixtral-8x7B hiện có sẵn trên Amazon SageMaker JumpStart | Dịch vụ web của Amazon PlatoThông minh dữ liệu Blockchain. Tìm kiếm dọc. Ái.

Từ trang đích SageMaker JumpStart, bạn có thể tìm kiếm “Mixtral” trong hộp tìm kiếm. Bạn sẽ thấy kết quả tìm kiếm hiển thị Mixtral 8x7B và Mixtral 8x7B Instruct.

Mixtral-8x7B hiện có sẵn trên Amazon SageMaker JumpStart | Dịch vụ web của Amazon PlatoThông minh dữ liệu Blockchain. Tìm kiếm dọc. Ái.

Bạn có thể chọn thẻ mô hình để xem thông tin chi tiết về mô hình như giấy phép, dữ liệu dùng để đào tạo và cách sử dụng. Bạn cũng sẽ tìm thấy Triển khai mà bạn có thể sử dụng để triển khai mô hình và tạo điểm cuối.

Mixtral-8x7B hiện có sẵn trên Amazon SageMaker JumpStart | Dịch vụ web của Amazon PlatoThông minh dữ liệu Blockchain. Tìm kiếm dọc. Ái.

Triển khai một mô hình

Triển khai bắt đầu khi bạn chọn Triển khai. Sau khi triển khai kết thúc, điểm cuối của bạn đã được tạo. Bạn có thể kiểm tra điểm cuối bằng cách chuyển trọng tải yêu cầu suy luận mẫu hoặc chọn tùy chọn thử nghiệm bằng SDK. Khi chọn tùy chọn sử dụng SDK, bạn sẽ thấy mã mẫu mà bạn có thể sử dụng trong trình chỉnh sửa sổ ghi chép ưa thích của mình trong SageMaker Studio.

Để triển khai bằng SDK, chúng tôi bắt đầu bằng cách chọn mô hình Mixtral-8x7B, được chỉ định bởi model_id with value huggingface-llm-mixtral-8x7b. Bạn có thể triển khai bất kỳ mô hình nào đã chọn trên SageMaker bằng mã sau. Tương tự, bạn có thể triển khai hướng dẫn Mixtral-8x7B bằng ID model của chính nó:

from sagemaker.jumpstart.model import JumpStartModel model = JumpStartModel(model_id="huggingface-llm-mixtral-8x7b")
predictor = model.deploy()

Việc này sẽ triển khai mô hình trên SageMaker với các cấu hình mặc định, bao gồm loại phiên bản mặc định và cấu hình VPC mặc định. Bạn có thể thay đổi các cấu hình này bằng cách chỉ định các giá trị không mặc định trong JumpStartMô hình.

Sau khi triển khai, bạn có thể chạy suy luận dựa trên điểm cuối đã triển khai thông qua bộ dự đoán SageMaker:

payload = {"inputs": "Hello!"} predictor.predict(payload)

Lời nhắc ví dụ

Bạn có thể tương tác với mô hình Mixtral-8x7B giống như bất kỳ mô hình tạo văn bản tiêu chuẩn nào, trong đó mô hình xử lý chuỗi đầu vào và xuất ra các từ tiếp theo được dự đoán trong chuỗi. Trong phần này, chúng tôi cung cấp lời nhắc ví dụ.

Tạo mã

Sử dụng ví dụ trước, chúng ta có thể sử dụng lời nhắc tạo mã như sau:

# Code generation
payload = { "inputs": "Write a program to compute factorial in python:", "parameters": { "max_new_tokens": 200, },
}
predictor.predict(payload)

Bạn nhận được đầu ra sau:

Input Text: Write a program to compute factorial in python:
Generated Text:
Factorial of a number is the product of all the integers from 1 to that number. For example, factorial of 5 is 1*2*3*4*5 = 120. Factorial of 0 is 1. Factorial of a negative number is not defined. The factorial of a number can be written as n!. For example, 5! = 120. ## Write a program to compute factorial in python ```
def factorial(n):
if n == 0:
return 1
else:
return n * factorial(n-1) print(factorial(5))
``` Output: ```
120
``` ## Explanation: In the above program, we have defined a function called factorial which takes a single argument n. If n is equal to 0, then we return 1. Otherwise, we return n multiplied by the factorial of n-1. We then call the factorial function with the argument 5 and print the result. The output of the program is 120, which is the factorial of 5. ## How to compute factorial in python In the above program, we have used a recursive function to compute the factorial of a number. A recursive function is a function that calls itself. In this case, the factorial function calls itself with the argument n-1. This process continues until n is equal to 0, at which point the function returns 1. The factorial of a number can also be computed using a loop. For example, the following program uses a for loop to compute the factorial of a number: ```
def factorial(n):
result = 1
for i in range(1, n+1):
result *= i
return result

Lời nhắc phân tích tình cảm

Bạn có thể thực hiện phân tích cảm tính bằng lời nhắc như sau với Mixtral 8x7B:

payload = { "inputs": """
Tweet: "I hate it when my phone battery dies."
Sentiment: Negative Tweet: "My day has been :+1:"
Sentiment: Positive Tweet: "This is the link to the article"
Sentiment: Neutral Tweet: "This new music video was incredibile"
Sentiment:""", "parameters": { "max_new_tokens": 2,
},
}
predictor.predict(payload)

Bạn nhận được đầu ra sau:

Input Text: Tweet: "I hate it when my phone battery dies."
Sentiment: Negative
###
Tweet: "My day has been :+1:"
Sentiment: Positive
###
Tweet: "This is the link to the article"
Sentiment: Neutral
###
Tweet: "This new music video was incredibile"
Sentiment:
Generated Text:  Positive

Gợi ý trả lời câu hỏi

Bạn có thể sử dụng lời nhắc trả lời câu hỏi như sau với Mixtral-8x7B:

# Question answering
payload = { "inputs": "Could you remind me when was the C programming language invented?", "parameters": { "max_new_tokens": 100, },
}
query_endpoint(payload)

Bạn nhận được đầu ra sau:

Input Text: Could you remind me when was the C programming language invented?
Generated Text: C was invented in 1972 by Dennis Ritchie at Bell Labs. C is a general-purpose programming language. It was invented to write the UNIX operating system. C is a structured programming language. It is a middle-level language. It is a procedural language. C is a compiled language. It is a portable language. C is a case-sensitive language. It is a free-form language

Hướng dẫn Mixtral-8x7B

Phiên bản được điều chỉnh theo hướng dẫn của Mixtral-8x7B chấp nhận các hướng dẫn được định dạng trong đó vai trò hội thoại phải bắt đầu bằng lời nhắc của người dùng và xen kẽ giữa hướng dẫn người dùng và trợ lý (câu trả lời mẫu). Định dạng hướng dẫn phải được tôn trọng nghiêm ngặt, nếu không mô hình sẽ tạo ra kết quả đầu ra dưới mức tối ưu. Mẫu được sử dụng để xây dựng lời nhắc cho mô hình Instruct được xác định như sau:

<s> [INST] Instruction [/INST] Model answer</s> [INST] Follow-up instruction [/INST]]

Lưu ý rằng <s></s> là các mã thông báo đặc biệt cho đầu chuỗi (BOS) và cuối chuỗi (EOS), trong khi [INST][/INST] là các chuỗi thông thường.

Đoạn mã sau cho thấy cách bạn có thể định dạng lời nhắc ở định dạng hướng dẫn:

from typing import Dict, List def format_instructions(instructions: List[Dict[str, str]]) -> List[str]: """Format instructions where conversation roles must alternate user/assistant/user/assistant/...""" prompt: List[str] = [] for user, answer in zip(instructions[::2], instructions[1::2]): prompt.extend(["<s>", "[INST] ", (user["content"]).strip(), " [/INST] ", (answer["content"]).strip(), "</s>"]) prompt.extend(["<s>", "[INST] ", (instructions[-1]["content"]).strip(), " [/INST] ","</s>"]) return "".join(prompt) def print_instructions(prompt: str, response: str) -> None: bold, unbold = '33[1m', '33[0m' print(f"{bold}> Input{unbold}n{prompt}nn{bold}> Output{unbold}n{response[0]['generated_text']}n")

Truy xuất kiến ​​thức

Bạn có thể sử dụng mã sau đây cho lời nhắc truy xuất kiến ​​thức:

instructions = [{"role": "user", "content": "what is the recipe of mayonnaise?"}]
prompt = format_instructions(instructions)
payload = { "inputs": prompt, "parameters": {"max_new_tokens": 315, "do_sample": True}
}
response=predictor.predict(payload)
print_instructions(prompt, response)

Bạn nhận được đầu ra sau:

> Input
<s>[INST] what is the recipe of mayonnaise? [/INST]</s> > Output
Here is a simple recipe for homemade mayonnaise: Ingredients: * 1 egg yolk
* 1 tablespoon of mustard (Dijon is a good choice)
* 1 cup of oil (canola or vegetable oil work well)
* 1-2 tablespoons of white vinegar or lemon juice
* Salt to taste Instructions: 1. In a medium bowl, whisk together the egg yolk and mustard. It is important that these ingredients are at room temperature.
2. Start adding the oil drop by drop, whisking continuously. This step is crucial to ensure that the mayonnaise emulsifies and does not separate.
3. Once you have added about a quarter of the oil and the mixture has thickened, you can start adding the oil in a thin stream, still whisking constantly.
4. When all the oil has been incorporated and the mayonnaise is thick, whisk in the vinegar or lemon juice and salt to taste.
5. If the mayonnaise is too thick, you can thin it with a little water.
6. Store the mayonnaise in the refrigerator and use within a few days. Note: It is important to use pasteurized eggs or egg yolks when making homemade mayonnaise to reduce the risk of foodborne illness.

Lập trình

Các mô hình Mixtral có thể chứng minh sức mạnh được đánh giá chuẩn cho các tác vụ mã hóa, như được hiển thị trong đoạn mã sau:

instructions = [
{ "role": "user", "content": "In Bash, how do I list all text files in the current directory (excluding subdirectories) that have been modified in the last month?",
}
]
prompt = format_instructions(instructions)
payload = { "inputs": prompt, "parameters": {"max_new_tokens": 256, "do_sample": True, "temperature": 0.2}
}
response=predictor.predict(payload)
print_instructions(prompt, response)

Bạn nhận được đầu ra sau:

> Input
<s>[INST] In Bash, how do I list all text files in the current directory (excluding subdirectories) that have been modified in the last month? [/INST]</s>
> Output
ef{0.15cm} To list all text files in the current directory that have been modified in the last month, you can use a combination of the `find` and `grep` commands in Bash. Here's the command you're looking for: ```bash
find . -maxdepth 1 -type f -name "*.txt" -mtime -30
``` Let's break down this command: - `find .` starts a search in the current directory.
- `-maxdepth 1` limits the search to the current directory only (excluding subdirectories).
- `-type f` specifies that you're looking for files.
- `-name "*.txt"` filters the results to only include files with a `.txt` extension.
- `-mtime -30` filters the results to only include files modified within the last 30 days. This command will output the paths of all text files in the current directory that have been modified in the last month.

Toán học và lý luận

Các mô hình hỗn hợp cũng báo cáo điểm mạnh về độ chính xác trong toán học:

instructions = [
{ "role": "user", "content": "I bought an ice cream for 6 kids. Each cone was $1.25 and I paid with a $10 bill. How many dollars did I get back? Explain first before answering.",
}
]
prompt = format_instructions(instructions)
payload = { "inputs": prompt, "parameters": {"max_new_tokens": 600, "do_sample": True, "temperature": 0.2}
}
response=predictor.predict(payload)
print_instructions(prompt, response)

Các mô hình hỗn hợp có thể cung cấp khả năng hiểu như được hiển thị trong kết quả đầu ra sau đây với logic toán học:

> Input
<s>[INST] I bought an ice cream for 6 kids. Each cone was $1.25 and I paid with a $10 bill. How many dollars did I get back? Explain first before answering. [/INST] </s>
> Output
First, let's calculate the total cost of the ice cream cones. Since each cone costs $1.25 and you bought 6 cones, the total cost would be: Total cost = Cost per cone * Number of cones
Total cost = $1.25 * 6
Total cost = $7.50 Next, subtract the total cost from the amount you paid with the $10 bill to find out how much change you got back: Change = Amount paid - Total cost
Change = $10 - $7.50
Change = $2.50 So, you got $2.50 back.

Làm sạch

Sau khi chạy xong sổ ghi chép, hãy xóa tất cả tài nguyên bạn đã tạo trong quá trình này để việc thanh toán của bạn dừng lại. Sử dụng mã sau đây:

predictor.delete_model()
predictor.delete_endpoint()

Kết luận

Trong bài đăng này, chúng tôi đã hướng dẫn bạn cách bắt đầu với Mixtral-8x7B trong SageMaker Studio và triển khai mô hình để suy luận. Vì các mô hình nền tảng được đào tạo trước nên chúng có thể giúp giảm chi phí đào tạo và cơ sở hạ tầng, đồng thời cho phép tùy chỉnh cho trường hợp sử dụng của bạn. Hãy truy cập SageMaker JumpStart trong SageMaker Studio ngay bây giờ để bắt đầu.

Thông tin


Giới thiệu về tác giả

Mixtral-8x7B hiện có sẵn trên Amazon SageMaker JumpStart | Dịch vụ web của Amazon PlatoThông minh dữ liệu Blockchain. Tìm kiếm dọc. Ái.rachna chadha là Kiến trúc sư giải pháp chính AI/ML trong Tài khoản chiến lược tại AWS. Rachna là một người lạc quan tin rằng việc sử dụng AI có đạo đức và có trách nhiệm có thể cải thiện xã hội trong tương lai và mang lại sự thịnh vượng về kinh tế và xã hội. Khi rảnh rỗi, Rachna thích dành thời gian cho gia đình, đi bộ đường dài và nghe nhạc.

Mixtral-8x7B hiện có sẵn trên Amazon SageMaker JumpStart | Dịch vụ web của Amazon PlatoThông minh dữ liệu Blockchain. Tìm kiếm dọc. Ái.Tiến sĩ Kyle Ulrich là một nhà khoa học ứng dụng với Các thuật toán tích hợp sẵn của Amazon SageMaker đội. Lĩnh vực nghiên cứu của ông bao gồm các thuật toán học máy có thể mở rộng, thị giác máy tính, chuỗi thời gian, phi tham số Bayesian và quy trình Gaussian. Tiến sĩ của anh ấy đến từ Đại học Duke và anh ấy đã xuất bản các bài báo trên NeurIPS, Cell và Neuron.

Mixtral-8x7B hiện có sẵn trên Amazon SageMaker JumpStart | Dịch vụ web của Amazon PlatoThông minh dữ liệu Blockchain. Tìm kiếm dọc. Ái.Christopher Whitten là nhà phát triển phần mềm trong nhóm JumpStart. Anh ấy giúp lựa chọn mô hình theo tỷ lệ và tích hợp các mô hình với các dịch vụ SageMaker khác. Chris rất đam mê việc thúc đẩy sự phổ biến của AI trên nhiều lĩnh vực kinh doanh khác nhau.

Mixtral-8x7B hiện có sẵn trên Amazon SageMaker JumpStart | Dịch vụ web của Amazon PlatoThông minh dữ liệu Blockchain. Tìm kiếm dọc. Ái.Tiến sĩ Fabio Nonato de Paula là Giám đốc cấp cao, Chuyên gia GenAI SA, giúp các nhà cung cấp mô hình và khách hàng mở rộng quy mô AI tổng hợp trong AWS. Fabio có niềm đam mê dân chủ hóa khả năng tiếp cận công nghệ AI sáng tạo. Ngoài giờ làm việc, bạn có thể thấy Fabio lái mô tô trên những ngọn đồi ở Thung lũng Sonoma hoặc đọc ComiXology.

Mixtral-8x7B hiện có sẵn trên Amazon SageMaker JumpStart | Dịch vụ web của Amazon PlatoThông minh dữ liệu Blockchain. Tìm kiếm dọc. Ái.Tiến sĩ Ashish Khetan là Nhà khoa học ứng dụng cấp cao với các thuật toán tích hợp Amazon SageMaker và giúp phát triển các thuật toán máy học. Ông lấy bằng Tiến sĩ tại Đại học Illinois Urbana-Champaign. Ông là một nhà nghiên cứu tích cực về học máy và suy luận thống kê, đồng thời đã xuất bản nhiều bài báo tại các hội nghị NeurIPS, ICML, ICLR, JMLR, ACL và EMNLP.

Mixtral-8x7B hiện có sẵn trên Amazon SageMaker JumpStart | Dịch vụ web của Amazon PlatoThông minh dữ liệu Blockchain. Tìm kiếm dọc. Ái.Karl Albertsen lãnh đạo sản phẩm, kỹ thuật và khoa học cho Thuật toán Amazon SageMaker và JumpStart, trung tâm máy học của SageMaker. Anh đam mê áp dụng công nghệ máy học để mở khóa giá trị kinh doanh.

Dấu thời gian:

Thêm từ Học máy AWS