A Meta Code Llama kódgeneráló modelljei már elérhetőek az Amazon SageMaker JumpStart | Amazon webszolgáltatások

A Meta Code Llama kódgeneráló modelljei már elérhetőek az Amazon SageMaker JumpStart | Amazon webszolgáltatások

Ma örömmel jelentjük be, hogy a Meta által kifejlesztett Code Llama alapozó modellek elérhetőek az ügyfelek számára Amazon SageMaker JumpStart egy kattintással üzembe helyezhető a következtetés futtatásához. A Code Llama egy korszerű nagynyelvi modell (LLM), amely képes kódot és természetes nyelvet generálni a kódról mind a kódból, mind a természetes nyelvi promptokból. A Code Llama kutatási és kereskedelmi használatra ingyenes. Kipróbálhatja ezt a modellt a SageMaker JumpStarttal, egy gépi tanulási (ML) központtal, amely hozzáférést biztosít algoritmusokhoz, modellekhez és ML-megoldásokhoz, így gyorsan elkezdheti az ML használatát. Ebben a bejegyzésben bemutatjuk, hogyan lehet felfedezni és telepíteni a Code Llama modellt a SageMaker JumpStart segítségével.

Mi az a Code Llama

A Code Llama által kiadott modell meta amely a Llama 2-re épül, és egy korszerű modell, amelyet a fejlesztők programozási feladatainak termelékenységének javítására terveztek azáltal, hogy segíti őket kiváló minőségű, jól dokumentált kód létrehozásában. A modellek a legmodernebb teljesítményt mutatják Python, C++, Java, PHP, C#, TypeScript és Bash nyelven, és megtakaríthatják a fejlesztők idejét, és hatékonyabbá tehetik a szoftveres munkafolyamatokat. Három változatban kapható, amelyeket úgy terveztek, hogy az alkalmazások széles skáláját lefedjék: az alapmodell (Code Llama), egy Python-specifikus modell (Code Llama-Python) és egy utasítást követő modell a természetes nyelvi utasítások megértéséhez (Code Llama-Instruct). ). Minden Code Llama változat három méretben kapható: 7B, 13B és 34B paraméterekkel. A 7B és 13B alap- és utasításváltozatok támogatják a környező tartalom alapján történő kitöltést, így ideálisak kódsegéd alkalmazásokhoz.

A modelleket a Llama 2 alapján tervezték, majd 500 milliárd kódadat tokenre tanították, a Python speciális verzióját pedig növekményes 100 milliárd tokenre. A Code Llama modellek stabil generációkat biztosítanak akár 100,000 16,000 kontextusjelzővel. Minden modell 100,000 XNUMX tokenből álló sorozatokra van kiképezve, és akár XNUMX XNUMX tokennel is javítottak a bemeneteken.

A modell ugyanezen cím alatt érhető el közösségi engedély, mint Llama 2.

Mi az a SageMaker JumpStart

A SageMaker JumpStart segítségével az ML gyakorlói a legjobban teljesítő alapozó modellek egyre növekvő listájából választhatnak. Az ML gyakorlói alapmodelleket telepíthetnek dedikált Amazon SageMaker példányokat egy hálózattól elszigetelt környezetben, és testreszabhatja a modelleket a SageMaker segítségével a modell betanítására és telepítésére.

Most már néhány kattintással felfedezheti és telepítheti a Code Llama modelleket Amazon SageMaker Studio vagy programozottan a SageMaker Python SDK-n keresztül, lehetővé téve a modell teljesítményének és az MLOps vezérlők származtatását a SageMaker funkciókkal, mint pl. Amazon SageMaker csővezetékek, Amazon SageMaker Debuggervagy konténernaplókat. A modellt biztonságos AWS-környezetben és az Ön VPC-vezérlése alatt helyezik üzembe, így biztosítva az adatbiztonságot. A Code Llama modellek felfedezhetők és telepíthetők az Egyesült Államok keleti (Észak-Virginia), nyugati (Oregon) és európai (Írország) régióiban.

