欧美free性护士vide0shd,老熟女,一区二区三区,久久久久夜夜夜精品国产,久久久久久综合网天天,欧美成人护士h版

首頁綜合 正文
目錄

柚子快報邀請碼778899分享:Code Llama使用手冊

柚子快報邀請碼778899分享:Code Llama使用手冊

http://yzkb.51969.com/

Code Llama 是 Llama 2 的一系列最先進(jìn)的開放訪問版本,專門用于代碼任務(wù),我們很高興發(fā)布與 Hugging Face 生態(tài)系統(tǒng)的集成! Code Llama 已使用與 Llama 2 相同的寬松社區(qū)許可證發(fā)布,并且可用于商業(yè)用途。

今天,我們很高興發(fā)布:

Hub 上的模型及其模型卡和許可證Transformer集成與文本生成推理集成,以實現(xiàn)快速高效的生產(chǎn)就緒推理與推理端點集成代碼基準(zhǔn)測試

代碼大模型對軟件工程師來說是一項令人興奮的發(fā)展,因為他們可以通過 IDE 中的代碼完成來提高生產(chǎn)力,處理重復(fù)或煩人的任務(wù),例如編寫文檔字符串或創(chuàng)建單元測試。

1、什么是Code Llama?

Code Llama 版本引入了一系列包含 7、13 和 340 億個參數(shù)的模型。 基礎(chǔ)模型從 Llama 2 初始化,然后在 5000 億個代碼數(shù)據(jù)上進(jìn)行訓(xùn)練。 Meta 對這些基本模型進(jìn)行了兩種不同風(fēng)格的微調(diào):Python 專家(1000 億個額外令牌)和指令微調(diào)版本,可以理解自然語言指令。

這些模型在 Python、C++、Java、PHP、C#、TypeScript 和 Bash 中展示了最先進(jìn)的性能。 7B 和 13B 基本和指令變體支持基于周圍內(nèi)容的填充,使它們非常適合用作代碼助手。

Code Llama 在 16k 上下文窗口上進(jìn)行訓(xùn)練。 此外,這三個模型變體還進(jìn)行了額外的長上下文微調(diào),使它們能夠管理最多 100,000 個令牌的上下文窗口。

由于 RoPE 擴(kuò)展的最新發(fā)展,將 Llama 2 的 4k 上下文窗口增加到 Code Llama 的 16k(可以推斷到 100k)是可能的。 社區(qū)發(fā)現(xiàn) Llama 的位置嵌入可以線性插值或在頻域中插值,這可以通過微調(diào)輕松過渡到更大的上下文窗口。 在 Code Llama 的情況下,頻域縮放是通過松弛完成的:微調(diào)長度是縮放的預(yù)訓(xùn)練長度的一小部分,從而使模型具有強(qiáng)大的外推能力。

所有模型最初都是在公開可用代碼的近乎重復(fù)數(shù)據(jù)刪除的數(shù)據(jù)集上使用 5000 億個令牌進(jìn)行訓(xùn)練。 該數(shù)據(jù)集還包含一些自然語言數(shù)據(jù)集,例如有關(guān)代碼和代碼片段的討論。 不幸的是,沒有有關(guān)該數(shù)據(jù)集的更多信息。

對于指令模型,他們使用了兩個數(shù)據(jù)集:為 Llama 2 Chat 收集的指令調(diào)整數(shù)據(jù)集和自指令數(shù)據(jù)集。 自指導(dǎo)數(shù)據(jù)集是通過使用 Llama 2 創(chuàng)建面試編程問題,然后使用 Code Llama 生成單元測試和解決方案,然后通過執(zhí)行測試來評估的。

2、如何使用Code Llama?

從 Transformers 4.33 版本開始,Code Llama 已在 Hugging Face 生態(tài)系統(tǒng)中可用。 在 Transformers 4.33 發(fā)布之前,請從主分支安裝它。

