Inteligencja danych Platona.
Wyszukiwanie w pionie i AI.

Databricks DBRX jest teraz dostępny w Amazon SageMaker JumpStart | Usługi internetowe Amazona

Data:

Dziś z radością ogłaszamy, że Model DBRX, otwarty, uniwersalny model dużego języka (LLM) opracowany przez Pamięci danych, jest dostępny dla klientów za pośrednictwem Amazon SageMaker JumpStart wdrożyć jednym kliknięciem, aby uruchomić wnioskowanie. DBRX LLM wykorzystuje drobnoziarnistą architekturę złożoną z ekspertów (MoE), wstępnie przeszkoloną na 12 bilionach tokenów starannie dobranych danych i o maksymalnej długości kontekstu wynoszącej 32,000 XNUMX tokenów.

Możesz wypróbować ten model za pomocą SageMaker JumpStart, centrum uczenia maszynowego (ML), które zapewnia dostęp do algorytmów i modeli, dzięki czemu możesz szybko rozpocząć korzystanie z ML. W tym poście opisujemy, jak odkryć i wdrożyć model DBRX.

Jaki jest model DBRX

DBRX to wyrafinowany LLM przeznaczony wyłącznie do dekodera, zbudowany na architekturze transformatorowej. Wykorzystuje drobnoziarnistą architekturę MoE, obejmującą łącznie 132 miliardy parametrów, z których 36 miliardów jest aktywnych dla dowolnego wejścia.

Model przeszedł wstępne szkolenie przy użyciu zbioru danych składającego się z 12 bilionów tokenów tekstu i kodu. W przeciwieństwie do innych otwartych modeli MoE, takich jak Mixtral i Grok-1, DBRX charakteryzuje się szczegółowym podejściem, wykorzystującym większą liczbę mniejszych ekspertów w celu zoptymalizowania wydajności. W porównaniu do innych modeli MoE, DBRX ma 16 ekspertów i wybiera 4.

Model udostępniany jest na licencji Databricks Open Model, do wykorzystania bez ograniczeń.

Co to jest SageMaker JumpStart

SageMaker JumpStart to w pełni zarządzana platforma oferująca najnowocześniejsze modele podstawowe do różnych zastosowań, takich jak pisanie treści, generowanie kodu, odpowiadanie na pytania, copywriting, podsumowywanie, klasyfikacja i wyszukiwanie informacji. Zapewnia kolekcję wstępnie wytrenowanych modeli, które można szybko i łatwo wdrożyć, przyspieszając tworzenie i wdrażanie aplikacji ML. Jednym z kluczowych komponentów SageMaker JumpStart jest Model Hub, który oferuje obszerny katalog wstępnie wyszkolonych modeli, takich jak DBRX, do różnych zadań.

Możesz teraz odkrywać i wdrażać modele DBRX za pomocą kilku kliknięć Studio Amazon SageMaker lub programowo za pomocą zestawu SDK SageMaker Python, umożliwiając uzyskanie wydajności modelu i kontroli MLOps Amazon Sage Maker funkcje takie jak Rurociągi Amazon SageMaker, Debuger Amazon SageMakerlub dzienniki kontenerów. Model jest wdrażany w bezpiecznym środowisku AWS i pod kontrolą VPC, pomagając zapewnić bezpieczeństwo danych.

Odkryj modele w SageMaker JumpStart

Dostęp do modelu DBRX można uzyskać poprzez SageMaker JumpStart w interfejsie użytkownika SageMaker Studio i SageMaker Python SDK. W tej sekcji omówimy, jak odkryć modele w SageMaker Studio.

SageMaker Studio to zintegrowane środowisko programistyczne (IDE) zapewniające pojedynczy internetowy interfejs wizualny, w którym można uzyskać dostęp do specjalnie zaprojektowanych narzędzi umożliwiających wykonanie wszystkich etapów programowania ML, od przygotowania danych po budowanie, trenowanie i wdrażanie modeli ML. Aby uzyskać więcej informacji na temat rozpoczęcia i konfiguracji SageMaker Studio, zobacz Studio Amazon SageMaker.

W SageMaker Studio możesz uzyskać dostęp do SageMaker JumpStart, wybierając Szybki start w okienku nawigacji.

Na stronie docelowej SageMaker JumpStart możesz wyszukać „DBRX” w polu wyszukiwania. Wyniki wyszukiwania zostaną wyświetlone Instrukcja DBRX i Baza DBRX.