Az ügyfeleknek el kell fogadniuk az EULA-t a SageMaker SDK modellvízum telepítéséhez.

Fedezze fel a modelleket

A Code Llama alapozó modelleket a SageMaker JumpStart segítségével érheti el a SageMaker Studio UI-ban és a SageMaker Python SDK-ban. Ebben a részben áttekintjük, hogyan fedezheti fel a modelleket a SageMaker Stúdióban.

A SageMaker Studio egy integrált fejlesztői környezet (IDE), amely egyetlen web-alapú vizuális felületet biztosít, ahol hozzáférhet a célra épített eszközökhöz az ML fejlesztési lépések elvégzéséhez, az adatok előkészítésétől az ML modellek felépítéséig, betanításáig és telepítéséig. A SageMaker Studio megkezdésével és beállításával kapcsolatos további részletekért lásd: Amazon SageMaker Studio.

A SageMaker Studio alkalmazásban elérheti a SageMaker JumpStart programot, amely előre betanított modelleket, notebookokat és előre elkészített megoldásokat tartalmaz. Előre elkészített és automatizált megoldások.

A Meta Code Llama kódgeneráló modelljei már elérhetőek az Amazon SageMaker JumpStart | Amazon Web Services PlatoBlockchain Data Intelligence. Függőleges keresés. Ai.

A SageMaker JumpStart nyitóoldalán megoldások, modellek, notebookok és egyéb források között böngészhet. Code Llama modelleket találhat a Alapozási modellek: Szöveggenerálás körhinta.

A Meta Code Llama kódgeneráló modelljei már elérhetőek az Amazon SageMaker JumpStart | Amazon Web Services PlatoBlockchain Data Intelligence. Függőleges keresés. Ai.

Választással más modellváltozatokat is találhat Fedezze fel az összes szöveggenerációs modellt vagy Code Llama keresése.

A Meta Code Llama kódgeneráló modelljei már elérhetőek az Amazon SageMaker JumpStart | Amazon Web Services PlatoBlockchain Data Intelligence. Függőleges keresés. Ai.

A modellkártya kiválasztásával megtekintheti a modell részleteit, például a licencet, a betanításhoz használt adatokat és a használat módját. Két gombot is talál, Telepítése és a Nyissa meg a Jegyzetfüzetet, amely segít a modell használatában.

A Meta Code Llama kódgeneráló modelljei már elérhetőek az Amazon SageMaker JumpStart | Amazon Web Services PlatoBlockchain Data Intelligence. Függőleges keresés. Ai.

Telepítése

Ha úgy dönt Telepítése és nyugtázza a feltételeket, a telepítés megkezdődik. Alternatív megoldásként a példajegyzetfüzeten keresztül is telepítheti, ha kiválasztja Nyissa meg a Jegyzetfüzetet. A példajegyzetfüzet, amely teljes körű útmutatást nyújt a modell telepítéséhez a következtetések levonásához és az erőforrások tisztításához.

A notebook használatával történő telepítéshez először kiválasztjuk a megfelelő modellt, amelyet a model_id. A kiválasztott modellek bármelyikét üzembe helyezheti a SageMakerben a következő kóddal:

from sagemaker.jumpstart.model import JumpStartModel model = JumpStartModel(model_id="meta-textgeneration-llama-codellama-7b")
predictor = model.deploy()

Ez a SageMaker modellt alapértelmezett konfigurációkkal telepíti, beleértve az alapértelmezett példánytípust és az alapértelmezett VPC-konfigurációkat. Módosíthatja ezeket a konfigurációkat a nem alapértelmezett értékek megadásával JumpStartModel. A telepítés után a SageMaker előrejelzőn keresztül következtetéseket futtathat a telepített végponttal kapcsolatban:

payload = { "inputs": "<s>[INST] How do I deploy a model on Amazon SageMaker? [/INST]", "parameters": {"max_new_tokens": 512, "temperature": 0.2, "top_p": 0.9}
}
predictor.predict(payload, custom_attributes="accept_eula=true")