可以在此空間輕松嘗試 Code Llama 模型(130 億個參數(shù)?。?/p>

3、Transformers

隨著即將發(fā)布的 Transformers 4.33,你可以使用 Code Llama 并利用 HF 生態(tài)系統(tǒng)中的所有工具,例如:

訓(xùn)練和推理腳本和示例安全文件格式(safetensors)與bitsandbytes(4位量化)和PEFT(參數(shù)高效微調(diào))等工具集成使用模型運行生成的實用程序和助手導(dǎo)出模型以進(jìn)行部署的機(jī)制

在 Transformers 4.33 發(fā)布之前,請從主分支安裝它。

!pip install git+https://github.com/huggingface/transformers.git@main accelerate

解釋

4、代碼完成

7B 和 13B 模型可用于文本/代碼補(bǔ)全或填充。 以下代碼片段使用管道接口來演示文本完成。 只要你選擇 GPU 運行時,它就可以在 Colab 的免費層上運行。

from transformers import AutoTokenizer import transformers import torch tokenizer = AutoTokenizer.from_pretrained("codellama/CodeLlama-7b-hf") pipeline = transformers.pipeline( "text-generation", model="codellama/CodeLlama-7b-hf", torch_dtype=torch.float16, device_map="auto", ) sequences = pipeline( 'def fibonacci(', do_sample=True, temperature=0.2, top_p=0.9, num_return_sequences=1, eos_token_id=tokenizer.eos_token_id, max_length=100, ) for seq in sequences: print(f"Result: {seq['generated_text']}")

解釋

這可能會產(chǎn)生如下輸出:

Result: def fibonacci(n): if n == 0: return 0 elif n == 1: return 1 else: return fibonacci(n-1) + fibonacci(n-2) def fibonacci_memo(n, memo={}): if n == 0: return 0 elif n == 1: return

解釋

Code Llama 專門研究代碼理解,但它本身就是一種語言模型。 你可以使用相同的生成策略來自動完成注釋或一般文本。

5、代碼填充

這是特定于代碼模型的專門任務(wù)。 該模型經(jīng)過訓(xùn)練,可以生成與現(xiàn)有前綴和后綴最匹配的代碼(包括注釋)。 這是代碼助理通常使用的策略:要求他們填充當(dāng)前光標(biāo)位置,并考慮其前后出現(xiàn)的內(nèi)容。

此任務(wù)在 7B 和 13B 型號的基本版本和指令版本中可用。 它不適用于任何 34B 型號或 Python 版本。

要成功使用此功能,你需要密切注意用于訓(xùn)練此任務(wù)模型的格式,因為它使用特殊的分隔符來識別提示的不同部分。 讓我們看一個例子:

from transformers import AutoTokenizer, AutoModelForCausalLM import transformers import torch model_id = "codellama/CodeLlama-7b-hf" tokenizer = AutoTokenizer.from_pretrained(model_id) model = AutoModelForCausalLM.from_pretrained( model_id, torch_dtype=torch.float16 ).to("cuda") prefix = 'def remove_non_ascii(s: str) -> str:\n """ ' suffix = "\n return result\n" prompt = f"

 {prefix} {suffix} " inputs = tokenizer(prompt, return_tensors="pt").to("cuda") output = model.generate( inputs["input_ids"], max_new_tokens=200, do_sample=False, ) output = output[0].to("cpu") print(tokenizer.decode(output))

解釋

 def remove_non_ascii(s: str) -> str: """  return result  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 

解釋

為了使用補(bǔ)全功能,你需要處理輸出以剪切???和??標(biāo)記之間的文本 - 這就是我們提供的前綴和后綴之間的內(nèi)容。

6、對話指令

如上所述,基礎(chǔ)模型可用于完成和填充。 Code Llama 版本還包括一個可在對話界面中使用的指令微調(diào)模型。

為了準(zhǔn)備此任務(wù)的輸入,我們必須使用一個提示模板,就像我們的 Llama 2 博客文章中描述的那樣,我們在這里再次復(fù)制該模板:

[INST] <> {{ system_prompt }} <> {{ user_msg_1 }} [/INST] {{ model_answer_1 }} [INST] {{ user_msg_2 }} [/INST]

解釋

請注意,系統(tǒng)提示是可選的 - 模型在沒有它的情況下也可以工作,但可以使用它來進(jìn)一步配置其行為或樣式。 例如,如果你總是希望獲得 JavaScript 中的答案,可以在此處聲明。 系統(tǒng)提示后,你需要提供對話中之前的所有交互:用戶詢問什么以及模型回答什么。 與填充情況一樣,需要注意使用的分隔符。 輸入的最終組成部分必須始終是新的用戶指令,這將是模型提供答案的信號。

以下代碼片段演示了該模板在實踐中的工作原理。

首次用戶查詢,系統(tǒng)無提示

user = 'In Bash, how do I list all text files in the current directory (excluding subdirectories) that have been modified in the last month?' prompt = f"[INST] {user.strip()} [/INST]" inputs = tokenizer(prompt, return_tensors="pt", add_special_tokens=False).to("cuda")

解釋

系統(tǒng)提示的首次用戶查詢:

system = "Provide answers in JavaScript" user = "Write a function that computes the set of sums of all contiguous sublists of a given list." prompt = f"<>\\n{system}\\n<>\\n\\n{user}" inputs = tokenizer(prompt, return_tensors="pt", add_special_tokens=False).to("cuda")

解釋

與先前答案的持續(xù)對話

該過程與 Llama 2 中的過程相同。為了最大程度地清晰起見,我們沒有使用循環(huán)或概括此示例代碼:

system = "System prompt" user_1 = "user_prompt_1" answer_1 = "answer_1" user_2 = "user_prompt_2" answer_2 = "answer_2" user_3 = "user_prompt_3" prompt = f"<>\\n{system}\\n<>\\n\\n{user_1}" prompt = f"[INST] {prompt.strip()} [/INST] {answer_1.strip()} " prompt += f"[INST] {user_2.strip()} [/INST] {answer_2.strip()} " prompt += f"[INST] {user_3.strip()} [/INST]" inputs = tokenizer(prompt, return_tensors="pt", add_special_tokens=False).to("cuda")

解釋

7、4位加載

將 Code Llama 集成到 Transformers 中意味著你可以立即獲得對 4 位加載等高級功能的支持。 這使你可以在 nvidia 3090 卡等消費類 GPU 上運行大型 32B 參數(shù)模型!

以下是在 4 位模式下運行推理的方法:

from transformers import AutoTokenizer, AutoModelForCausalLM, BitsAndBytesConfig import torch model_id = "codellama/CodeLlama-34b-hf" quantization_config = BitsAndBytesConfig( load_in_4bit=True, bnb_4bit_compute_dtype=torch.float16 ) tokenizer = AutoTokenizer.from_pretrained(model_id) model = AutoModelForCausalLM.from_pretrained( model_id, quantization_config=quantization_config, device_map="auto", ) prompt = 'def remove_non_ascii(s: str) -> str:\n """ ' inputs = tokenizer(prompt, return_tensors="pt").to("cuda") output = model.generate( inputs["input_ids"], max_new_tokens=200, do_sample=True, top_p=0.9, temperature=0.1, ) output = output[0].to("cpu") print(tokenizer.decode(output))

解釋

8、使用文本生成推理和推理端點

文本生成推理是 Hugging Face 開發(fā)的生產(chǎn)就緒推理容器,可輕松部署大型語言模型。 它具有連續(xù)批處理、令牌流、用于在多個 GPU 上快速推理的張量并行性以及生產(chǎn)就緒的日志記錄和跟蹤等功能。

你可以在自己的基礎(chǔ)設(shè)施上嘗試文本生成推理,也可以使用 Hugging Face 的推理端點。 要部署 Code llama 2 模型,請轉(zhuǎn)到模型頁面并單擊部署 -> 推理端點小部件。

對于 7B 模型,我們建議你選擇“GPU [中] - 1x Nvidia A10G”。對于 13B 模型,我們建議你選擇“GPU [xlarge] - 1x Nvidia A100”。對于 34B 模型,我們建議你選擇啟用了位和字節(jié)量化的“GPU [1xlarge] - 1x Nvidia A100”或“GPU [2xlarge] - 2x Nvidia A100”

注意:你可能需要通過電子郵件請求配額升級才能訪問 A100

你可以在我們的博客中了解有關(guān)如何使用 Hugging Face Inference Endpoints 部署 LLM 的更多信息。 該博客包含有關(guān)支持的超參數(shù)以及如何使用 Python 和 Javascript 流式傳輸響應(yīng)的信息。

9、評估

代碼語言模型通常在 HumanEval 等數(shù)據(jù)集上進(jìn)行基準(zhǔn)測試。 它由編程挑戰(zhàn)組成,其中模型帶有函數(shù)簽名和文檔字符串,并負(fù)責(zé)完成函數(shù)體。 然后通過運行一組預(yù)定義的單元測試來驗證所提出的解決方案。 最后,報告通過率,描述有多少解決方案通過了所有測試。 pass@1 率描述了模型在一次嘗試時生成通過解決方案的頻率,而 pass@10 描述了從 10 個提議的候選方案中至少有一個解決方案通過的頻率。

雖然 HumanEval 是一個 Python 基準(zhǔn)測試,但我們已經(jīng)付出了巨大努力將其轉(zhuǎn)換為更多編程語言,從而實現(xiàn)更全面的評估。 其中一種方法是 MultiPL-E,它將 HumanEval 翻譯成十多種語言。 我們正在基于它托管一個多語言代碼排行榜,以便社區(qū)可以比較不同語言的模型,以評估哪種模型最適合他們的用例。

模型許可數(shù)據(jù)集已知商業(yè)用途?預(yù)訓(xùn)練長度 [tokens]PythonJavaScript排行榜平均分?jǐn)?shù)CodeLlaMa-34BLlama 2許可證??2,500B45.1141.6633.89CodeLlaMa-13BLlama 2許可證??2,500B35.0738.2628.35CodeLlaMa-7BLlama 2許可證??2,500B29.9831.824.36CodeLlaMa-34B-PythonLlama 2許可證??2,620B53.2944.7233.87CodeLlaMa-13B-PythonLlama 2許可證??2,620B42.8940.6628.67CodeLlaMa-7B-PythonLlama 2許可證??2,620B40.4836.3423.5CodeLlaMa-34B-InstructLlama 2許可證??2,620B50.7945.8535.09CodeLlaMa-13B-InstructLlama 2許可證??2,620B50.640.9131.29CodeLlaMa-7B-InstructLlama 2許可證??2,620B45.6533.1126.45StarCoder-15BBigCode-OpenRail-M??1,035B33.5730.7922.74StarCoderBase-15BBigCode-OpenRail-M??1,000B30.3531.722.4WizardCoder-15BBigCode-OpenRail-M??1,035B58.1241.9132.07OctoCoder-15BBigCode-OpenRail-M??1,000B45.332.824.01CodeGeeX-2-6BCodeGeeX許可證??2,000B33.4929.921.23CodeGen-2.5-7B-MonoApache-2.0??1400B45.6523.2212.1CodeGen-2.5-7B-MultiApache-2.0??1400B28.726.2720.04

注意:上表中顯示的分?jǐn)?shù)來自我們的代碼排行榜,我們在其中評估具有相同設(shè)置的所有模型。 更多詳情請參閱排行榜。

柚子快報邀請碼778899分享:Code Llama使用手冊

http://yzkb.51969.com/

精彩文章

評論可見,查看隱藏內(nèi)容

本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點和立場。

轉(zhuǎn)載請注明,如有侵權(quán),聯(lián)系刪除。

本文鏈接:http://gantiao.com.cn/post/19235462.html

發(fā)布評論

您暫未設(shè)置收款碼

請在主題配置——文章設(shè)置里上傳

掃描二維碼手機(jī)訪問

文章目錄