Możesz wybrać kartę modelu, aby wyświetlić szczegółowe informacje na temat modelu, takie jak licencja, dane użyte do uczenia i sposób korzystania z modelu. Znajdziesz tu także Rozmieścić przycisk, aby wdrożyć model i utworzyć punkt końcowy.

Wdróż model w SageMaker JumpStart

Wdrożenie rozpoczyna się po wybraniu Rozmieścić przycisk. Po zakończeniu wdrażania zobaczysz, że utworzono punkt końcowy. Punkt końcowy można przetestować, przekazując przykładowy ładunek żądania wnioskowania lub wybierając opcję testowania przy użyciu zestawu SDK. Po wybraniu opcji użycia pakietu SDK zobaczysz przykładowy kod, którego możesz użyć w wybranym edytorze notatników w SageMaker Studio.

Baza DBRX

Aby wdrożyć za pomocą zestawu SDK, zaczynamy od wybrania modelu podstawowego DBRX określonego przez model_id z wartością huggingface-llm-dbrx-base. Możesz wdrożyć dowolny z wybranych modeli w SageMaker za pomocą poniższego kodu. Podobnie możesz wdrożyć DBRX Instruct przy użyciu własnego identyfikatora modelu.

from sagemaker.jumpstart.model import JumpStartModel

accept_eula = True

model = JumpStartModel(model_id="huggingface-llm-dbrx-base")
predictor = model.deploy(accept_eula=accept_eula)

Spowoduje to wdrożenie modelu w SageMaker z domyślnymi konfiguracjami, w tym domyślnym typem instancji i domyślnymi konfiguracjami VPC. Można zmienić te konfiguracje, określając wartości inne niż domyślne w Model JumpStart. Aby zaakceptować umowę licencyjną użytkownika końcowego (EULA), wartość Eula musi być jawnie zdefiniowana jako True. Upewnij się także, że masz limit usług na poziomie konta umożliwiający używanie ml.p4d.24xlarge lub ml.pde.24xlarge do użycia punktu końcowego jako jednej lub większej liczby instancji. Możesz postępować zgodnie z instrukcjami tutaj w celu złożenia wniosku o zwiększenie limitu usług.

Po wdrożeniu możesz uruchomić wnioskowanie na temat wdrożonego punktu końcowego za pomocą predyktora SageMaker:

payload = {
    "inputs": "Hello!",
    "parameters": {
        "max_new_tokens": 10,
    },
}
predictor.predict(payload)

Przykładowe monity

Z modelem bazowym DBRX można wchodzić w interakcję jak z każdym standardowym modelem generowania tekstu, w którym model przetwarza sekwencję wejściową i wyprowadza przewidywane kolejne słowa w sekwencji. W tej sekcji podajemy kilka przykładowych podpowiedzi i przykładowe dane wyjściowe.

Generowanie kodu

Korzystając z poprzedniego przykładu, możemy użyć podpowiedzi generowania kodu w następujący sposób:

payload = { 
      "inputs": "Write a function to read a CSV file in Python using pandas library:", 
      "parameters": { 
          "max_new_tokens": 30, }, } 
           response = predictor.predict(payload)["generated_text"].strip() 
           print(response)

Poniżej przedstawiono dane wyjściowe:

import pandas as pd 
df = pd.read_csv("file_name.csv") 
#The above code will import pandas library and then read the CSV file using read_csv

Analiza sentymentów

Analizę nastrojów można przeprowadzić za pomocą podpowiedzi podobnej do poniższej w przypadku DBRX:

payload = {
"inputs": """
Tweet: "I am so excited for the weekend!"
Sentiment: Positive

Tweet: "Why does traffic have to be so terrible?"
Sentiment: Negative

Tweet: "Just saw a great movie, would recommend it."
Sentiment: Positive

Tweet: "According to the weather report, it will be cloudy today."
Sentiment: Neutral

Tweet: "This restaurant is absolutely terrible."
Sentiment: Negative

Tweet: "I love spending time with my family."
Sentiment:""",
"parameters": {
"max_new_tokens": 2,
},
}
response = predictor.predict(payload)["generated_text"].strip()
print(response)

Poniżej przedstawiono dane wyjściowe:

Odpowiadanie na pytania

W przypadku DBRX możesz użyć pytania z odpowiedzią na pytanie, jak poniżej:

# Question answering
payload = {
    "inputs": "Respond to the question: How did the development of transportation systems, such as railroads and steamships, impact global trade and cultural exchange?",
    "parameters": {
        "max_new_tokens": 225,
    },
}
response = predictor.predict(payload)["generated_text"].strip()
print(response)

Poniżej przedstawiono dane wyjściowe:

The development of transportation systems, such as railroads and steamships, impacted global trade and cultural exchange in a number of ways. 
The documents provided show that the development of these systems had a profound effect on the way people and goods were able to move around the world. 
One of the most significant impacts of the development of transportation systems was the way it facilitated global trade. 
The documents show that the development of railroads and steamships made it possible for goods to be transported more quickly and efficiently than ever before. 
This allowed for a greater exchange of goods between different parts of the world, which in turn led to a greater exchange of ideas and cultures. 
Another impact of the development of transportation systems was the way it facilitated cultural exchange. The documents show that the development of railroads and steamships made it possible for people to travel more easily and quickly than ever before. 
This allowed for a greater exchange of ideas and cultures between different parts of the world. Overall, the development of transportation systems, such as railroads and steamships, had a profound impact on global trade and cultural exchange.

Instrukcja DBRX

Wersja DBRX dostosowana do instrukcji akceptuje sformatowane instrukcje, w których role konwersacyjne muszą rozpoczynać się od podpowiedzi użytkownika i naprzemiennie zawierać instrukcje użytkownika i asystenta (instrukcja DBRX). Należy ściśle przestrzegać formatu instrukcji, w przeciwnym razie model będzie generował nieoptymalne wyniki. Szablon do zbudowania podpowiedzi dla modelu Instruct jest zdefiniowany w następujący sposób:

<|im_start|>system
{system_message} <|im_end|>
<|im_start|>user
{human_message} <|im_end|>
<|im_start|>assistantn

<|im_start|> i <|im_end|> to specjalne tokeny początku łańcucha (BOS) i końca łańcucha (EOS). Model może zawierać wiele zwrotów konwersacji pomiędzy systemem, użytkownikiem i asystentem, co pozwala na włączenie kilku przykładów w celu ulepszenia odpowiedzi modelu.

Poniższy kod pokazuje, jak sformatować zachętę w formacie instrukcji:

from typing import Dict, List

def format_instructions(instructions: List[Dict[str, str]]) -> List[str]:
    """Format instructions where conversation roles must alternate system/user/assistant/user/assistant/..."""
    prompt: List[str] = []
    for instruction in instructions:
        if instruction["role"] == "system":
            prompt.extend(["<|im_start|>systemn", (instruction["content"]).strip(), " <|im_end|>n"])
        elif instruction["role"] == "user":
            prompt.extend(["<|im_start|>usern", (instruction["content"]).strip(), " <|im_end|>n"])
        else:
            raise ValueError(f"Invalid role: {instruction['role']}. Role must be either 'user' or 'system'.")
    prompt.extend(["<|im_start|>assistantn"])
    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['generated_text'].strip()}n")

Wyszukiwanie wiedzy

Do wyszukiwania wiedzy możesz użyć następującego monitu:

instructions = [
{"role": "system", "content": "You are an expert in suggesting diet plans optimized for different sports or fitness activities, taking into account energy requirements, and recovery requirements."},
{"role": "user", "content": "I am trying to build muscle mass and increase my strength. What kind of high-protein, calorie-dense diet plan would you recommend for me?"}
]
prompt = format_instructions(instructions)
payload = {
"inputs": prompt,
"parameters": {"max_new_tokens": 700, "temperature": 0.5, "do_sample": True}
}
response=predictor.predict(payload)
print_instructions(prompt, response)

Poniżej przedstawiono dane wyjściowe:

> Input
<|im_start|>system
You are an expert in suggesting diet plans optimized for different sports or fitness activities, taking into account energy requirements, and recovery requirements. <|im_end|>
<|im_start|>user
I am trying to build muscle mass and increase my strength. What kind of high-protein, calorie-dense diet plan would you recommend for me? <|im_end|>
<|im_start|>assistant

> Output
Absolutely, I'd be happy to help you with that. Given your goal of building muscle mass and increasing strength, you'll want a diet that's high in protein and provides sufficient calories to support muscle growth and recovery. Here's a basic outline of what your diet plan could look like:

1. **Breakfast:**
   - 3 whole eggs
   - 3 egg whites
   - 1 cup of oatmeal
   - 1 scoop of whey protein
   - 1 banana