Vegye figyelembe, hogy alapértelmezés szerint accept_eula be van állítva false. Be kell állítani accept_eula=true a végpont sikeres meghívásához. Ezzel elfogadja a felhasználói licencszerződést és a korábban említett elfogadható használati szabályzatot. Te is letöltés a licencszerződést.

Custom_attributes Az EULA átadására kulcs/érték párokat használnak. A kulcsot és az értéket =, a párokat pedig ; választja el. Ha a felhasználó többször is átadja ugyanazt a kulcsot, akkor az utolsó érték megmarad, és átadja a szkriptkezelőnek (ebben az esetben a feltételes logikához használjuk). Például ha accept_eula=false; accept_eula=true akkor átkerül a szerverhez accept_eula=true megőrzi és átadja a szkriptkezelőnek.

A következtetési paraméterek vezérlik a szöveggenerálási folyamatot a végponton. A maximális új tokenek vezérlése a modell által generált kimenet méretére vonatkozik. Vegye figyelembe, hogy ez nem azonos a szavak számával, mert a modell szókincse nem egyezik meg az angol nyelv szókincsével, és előfordulhat, hogy az egyes token nem angol nyelvű szó. A hőmérséklet szabályozza a kimenet véletlenszerűségét. A magasabb hőmérséklet kreatívabb és hallucináltabb kimeneteket eredményez. Az összes következtetési paraméter nem kötelező.

A következő táblázat felsorolja a SageMaker JumpStartban elérhető összes Code Llama modellt, a modellazonosítókkal, az alapértelmezett példánytípusokkal és a maximálisan támogatott tokenekkel (a bemeneti tokenek számának és az összes egyidejű kéréshez generált tokenek számának összege), amelyek mindegyike támogatott. ezeket a modelleket.

Modell neve Modellazonosító Alapértelmezett példánytípus Maximálisan támogatott tokenek
CodeLlama-7b meta-textgeneration-láma-codellama-7b ml.g5.2xnagy 10000
CodeLlama-7b-Utasítás meta-textgeneration-llama-codellama-7b-utasítás ml.g5.2xnagy 10000
CodeLlama-7b-Python meta-textgeneration-llama-codellama-7b-python ml.g5.2xnagy 10000
CodeLlama-13b meta-textgeneration-láma-codellama-13b ml.g5.12xnagy 32000
CodeLlama-13b-Utasítás meta-textgeneration-llama-codellama-13b-utasítás ml.g5.12xnagy 32000
CodeLlama-13b-Python meta-textgeneration-llama-codellama-13b-python ml.g5.12xnagy 32000
CodeLlama-34b meta-textgeneration-láma-codellama-34b ml.g5.48xnagy 48000
CodeLlama-34b-Utasítás meta-textgeneration-llama-codellama-34b-utasítás ml.g5.48xnagy 48000
CodeLlama-34b-Python meta-textgeneration-llama-codellama-34b-python ml.g5.48xnagy 48000

Míg a Code Llama modelleket 16,000 7 token környezeti hosszon képezték ki, a modellek jó teljesítményről számoltak be még nagyobb kontextusablakokon. Az előző táblázatban a maximálisan támogatott tokenek oszlop a támogatott kontextusablak felső korlátja az alapértelmezett példánytípuson. Mivel a Code Llama 10,000B modell csak 5.2 13 tokent tud támogatni egy ml.g34xlarge példányon, javasoljuk, hogy telepítsen egy XNUMXB vagy XNUMXB modellverziót, ha nagyobb környezetre van szükség az alkalmazáshoz.

Alapértelmezés szerint minden modell működik kódgenerálási feladatokra. Az alap- és az utasításmodell egyaránt válaszol a kitöltési feladatokra, bár az alapmodell a legtöbb mintalekérdezésnél jobb minőségű kimenettel rendelkezik. Végül csak az utasításmodellek dolgoznak az utasítási feladatokon. A következő táblázat azt szemlélteti, hogy mely modellek teljesítettek jó (Jó) és közepes teljesítményt (Mérsékelt) a demó notebookok példalekérdezései során.