2. **Mid-Morning Snack:**
   - 1.5 ounces of almonds
   - 1 apple

3. **Lunch:**
   - 8 ounces of chicken breast
   - 1 cup of brown rice
   - 1 cup of mixed vegetables

4. **Afternoon Snack:**
   - 1.5 cups of Greek yogurt
   - 1 cup of mixed berries

5. **Dinner:**
   - 8 ounces of salmon or lean beef
   - 1 cup of quinoa
   - 1.5 cups of mixed vegetables

6. **Evening Snack:**
   - 1 scoop of casein protein
   - 1 tablespoon of almond butter

This is a high-protein, calorie-dense diet that includes a variety of nutrient-rich foods. It's important to note that everyone's nutritional needs are different, so you may need to adjust portion sizes or food choices based on your specific needs and preferences.

Also, remember to stay hydrated by drinking plenty of water throughout the day. Regular exercise, particularly strength training, is crucial to achieving your goals. It's also important to get enough sleep to aid in muscle recovery and growth.

Before starting any new diet or exercise program, it's a good idea to consult with a healthcare professional or a registered dietitian. They can provide personalized advice based on your health history and current lifestyle.

Generowanie kodu

Modele DBRX wykazują porównawcze mocne strony w zadaniach kodowania. Na przykład spójrz na następujący kod:

instructions = [ 
{"role": "system", "content": "You are an expert in coding and programming. Your role is to provide examples, explanations, and insights related to programming languages, algorithms, data structures, and software development practices."}, 
{"role": "user", "content": "Write a Python script to read a CSV file containing stock prices and plot the closing prices over time using Matplotlib."} 
] 
prompt = format_instructions(instructions) 
payload = { "inputs": prompt, "parameters": {"max_new_tokens": 315, "temperature": 0.3, "do_sample": True} } 
response=predictor.predict(payload) 
print_instructions(prompt, response)

Poniżej przedstawiono dane wyjściowe:

> Input
<|im_start|>system
You are an expert in coding and programming. Your role is to provide examples, explanations, and insights related to programming languages, algorithms, data structures, and software development practices. <|im_end|>
<|im_start|>user
Write a Python script to read a CSV file containing stock prices and plot the closing prices over time using Matplotlib. <|im_end|>
<|im_start|>assistant

> Output
Sure, I'd be happy to help you with that. Here's a simple Python script that uses the `pandas` library to read a CSV file and `matplotlib` to plot the closing prices over time.

```python
import pandas as pd
import matplotlib.pyplot as plt

# Load the data from a CSV file
df = pd.read_csv('stock_prices.csv')

# Plot the closing prices over time
plt.figure(figsize=(12,5))
plt.plot(df['Date'], df['Close'])
plt.xlabel('Date')
plt.ylabel('Price')
plt.title('Stock Prices Over Time')
plt.show()
```

In this script, replace `'stock_prices.csv'` with the path to your CSV file. The file should have columns named 'Date' and 'Close' for this script to work correctly. If your file uses different column names, you'll need to adjust the script accordingly.

The `pandas` library is a powerful tool for data manipulation and analysis. It can read data from a variety of sources, including CSV files, and represent the data in a tabular format. The `matplotlib` library is a popular choice for creating static, animated, and interactive visualizations in Python.

This script first loads the data from the CSV file into a pandas DataFrame. It then plots the 'Close' column against the 'Date' column using matplotlib's `plot()` function. The `figure()` function is used to specify the size of the plot, and `show()` is used to display the plot.

Matematyka i rozumowanie

Modele DBRX wykazują również mocne strony w zakresie dokładności matematycznej. Na przykład spójrz na następujący kod:

instructions = [
  {"role": "system", "content": "You are an expert in mathematics and reasoning. Your role is to provide examples, explanations, and insights related to mathematical concepts, problem-solving techniques, and logical reasoning."},
  {"role": "user", "content": "A car rental company charges $40 per day plus $0.25 per mile driven. If I rented a car for 3 days and drove 250 miles, what would be the total cost? Break down the calculation steps before giving the final answer."}
]
prompt = format_instructions(instructions)
payload = {
"inputs": prompt,
"parameters": {"max_new_tokens": 400, "temperature": 0.2, "do_sample": True}
}
response=predictor.predict(payload)
print_instructions(prompt, response)

DBRX może zapewnić zrozumienie, jak pokazano w poniższych wynikach, z logiką matematyczną:

> Input
<|im_start|>system
You are an expert in mathematics and reasoning. Your role is to provide examples, explanations, and insights related to mathematical concepts, problem-solving techniques, and logical reasoning. <|im_end|>
<|im_start|>user
A car rental company charges $40 per day plus $0.25 per mile driven. If I rented a car for 3 days and drove 250 miles, what would be the total cost? Break down the calculation steps before giving the final answer. <|im_end|>
<|im_start|>assistant

> Output
Sure, I'd be happy to help with that! The problem you've presented involves both fixed costs (the daily rate) and variable costs (the cost per mile). Let's break it down:

1. First, let's calculate the total cost of the fixed daily rate. The car rental company charges $40 per day, and you rented the car for 3 days. So, the total cost for the daily rate is $40/day * 3 days = $120.

2. Next, let's calculate the total cost of the variable rate, which is the cost per mile driven. The company charges $0.25 per mile, and you drove 250 miles. So, the total cost for the mileage is $0.25/mile * 250 miles = $62.50.

3. Finally, to find the total cost of renting the car, we add the total cost of the daily rate and the total cost of the mileage. So, the total cost is $120 + $62.50 = $182.50.

So, the total cost of renting the car for 3 days and driving 250 miles would be $182.50.

Sprzątać

Po zakończeniu uruchamiania notatnika pamiętaj o usunięciu wszystkich zasobów utworzonych w trakcie procesu, aby zatrzymać rozliczenia. Użyj następującego kodu:

predictor.delete_model()
predictor.delete_endpoint()

Wnioski

W tym poście pokazaliśmy, jak rozpocząć pracę z DBRX w SageMaker Studio i wdrożyć model na potrzeby wnioskowania. Ponieważ modele podstawowe są wstępnie wytrenowane, mogą pomóc w obniżeniu kosztów szkoleń i infrastruktury oraz umożliwić dostosowanie do konkretnego przypadku użycia. Aby rozpocząć, odwiedź teraz SageMaker JumpStart w SageMaker Studio.

Zasoby


O autorach

Szikhara Kwatry jest architektem rozwiązań specjalistycznych AI/ML w Amazon Web Services, współpracującym z wiodącym globalnym integratorem systemów. Zdobył tytuł jednego z najmłodszych indyjskich mistrzów wynalazców dzięki ponad 400 patentom w obszarach AI/ML i IoT. Ma ponad 8-letnie doświadczenie w branży, od start-upów po duże przedsiębiorstwa, od inżyniera ds. badań IoT, analityka danych, po architekta danych i sztucznej inteligencji. Shikhar pomaga w projektowaniu, budowaniu i utrzymywaniu ekonomicznych, skalowalnych środowisk chmurowych dla organizacji oraz wspiera partnerów GSI w budowaniu strategicznego przemysłu

Niithiyn Vijeaswaran jest architektem rozwiązań w AWS. Jego obszar zainteresowań to generatywna sztuczna inteligencja i akceleratory AWS AI. Posiada tytuł licencjata w dziedzinie informatyki i bioinformatyki. Niithiyn ściśle współpracuje z zespołem Generative AI GTM, aby umożliwić klientom AWS na wielu frontach i przyspieszyć ich wdrażanie generatywnej sztucznej inteligencji. Jest zagorzałym fanem Dallas Mavericks i lubi kolekcjonować trampki.

Sebastiana Bustillo jest architektem rozwiązań w AWS. Koncentruje się na technologiach AI/ML z głęboką pasją do generatywnej sztucznej inteligencji i akceleratorów obliczeniowych. W AWS pomaga klientom odblokować wartość biznesową dzięki generatywnej sztucznej inteligencji. Kiedy nie jest w pracy, lubi parzyć idealną kawę specialty i zwiedzać świat z żoną.

Armanda Diaza jest architektem rozwiązań w AWS. Koncentruje się na generatywnej sztucznej inteligencji, AI/ML i analizie danych. W AWS Armando pomaga klientom integrować najnowocześniejsze możliwości generatywnej sztucznej inteligencji z ich systemami, wspierając innowacje i przewagę konkurencyjną. Kiedy nie jest w pracy, lubi spędzać czas z żoną i rodziną, wędrować i podróżować po świecie.

spot_img

Najnowsza inteligencja

spot_img

Czat z nami

Cześć! Jak mogę ci pomóc?