. Kódgenerálás Kódfeltöltés Kód utasításai
CodeLlama-7b N / A
CodeLlama-7b-Utasítás Mérsékelt
CodeLlama-7b-Python N / A N / A
CodeLlama-13b N / A
CodeLlama-13b-Utasítás Mérsékelt
CodeLlama-13b-Python N / A N / A
CodeLlama-34b N / A N / A
CodeLlama-34b-Utasítás N / A
CodeLlama-34b-Python N / A N / A

Kódgenerálás

A következő példákat a CodeLlama-34b-Instruct modellen futtattuk hasznos terhelési paraméterekkel "parameters": {"max_new_tokens": 256, "temperature": 0.2, "top_p": 0.9}:

Input
import socket def ping_exponential_backoff(host: str): Output """ Ping a host using exponential backoff. """ for i in range(1, 10): try: socket.gethostbyname(host) return True except socket.gaierror: time.sleep(2 ** i) return False Input
import argparse def main(string: str): print(string) print(string[::-1]) if __name__ == "__main__": Output parser = argparse.ArgumentParser() parser.add_argument("string", help="String to be printed") args = parser.parse_args() main(args.string)

Kód kitöltés

A kód kitöltése magában foglalja a generált kód visszaadását a környező kontextusban. Ez eltér a kódgenerálási feladattól, mert az előtag kódszegmensen kívül a modell egy kódszegmens utótaggal is rendelkezik. A finomhangolás során speciális tokeneket használtak az előtag kezdetének (<PRE>), az utótag eleje (<SUF>), és a közepének eleje (<MID>). A modell bemeneti szekvenciáinak a következő formátumok valamelyikében kell lenniük:

  • előtag-utótag-közép - <PRE> {prefix} <SUF>{suffix} <MID>
  • utótag-előtag-közép - <PRE> <SUF>{suffix} <MID> {prefix}

A következő példák a prefix-suffix-middle formátumot használják a CodeLlama-7b modellen hasznos teherrel parameters {"max_new_tokens": 256, "temperature": 0.05, "top_p": 0.9}:

Input
<PRE> def remove_non_ascii(s: str) -> str: """ <SUF> return result <MID> Output Remove non-ASCII characters from a string. :param s: The string to remove non-ASCII characters from. :return: The string with non-ASCII characters removed. """ result = "" for c in s: if ord(c) < 128: result += c Input
# Installation instructions: ```bash
<FILL> ```
This downloads the LLaMA inference code and installs the repository as a local pip package. Output git clone https://github.com/LLaMA-AI/LLaMA-inference.git cd LLaMA-inference pip install -e . Input
class InterfaceManagerFactory(AbstractManagerFactory): def __init__(<FILL>
def main(): factory = InterfaceManagerFactory(start=datetime.now()) managers = [] for i in range(10): managers.append(factory.build(id=i)) Output
self, start=None): self.start = start def build(self, id): return InterfaceManager(id, self.start) Input
/-- A quasi-prefunctoid is 1-connected iff all its etalisations are 1-connected. -/
theorem connected_iff_etalisation [C D : precategoroid] (P : quasi_prefunctoid C D) : π₁ P = 0 ↔ <FILL> = 0 :=
begin split, { intros h f, rw pi_1_etalisation at h, simp [h], refl }, { intro h, have := @quasi_adjoint C D P, simp [←pi_1_etalisation, this, h], refl }
end Output
∀ f : C ⟶ D, π₁ (P.etalise f)

Kód utasításai

A Meta a Code Llama utasításokra hangolt változatát is biztosította. Az ebben a szakaszban található példalekérdezések csak ezekre az utasításokkal hangolt Code Llama modellekre alkalmazhatók, amelyek modellazonosító-utasítás utótaggal rendelkező modellek. Az utasítások Code Llama formátuma megegyezik a Llama-2-chat prompt formátumával, amelyet részletezünk A Llama 2 alapozó modellek már elérhetőek a SageMaker JumpStartban

Egy egyszerű felhasználói kérdés a következőképpen nézhet ki:

<s>[INST] {user_prompt} [/INST]

Hozzáadhat egy rendszerpromptot is a következő szintaxissal:

<s>[INST] <<SYS>>
{system_prompt}
<</SYS>> {user_prompt} [/INST]

Végül párbeszédes interakciót folytathat a modellel, ha az összes korábbi felhasználói felszólítást és asszisztensi választ belefoglalja a bevitelbe:

<s>[INST] <<SYS>>
{system_prompt}
<</SYS>> {user_prompt_1} [/INST] {assistant_response_1} </s><s>[INST] {user_prompt_1} [/INST]

Ezek a példák a CodeLlama-13b-Instruct modellen futottak, hasznos terhelési paraméterekkel „paraméterek”: {"max_new_tokens": 512, "temperature": 0.2, "top_p": 0.9}:

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] Output You can use the `find` command in Bash to list all text files in the current directory (excluding subdirectories) that have been modified in the last month. Here's an example command:
```
find . -type f -name "*.txt" -mtime -30
```
Here's a breakdown of the command: * `find .`: This tells `find` to search the current directory and all its subdirectories.
* `-type f`: This tells `find` to only search for files (not directories).
* `-name "*.txt"`: This tells `find` to only search for files with the `.txt` extension.
* `-mtime -30`: This tells `find` to only search for files that have been modified in the last 30 days (2,592,000 seconds). The output of the command will be a list of all text files in the current directory (excluding subdirectories) that have been modified in the last month. Input
<s>[INST] What is the difference between inorder and preorder traversal? Give an example in Python. [/INST] Output Inorder and preorder traversal are two different ways of traversing a binary tree. Inorder traversal is a way of visiting the nodes of a binary tree in a specific order. In an inorder traversal, the left subtree is visited first, then the current node, and finally the right subtree is visited. This means that the nodes are visited in a left-to-right, top-to-bottom order. Preorder traversal, on the other hand, is a way of visiting the nodes of a binary tree in a different order. In a preorder traversal, the current node is visited first, followed by the left subtree, and finally the right subtree. This means that the nodes are visited in a top-down, left-to-right order. Here is an example of an inorder traversal of a binary tree in Python:
```
def inorder_traversal(root): if root is None: return [] return inorder_traversal(root.left) + [root.val] + inorder_traversal(root.right)
```
And here is an example of a preorder traversal of a binary tree in Python:
```
def preorder_traversal(root): if root is None: return [] return [root.val] + preorder_traversal(root.left) + preorder_traversal(root.right)
```
In this example, the `inorder_traversal` function returns a list of the values in the tree in the order of the keys, from smallest to largest. The `preorder_traversal` function returns a list of the values in the tree in the order of the keys, but with the current node visited before its children. Input
<s>[INST] <<SYS>>
Provide answers in JavaScript
<</SYS>> Write a function that computes the set of sums of all contiguous sublists of a given list. [/INST] Output function contiguousSublistSums(list) { let sums = []; for (let i = 0; i < list.length; i++) { let sum = 0; for (let j = i; j < list.length; j++) { sum += list[j]; sums.push(sum); } } return sums;
} console.log(contiguousSublistSums([1, 2, 3, 4, 5])); // [1, 3, 6, 10, 15]
console.log(contiguousSublistSums([1, 2, 3, 4, 5, 6])); // [1, 3, 6, 10, 15, 21]
console.log(contiguousSublistSums([1, 2, 3, 4, 5, 6, 7])); // [1, 3, 6, 10, 15, 21, 28]
console.log(contiguousSublistSums([1, 2, 3, 4, 5, 6, 7, 8])); // [1, 3, 6, 10, 15, 21, 28, 36]
console.log(contiguousSublistSums([1, 2, 3, 4, 5, 6, 7, 8, 9])); // [1, 3, 6, 10, 15, 21, 28, 36, 45]

Tisztítsuk meg

Miután befejezte a jegyzetfüzet futtatását, ne felejtsen el törölni minden erőforrást, amelyet a folyamat során hozott létre, hogy a számlázás leálljon. Használja a következő kódot:

predictor.delete_model()
predictor.delete_endpoint()

Következtetés

Ebben a bejegyzésben megmutattuk, hogyan kezdje el a Code Llama modelleket a SageMaker Studio-ban, és hogyan telepítse a modellt a kód és a természetes nyelv kód generálására mind a kódból, mind a természetes nyelvű promptokból. Mivel az alapmodellek előre betanítottak, csökkenthetik a képzési és infrastrukturális költségeket, és lehetővé teszik a testreszabást az Ön használati esetéhez. A kezdéshez látogasson el a SageMaker JumpStart oldalra a SageMaker Studio alkalmazásban.

Tudástár


A szerzőkről


A Meta Code Llama kódgeneráló modelljei már elérhetőek az Amazon SageMaker JumpStart | Amazon Web Services PlatoBlockchain Data Intelligence. Függőleges keresés. Ai.Gabriel Synnaeve
a Meta Facebook AI Research (FAIR) csapatának kutatási igazgatója. A Meta előtt Gabriel posztdoktori ösztöndíjas volt Emmanuel Dupoux csapatában a párizsi École Normale Supérieure-ben, ahol a csecsemők nyelvelsajátításának visszafejtésén dolgozott. Gabriel a Grenoble-i Egyetemen szerzett PhD fokozatot a valós idejű stratégiai játékok mesterséges intelligenciájára alkalmazott bayesi modellezésből.

A Meta Code Llama kódgeneráló modelljei már elérhetőek az Amazon SageMaker JumpStart | Amazon Web Services PlatoBlockchain Data Intelligence. Függőleges keresés. Ai.Eissa Jamil partnermérnök RL, generatív AI a Meta-nál.

A Meta Code Llama kódgeneráló modelljei már elérhetőek az Amazon SageMaker JumpStart | Amazon Web Services PlatoBlockchain Data Intelligence. Függőleges keresés. Ai.Dr. Kyle Ulrich az Amazon SageMaker JumpStart csapatának alkalmazott tudósa. Kutatási területei közé tartoznak a skálázható gépi tanulási algoritmusok, a számítógépes látás, az idősorok, a Bayes-féle nem-paraméterek és a Gauss-folyamatok. Doktori fokozatát a Duke Egyetemen szerezte, és publikációkat publikált a NeurIPS-ben, a Cell-ben és a Neuron-ban.

A Meta Code Llama kódgeneráló modelljei már elérhetőek az Amazon SageMaker JumpStart | Amazon Web Services PlatoBlockchain Data Intelligence. Függőleges keresés. Ai.Dr. Ashish Khetan az Amazon SageMaker JumpStart vezető alkalmazott tudósa, és segít gépi tanulási algoritmusok fejlesztésében. PhD fokozatát az Illinois Urbana-Champaign Egyetemen szerezte. A gépi tanulás és a statisztikai következtetések aktív kutatója, és számos közleményt publikált NeurIPS, ICML, ICLR, JMLR, ACL és EMNLP konferenciákon.

A Meta Code Llama kódgeneráló modelljei már elérhetőek az Amazon SageMaker JumpStart | Amazon Web Services PlatoBlockchain Data Intelligence. Függőleges keresés. Ai.Vivek Singh a SageMaker JumpStart termékmenedzsere. Arra összpontosít, hogy lehetővé tegye az ügyfelek számára a SageMaker JumpStart beépítését, hogy leegyszerűsítsék és felgyorsítsák a generatív AI-alkalmazások létrehozására irányuló ML-útjukat.

Időbélyeg:

Még több AWS gépi tanulás