<cite id="ffb66"></cite><cite id="ffb66"><track id="ffb66"></track></cite>
      <legend id="ffb66"><li id="ffb66"></li></legend>
      色婷婷久,激情色播,久久久无码专区,亚洲中文字幕av,国产成人A片,av无码免费,精品久久国产,99视频精品3
      網易首頁 > 網易號 > 正文 申請入駐

      Llama2 官方入門指南 (中文版)

      0
      分享至


      文:城主

      英文原文:Getting started with Llama 2 - AI at Meta

      https://ai.meta.com/llama/get-started/

      歡迎閱讀Llama的入門指南。

      本指南提供了幫助您設置Llama所需的信息和資源,包括如何訪問模型、托管、操作指南和集成指南。另外,您還會找到一些補充材料,以便在使用Llama構建時為您提供更多幫助。

      快速設置前提條件

      a.操作系統:Ubuntu

      b.包:wget,md5sum

      c.包管理器:Conda ME

      如果你想在Windows或macOS上運行它,請參考開源社區關于他們如何實現這一點的說明。

      這里有一些你可以閱讀更多關于開源資源的鏈接

      https://github.com/ggerganov/llama.cpp

      https://github.com/facebookresearch/llama-recipes/issues/32#issuecomment-1647095537

      獲取模型

      a.訪問Llama下載表單(https://ai.meta.com/micro_site/url/?click_from_context_menu=true&country=HK&destination=https%3A%2F%2Fai.meta.com%2Fresources%2Fmodels-and-libraries%2Fllama-downloads%2F&event_type=click&last_nav_impression_id=1Fi6aMOl2BdFe7cqa&max_percent_page_viewed=100&max_viewport_height_px=985&max_viewport_width_px=1293&orig_request_uri=https%3A%2F%2Fai.meta.com%2Fllama%2Fget-started%2F&primary_cmsid=1066018851518569&primary_content_locale=en_US&region=apac&scrolled=true&session_id=0w3r6LDvzBfVZ7ltO&site=meta_ai)并接受我們的許可。

      b.一旦你的請求被批準,你將通過電子郵件收到一個簽名的URL。

      c.克隆Llama 2倉庫

      https://github.com/facebookresearch/llama

      d.運行download.sh腳本,當提示開始下載時,傳遞提供的URL。

      請記住,鏈接在24小時后和一定數量的下載后會過期。如果你開始看到如403:禁止的錯誤,你可以隨時重新請求鏈接。

      托管
      亞馬遜網絡服務

      AWS提供了多種托管你的Llama模型的方式。(SageMaker Jumpstart,EC2,Bedrock等)。在這份文檔中,我們將概述使用SageMaker Jumpstart和Bedrock托管你的模型的步驟。你可以直接在AWS網站上參考其他產品。

      Bedrock

      一個完全托管的服務,提供了一種選擇高性能基礎模型的選擇,通過API構建生成AI應用,簡化開發同時保持隱私和安全。你可以在這里 https://aws.amazon.com/bedrock/ 閱讀更多關于產品的信息,并在這里 https://aws.amazon.com/bedrock/llama-2/ 查看如何使用Llama 2和Bedrock的指南。

      SageMaker JumpStart

      亞馬遜SageMaker使ML從業者能夠使用完全托管的基礎設施、工具和工作流程,為任何用例構建、訓練和部署機器學習模型。使用SageMaker JumpStart,ML從業者可以從廣泛的公開可用的基礎模型中選擇,并在SageMaker實例上進行模型訓練和部署。你可以在這里

      https://aws.amazon.com/blogs/machine-learning/llama-2-foundation-models-from-meta-are-now-available-in-amazon-sagemaker-jumpstart/ 閱讀更多關于它的信息。


      Cloudflare

      Workers AI是Cloudflare全球網絡上的無服務器GPU推理。它是一個AI推理作為服務平臺,使開發者能夠只用幾行代碼就能運行AI模型。在這里

      https://blog.cloudflare.com/workers-ai/ 了解更多關于Workers AI的信息,并查看這里 https://developers.cloudflare.com/workers-ai/models/llm/ 的文檔開始使用Llama 2模型。

      谷歌云平臺(GCP)-模型花園

      GCP是一套云計算服務,提供計算資源以及虛擬機。在GCP服務的基礎上,Vertex AI的模型花園https://cloud.google.com/model-garden 提供了基礎設施,以一個地方發現、定制和部署各種模型,為你的ML項目提供了起點。有超過100種基礎模型供開發者使用,你可以通過幾次點擊就部署AI模型,以及在Google Colab的筆記本中運行微調任務。

      Vertex AI

      我們與谷歌云的Vertex AI合作,完全集成了Llama 2,提供了預訓練的聊天和CodeLlama的各種大小。從這里 https://console.cloud.google.com/vertex-ai/publishers/google/model-garden/139 開始,注意你可能需要請求適當的GPU計算配額作為前提條件。

      Hugging Face

      你必須首先使用與你的Hugging Face賬戶相同的電子郵件地址請求下載

      https://ai.meta.com/resources/models-and-libraries/llama-downloads/ 。


      這樣做后,你可以請求訪問 Hugging Face

      https://huggingface.co/meta-llama 上的任何模型,1-2天內你的賬戶將被授予所有版本的訪問權限。

      Kaggle

      Kaggle是一個數據科學家和機器學習工程師的在線社區。它不僅允許用戶找到用于構建他們的AI模型的數據集,還允許用戶搜索并下載其他用戶上傳的預訓練模型。在一個地方發現數百個經過訓練,準備就緒的機器學習模型。此外,社區成員也可以使用這些模型在筆記本中發布他們的創新作品,由谷歌云AI平臺提供計算資源和虛擬機的支持。我們與Kaggle合作,完全集成了Llama 2,提供預訓練的聊天和CodeLlama模型,各種大小。要從Kaggle下載Llama 2模型工件,您必須首先使用與您的Kaggle帳戶相同的電子郵件地址請求下載

      https://ai.meta.com/resources/models-and-libraries/llama-downloads/ 。

      這樣做后,您可以請求訪問Llama 2

      https://www.kaggle.com/models/metaresearch/llama-2

      和Code Lama

      https://www.kaggle.com/models/metaresearch/codellama 模型。一旦您的請求被處理,您將獲得下載權限。

      微軟Azure和Windows

      使用Microsoft Azure,您可以通過兩種方式之一訪問Llama 2,要么下載Llama 2模型并在虛擬機上部署,要么使用Azure模型目錄。

      Azure虛擬機

      要在Azure VM上運行Llama,您可以設置自己的VM,或者使用Azure的數據科學VM,它已經預裝了Pytorch、CUDA、NVIDIA系統管理和其他ML工具。要使用數據科學VM,請按照這里的說明設置一個。確保使用GPU啟用的映像設置此VM。然而,如果你想設置自己的VM,你可以按照微軟網站上的快速入門指南 https://learn.microsoft.com/en-us/azure/machine-learning/data-science-virtual-machine/dsvm-ubuntu-intro?view=azureml-api-2 。你可以在“連接到虛擬機”步驟停止。一旦你有了一個VM設置,你可以按照這里的指南在VM上本地訪問模型。

      Azure模型目錄

      Azure模型目錄是一個用于探索基礎模型集合的中心。基于Azure ML平臺,模型目錄提供了運行ML任務,如微調和評估的選項,只需幾次點擊。總的來說,這是初級開發者嘗試他們喜歡的模型的好起點,也集成了強大的工具,供高級開發者構建AI應用程序。我們已經與Azure合作,將Llama 2完全集成到模型目錄中,提供預訓練的聊天和CodeLlama模型,各種大小。請按照這里 https://techcommunity.microsoft.com/t5/ai-machine-learning-blog/introducing-llama-2-on-azure/ba-p/3881233 的說明開始。

      ONNX for Windows

      ONNX https://onnx.ai/about.html 是一個用于表示機器學習模型的開放格式。它定義了一組通用的操作符和一個通用的文件格式,使AI開發者能夠在各種框架、工具、運行時和編譯器中使用模型。使用ONNX的主要優點之一是,它允許模型從一個框架(如TensorFlow)輕松導出,并導入到另一個框架(如PyTorch)。

      配合ONNX運行時,它將通過靈活的接口加速您的開發,集成硬件特定的庫,基本上允許您在不同的平臺(如Windows)上輕松運行ML任務,包括推理。開始為Windows/PC開發應用程序,使用官方的ONNX Llama 2倉庫 https://github.com/microsoft/Llama-2-Onnx 和ONNX運行時 https://github.com/microsoft/Llama-2-Onnx 。請注意,要使用ONNX Llama 2倉庫,您需要提交一個請求,從子倉庫下載模型工件。這個請求將由微軟ONNX團隊審查。

      如何指南

      如果你想通過編寫代碼來學習,強烈建議你看看了解Llama 2 - Jupyter Notebook

      https://github.com/facebookresearch/llama-recipes/blob/main/examples/Getting_to_know_Llama.ipynb 。這是開始最常見的LLMs操作的好地方。

      微調

      全參數微調是一種微調所有層的所有參數的預訓練模型的方法。總的來說,它可以達到最好的性能,但它也是最耗資源和時間的:它需要最多的GPU資源,并且需要最長的時間。PEFT,或參數高效微調,允許人們用最少的資源和成本微調模型。有兩種重要的PEFT方法:LoRA(低秩適應)和QLoRA(量化LoRA),其中預訓練模型分別以量化的8位和4位權重加載到GPU。你可能可以使用LoRA或QLoRA微調Llama 2-13B模型,使用單個消費者GPU,內存為24GB,使用QLoRA需要的GPU內存和微調時間比LoRA少。通常,人們應該首先嘗試LoRA,或者如果資源極其有限,嘗試QLoRA,微調完成后,評估性能。只有當性能不滿意時,才考慮全面微調。

      配方PEFT LoRA

      llama-recipes倉庫詳細介紹了由提供的樣本腳本支持的不同微調

      https://github.com/facebookresearch/llama-recipes/blob/main/docs/LLM_finetuning.md(FT)替代方案。特別是,它強調了使用PEFT作為首選的FT方法,因為它減少了硬件需求,并防止了災難性的遺忘。對于特定的情況,全參數FT仍然可以有效,可以使用不同的策略來防止過度修改模型。此外,FT可以在單個gpu

      https://github.com/facebookresearch/llama-recipes/blob/main/docs/single_gpu.md 或多個gpu

      https://github.com/facebookresearch/llama-recipes/blob/main/docs/multi_gpu.md 上使用FSDP完成。為了運行這些配方,可以按照以下步驟操作:

      a.創建一個包含pytorch和其他依賴項的conda環境

      b.按照這里描述的方法安裝配方:

      https://github.com/facebookresearch/llama-recipes#install-with-pip

      c.從hf下載所需的模型,可以使用git-lfs或使用llama下載腳本。

      d.配置好所有內容后,運行以下命令:

      pip install trl
      git clone https://github.com/lvwerra/trl

      python trl/examples/scripts/sft_trainer.py \

      --model_name meta-llama/Llama-2-7b-hf \
      --dataset_name timdettmers/openassistant-guanaco \
      --load_in_4bit \
      --use_peft \
      --batch_size 4 \ --gradient_accumulation_steps 2


      Hugging Face PEFT LoRA(https://github.com/huggingface/peft)

      使用Low Rank Adaption(LoRA),Llama 2被加載到GPU內存中作為量化的8位權重。

      使用Hugging Face的PEFT LoRA

      https://huggingface.co/blog/llama2#fine-tuning-with-peft 進行微調非常簡單 - 在Llama 2-7b上使用OpenAssistant數據集進行微調的示例可以在三個簡單步驟中完成:

      pip install trl
      git clone https://github.com/lvwerra/trl

      python trl/examples/scripts/sft_trainer.py \

      --model_name meta-llama/Llama-2-7b-hf \
      --dataset_name timdettmers/openassistant-guanaco \
      --load_in_4bit \
      --use_peft \
      --batch_size 4 \ --gradient_accumulation_steps 2

      這大約需要在單個GPU上運行16小時,并使用不到10GB的GPU內存;改變批處理大小到8/16/32將使用超過11/16/25GB的GPU內存。微調完成后,你會在一個名為“output”的新目錄中看到至少有adapter_config.json和adapter_model.bin - 運行下面的腳本來推斷基礎模型和新模型,這是通過合并基礎模型和微調模型生成的:

      import torch
      from transformers import ( AutoModelForCausalLM, AutoTokenizer,
      pipeline,
      from peft import LoraConfig, PeftModel from trl import SFTTrainer

      model_name = "meta-llama/Llama-2-7b-chat-hf" new_model = "output"
      device_map = {"": 0}

      base_model = AutoModelForCausalLM.from_pretrained( model_name,
      low_cpu_mem_usage=True,
      return_dict=True,

      torch_dtype=torch.float16,
      device_map=device_map,
      )

      model = PeftModel.from_pretrained(base_model, new_model)

      model = model.merge_and_unload()

      tokenizer = AutoTokenizer.from_pretrained(model_name, trust_remote_code=True)

      tokenizer.pad_token = tokenizer.eos_token
      tokenizer.padding_side = "right"

      prompt = "Who wrote the book Innovator's Dilemma?"

      pipe = pipeline(task="text-generation", model=base_model, tokenizer=tokenizer, max_length=200)
      result = pipe(f"[INST] {prompt} [/INST]")
      print(result[0]['generated_text'])

      pipe = pipeline(task="text-generation", model=model, tokenizer=tokenizer, max_length=200)
      result = pipe(f"[INST] {prompt} [/INST]")
      print(result[0]['generated_text'])


      QLoRA微調

      QLoRA(Q代表量化)比LoRA更節省內存。在QLoRA中,預訓練模型作為量化的4位權重加載到GPU。使用QLoRA進行微調也非常容易運行 - 使用OpenAssistant對Llama 2-7b進行微調的示例可以在四個快速步驟中完成:

      git clone https://github.com/artidoro/qlora cd qlora

      pip install -U -r requirements.txt ./scripts/finetune_llama2_guanaco_7b.sh

      這大約需要在單個GPU上運行6.5小時,使用11GB的GPU內存。微調完成后,./scripts/finetune_llama2_guanaco_7b.sh中指定的output_dir將有checkoutpoint-xxx子文件夾,其中包含微調的適配器模型文件。要運行推斷,請使用下面的腳本:

      import torch

      model_id = "meta-llama/Llama-2-7b-hf"
      new_model = "output/llama-2-guanaco-7b/checkpoint-1875/adapter_model" # change if needed
      quantization_config = BitsAndBytesConfig(
      load_in_4bit=True,
      bnb_4bit_compute_dtype=torch.bfloat16,
      bnb_4bit_use_double_quant=True,
      bnb_4bit_quant_type='nf4'
      )
      model = AutoModelForCausalLM.from_pretrained(
      model_id,
      low_cpu_mem_usage=True,
      load_in_4bit=True,
      quantization_config=quantization_config,
      torch_dtype=torch.float16,
      device_map='auto'
      )
      model = PeftModel.from_pretrained(model, new_model)
      tokenizer = AutoTokenizer.from_pretrained(model_id)

      prompt = "Who wrote the book innovator's dilemma?"
      pipe = pipeline(task="text-generation", model=model, tokenizer=tokenizer, max_length=200)
      result = pipe(f"[INST] {prompt} [/INST]") print(result[0]['generated_text'])


      Axotol https://github.com/OpenAccess-AI-Collective/axolotl 是另一個開源庫,你可以用它來簡化Llama 2的微調。使用Axotol微調Llama 2的一個好例子是這四個筆記本,涵蓋了整個微調過程(生成數據集,使用LoRA微調模型,評估和基準測試)

      https://github.com/OpenPipe/OpenPipe/tree/main/examples/classify-recipes 。

      量化

      量化是一種表示模型權重的技術,這些權重通常是32位浮點數,用較低精度的數據如16位浮點數,16位整數,8位整數,甚至4/3/2位整數來表示。量化的好處包括更小的模型大小,更快的微調和更快的推理。在資源受限的環境中,如單GPU或Mac或移動邊緣設備(例如https://github.com/ggerganov/llama.cpp),量化是微調模型或運行推理的必要條件。關于量化的更多信息可以在這里

      https://pytorch.org/blog/introduction-to-quantization-on-pytorch/ 和這里

      https://huggingface.co/docs/optimum/concept_guides/quantization 找到。

      提示

      提示工程是一種用于提高語言模型性能的技術,通過為模型提供更多的上下文和任務信息。它涉及創建提示,這些提示是提供額外信息或指導給模型的短文本,如文本將生成的主題或類型。通過使用提示,模型可以更好地理解預期的輸出類型,并產生更準確和相關的結果。在Llama 2中,上下文的大小,以令牌數量計,已經從2048增加到4096。

      制作有效的提示

      制作有效的提示是提示工程的重要部分。以下是一些創建提示的技巧,這些提示將有助于提高你的語言模型的性能:

      1.清晰簡潔:你的提示應該易于理解,并提供足夠的信息讓模型生成相關的輸出。避免使用可能會讓模型混淆的行話或技術術語。

      2.使用具體的例子:在你的提示中提供具體的例子可以幫助模型更好地理解預期的輸出。例如,如果你希望模型生成關于特定主題的故事,包括一些關于設置,角色和情節的句子。

      3.變化提示:使用不同的提示可以幫助模型更多地了解手頭的任務,并產生更多樣化和創新的輸出。嘗試使用不同的風格,語氣和格式來看看模型的反應。

      4.測試和改進:一旦你創建了一組提示,就在模型上測試它們,看看它們的表現如何。如果結果不符合預期,嘗試通過添加更多的細節或調整語氣和風格來改進提示。

      5.使用反饋:最后,使用用戶或其他來源的反饋來不斷改進你的提示。這可以幫助你識別模型需要更多指導的地方,并做出相應的調整。

      基于角色的提示

      根據被対話的人或實體的角色或視角創建提示。這種技術對于生成更相關和吸引人的語言模型的回應可能很有用。

      優點:

      1.提高相關性:基于角色的提示幫助語言模型理解被対話的人或實體的角色或視角,這可能導致更相關和吸引人的回應。

      2.提高準確性:提供關于被対話的人或實體的角色或視角的額外上下文可以幫助語言模型避免犯錯誤或誤解。

      缺點:

      1.需要付出努力:需要付出更多的努力來收集和提供有關被對話的人或實體的角色或觀點的必要信息。

      示例:

      你是一位虛擬導游,正在夜間帶領游客參觀埃菲爾鐵塔。向你的觀眾描述埃菲爾鐵塔,包括它的歷史,每年參觀的人數,完成一次完整游覽需要的時間,以及每年有那么多人參觀這個地方的原因。

      思維鏈技術

      涉及向語言模型提供一系列提示或問題,以幫助引導其思考并生成更連貫和相關的回應。這種技術對于生成更深思熟慮和有理有據的語言模型回應非常有用。

      優點:

      1.提高連貫性:幫助語言模型以邏輯和結構化的方式思考問題或問題,這可能導致更連貫和相關的回應。

      2.增加深度:提供一系列提示或問題可以幫助語言模型更深入和全面地探索一個主題,可能會導致更有洞察力和信息豐富的回應。

      缺點:

      1.需要付出努力思維鏈技術需要更多的努力來創建和提供必要的提示或問題。

      示例:

      你是一位來自1901年的虛擬導游。你有游客參觀埃菲爾鐵塔。向你的觀眾描述埃菲爾鐵塔。從以下幾點開始:

      1.為什么建造它

      2.建造它花了多長時間

      3.建造材料的來源

      4.建造它需要多少人

      5.以1900年代每年參觀埃菲爾鐵塔的人數,完成一次完整游覽需要的時間,以及每年有那么多人參觀這個地方的原因結束。

      在游覽結束時,通過包含1或2個有趣的笑話使你的游覽變得有趣。

      減少幻覺

      Meta的負責任使用指南

      https://ai.meta.com/static-resource/responsible-use-guide/ 是理解如何最好地提示和處理語言模型輸入/輸出風險的極好資源。參考頁面(14-17)。以下是語言模型可能產生幻覺的一些示例,以及解決問題的一些策略:

      示例1:

      語言模型被要求對其未經過訓練的主題提出問題的回應。語言模型可能會產生幻覺信息或制造出不準確或無證據支持的事實。

      解決方法:為了解決這個問題,你可以向語言模型提供更多關于主題的上下文或信息,以幫助它理解正在提出的問題,并生成更準確的回應。你也可以要求語言模型為其所做的任何聲明提供來源或證據,以確保其回應基于事實信息。

      示例2:

      語言模型被要求對需要特定觀點或觀點的問題生成回應。語言模型可能會產生幻覺信息或制造出與所需觀點或觀點不一致的事實。

      解決方法:為了解決這個問題,你可以向語言模型提供有關所需觀點或觀點的額外信息,例如被對話的人或實體的目標,價值觀或信念。這可以幫助語言模型理解上下文,并生成與所需觀點或觀點更一致的回應。

      示例3:

      語言模型被要求對需要特定語氣或風格的問題生成回應。語言模型可能會產生幻覺信息或制造出與所需語氣或風格不一致的事實。

      解決方法:為了解決這個問題,你可以向語言模型提供有關所需語氣或風格的額外信息,例如通信的受眾或目的。這可以幫助語言模型理解上下文,并生成與所需語氣或風格更一致的回應。

      總的來說,避免語言模型產生幻覺的關鍵是向它們提供清晰和準確的信息和上下文,并仔細監控它們的回應,以確保它們符合你的期望和要求。

      使用Llama提示

      格式:

      [INST]
      {{ user_message }} [/INST]

      多輪用戶提示

      [INST]
      {{ user_message_1 }} [/INST] {{ llama_answer_1 }} [INST] {{ user_message_2 }} [/INST]


      推理

      以下是一些開始使用您的LLMs進行推理的優秀資源。

      Github Llama食譜:

      https://github.com/facebookresearch/llama-recipes/blob/main/docs/inference.md

      Page注意力vLLM:

      https://vllm.ai/

      食譜示例

      https://github.com/facebookresearch/llama-recipes/blob/main/examples/vllm/inference.py

      Hugging Face TGI:

      https://github.com/huggingface/text-generation-inference

      食譜示例

      https://github.com/facebookresearch/llama-recipes/tree/main/examples/hf_text_generation_inference

      Cuda圖表:

      https://blog.fireworks.ai/speed-python-pick-two-how-cuda-graphs-enable-fast-python-code-for-deep-learning-353bf6241248


      驗證

      俗話說,如果你不能測量它,你就不能改進它,在這一部分,我們將介紹不同的測量和最終驗證Llama的方法,以便確定不同微調技術提供的改進。

      定量技術

      這些技術的重點是收集可以在每次微調運行期間和之后輕松比較的客觀指標,以便快速反饋模型的性能。主要收集的指標是損失和困惑度。

      K-折疊交叉驗證

      包括將數據集劃分為k個子集或折疊,然后微調模型k次。

      在每次運行中,使用不同的折疊作為驗證數據集,其余的用于訓練。每次運行的性能結果平均為最終報告。這提供了一個更準確的模型在整個數據集上的性能指標,因為所有條目都用于驗證和訓練。雖然它產生了對給定數據集微調后模型如何泛化的最準確預測,但它在計算上昂貴,更適合小數據集。

      保留

      使用保留時,數據集被劃分為兩個或三個子集,訓練和驗證,測試是可選的。測試和驗證集可以分別占據數據集的10% - 30%。顧名思義,前兩個子集用于微調期間的訓練和驗證,第三個只在微調完成后用于評估模型在未見過的數據上的泛化能力。擁有三個分區的優點是,它提供了一種在微調后評估模型的方法,以便無偏地查看模型性能,但它需要稍大的數據集以允許適當的劃分。這目前在Llama食譜微調腳本中實現,使用數據集的兩個子集,訓練

      https://github.com/facebookresearch/llama-recipes/blob/main/src/llama_recipes/finetuning.py#L165 和驗證

      https://github.com/facebookresearch/llama-recipes/blob/main/src/llama_recipes/finetuning.py#L174 。數據收集在一個json文件中,可以繪制出來,以便輕松解釋結果并評估模型的性能。

      標準評估工具

      有多個項目提供標準評估。他們提供預定義的任務,使用常用的指標來評估LLMs的性能,如hellaswag和ThrouthfulQA。這些工具可以用來測試模型在微調后是否退化。此外,可以使用預計微調模型的數據集創建自定義任務,有效地自動化模型性能在微調前后的手動驗證。這些類型的項目提供了一種定量觀察模型在模擬真實世界示例中的性能的方法。其中一些項目包括LM評估工具 https://github.com/EleutherAI/lm-evaluation-harness(用于創建HF排行榜

      https://huggingface.co/spaces/HuggingFaceH4/open_llm_leaderboard)、

      Helm

      https://github.com/stanford-crfm/helm 、

      BIG-bench

      https://github.com/google/BIG-bench

      和OpenCompass

      https://github.com/open-compass/opencompass 。

      解讀損失和困惑度

      使用的損失值來自Transformer的LlamaForCausalLM

      https://huggingface.co/docs/transformers/main/model_doc/llama#transformers.LlamaForCausalLM ,它根據模型所需的目標初始化不同的損失函數。本節的目標是簡要介紹如何理解損失和困惑度的結果,作為微調期間模型性能的初步評估。我們還計算困惑度作為損失值的指數。關于損失函數的更多信息可以在這些資源中找到:1,2,3,4,5,6。

      在我們的食譜中,我們在微調期間使用了一個簡單的保留。使用記錄的損失值,對于訓練和驗證數據集,繪制兩者的曲線來分析過程的結果。根據配方中的設置,預期的行為是一個日志圖,顯示隨著進程的進行,訓練和驗證損失值逐漸減小。


      如果驗證曲線開始上升,而訓練曲線繼續下降,那么模型就過擬合了,它的泛化能力不強。當這種情況發生時,可以嘗試的替代方案有早停、驗證數據集是否是訓練數據集的統計顯著等價物、數據增強、使用參數高效的微調或使用k折交叉驗證來更好地調整超參數。


      定性技術

      手動測試

      手動評估一個微調過的模型會根據FT目標和可用資源的不同而變化。在這里,我們提供了如何完成它的一般指導原則。

      有了一個為微調準備的數據集,其中的一部分可以被分離出來作為一個手動測試子集,這個子集可以通過可能與特定用例相關的一般知識問題進一步增加。除了這些一般問題,我們還建議執行標準評估,并將結果與微調模型的基線進行比較。

      為了評估結果,應該定義一個與所使用的數據集相關的明確的評估標準。示例標準可以是準確性、一致性和安全性。為每個標準創建一個評分標準,定義輸出獲得特定分數所需的條件。

      有了這些指導原則,將測試問題分發給一組多樣化的審查者,以便為每個問題獲得多個數據點。有了每個問題的多個數據點和不同的標準,可以為每個查詢計算出一個最終分數,允許根據最終模型的首選焦點對分數進行加權。

      集成指南Code Llama

      CodeLlama https://about.fb.com/news/2023/08/code-llama-ai-for-coding/ 是基于Llama 2的開源LLMs家族,提供了在代碼任務上的SOTA性能。它包括:

      ?基礎模型(Code Llama)

      ?Python專業化(Code Llama - Python),以及

      ?指令跟隨模型(Code Llama - Instruct)有7B、13B和34B參數的每個模型。


      微調的不同階段用在訓練過程中看到的令牌數量進行注釋。

      嘗試和集成Code Llama的最好方式之一是使用Hugging Face生態系統,按照博客(https://huggingface.co/blog/codellama),其中包括:

      ?Code Llama 13B、13B-Instruct(聊天)和34B的演示鏈接。

      ?用于代碼完成的工作推理代碼

      ?用于在代碼前綴和后綴之間填充代碼的工作推理代碼

      ?用于在消費者GPU上加載32B模型的4位工作推理代碼

      ?關于如何為指令模型編寫提示以進行多輪編碼對話的指南

      ?關于如何使用文本生成推理進行模型部署的指南

      ?關于如何將代碼自動完成作為VSCode擴展集成的指南

      ?關于如何評估Code Llama模型的指南

      如果模型在你的特定任務上表現不佳,例如,如果Code Llama的所有模型(7B/13B/34B)都不能為文本到SQL的任務生成正確的答案,那么應該考慮微調。這是一個完整的指南和筆記本

      https://github.com/samlhuillier/code-llama-fine-tune-notebook/blob/main/fine-tune-code-llama.ipynb,介紹如何使用Hugging Face上的7B模型微調Code Llama。

      它使用LoRA微調方法,并可以在單個GPU上運行。如Code Llama參考資料

      https://www.snowflake.com/blog/meta-code-llama-testing/ 所示,微調提高了Code Llama在SQL代碼生成上的性能,而且對于LLMs能夠與結構化數據和SQL(訪問結構化數據的主要方式)進行互操作是至關重要的——我們正在開發LangChain和RAG中的Llama 2演示應用來展示這一點。

      LangChain

      LangChain(https://www.langchain.com/)是一個用于構建LLM驅動應用的開源框架。它實現了常見的抽象和高級API,使得應用構建過程更加簡單,所以你不需要從頭開始調用LLM。LangChain的主要構建塊/API是:



      模型或LLMs API可以輕松連接到所有流行的LLMs,如Hugging Face或Replicate,這些平臺上托管了所有類型的Llama 2模型。

      ?Prompts API實現了有用的提示模板抽象,幫助您在構建復雜的LLM應用時輕松重用好的、通常長且詳細的提示。還有許多內置的提示用于常見操作,如摘要或連接到SQL數據庫以快速開發應用。提示還可以與解析器緊密合作,輕松從LLM輸出中提取有用的信息。

      ?Memory API可以用來保存對話歷史,并將其與新問題一起提供給LLM,從而實現多輪自然對話聊天。

      ?Chains API包括最基本的LLMChain,它將LLM與提示結合生成輸出,以及更高級的鏈,讓您以系統化的方式構建復雜的LLM應用。例如,第一個LLM鏈的輸出可以是另一個鏈的輸入/提示,或者一個鏈可以有多個輸入和/或多個輸出,這些都可以由提示的LLM輸出預定義或動態決定。

      ?Indexes API允許將LLM外部的文檔保存下來,首先將其轉換為嵌入,這是文檔的數值意義表示,以向量形式存儲到向量存儲中。后來,當用戶輸入關于文檔的問題時,文檔的向量存儲中存儲的相關數據將被檢索并發送,與查詢一起,到LLM生成與文檔相關的答案。以下流程顯示了該過程:


      ?Agents API使用LLM作為推理引擎,并將其與其他數據源、第三方或自有工具、或API(如網絡搜索或維基百科API)連接起來。根據用戶的輸入,代理可以決定調用哪個工具來處理輸入。

      LangChain可以作為一個強大的檢索增強生成(RAG)工具,將內部數據或更近期的公共數據與LLM集成,進行QA或聊天。LangChain已經支持加載許多類型的非結構化和結構化數據。

      要了解更多關于LangChain的信息,可以免費注冊兩個LangChain短期課程,網址為https://www.deeplearning.ai/short-courses。請注意,課程中的代碼使用的是OpenAI ChatGPT LLM,但我們將發布使用LangChain和Llama 2的演示應用。

      已經有一個筆記本,于Meta Connect 2023公開發布,公開可用:

      https://github.com/facebookresearch/llama-recipes/blob/main/examples/Getting_to_know_Llama.ipynb

      LlamaIndex

      LlamaIndex是另一個用于構建LLM應用的流行開源框架。像LangChain一樣,LlamaIndex也可以通過輕松集成非內置在LLM中的數據來構建RAG應用。LlamaIndex有三個關鍵工具:

      ?連接數據:將任何類型的數據 - 結構化、非結構化或半結構化 - 連接到LLM

      ?索引數據:索引和存儲數據

      ?查詢LLM:將用戶查詢和檢索的與查詢相關的數據結合起來查詢LLM并返回數據增強的答案

      返回數據增強的答案

      LlamaIndex主要是一個用于將私有或領域特定數據與LLMs連接的數據框架,因此它專注于智能數據存儲和檢索,而LangChain是一個更通用的框架,可以用來構建連接多個工具的代理。也可以將LangChain與LlamaIndex一起使用。此外,這兩個框架和現在的VC-based創業公司都在快速發展,所以新的或改進的功能不斷被添加以克服其限制 - 例如,最近在LlamaIndex中添加了數據代理,而LangChain已經支持了數十種數據加載器。

      我們將很快發布使用LangChina和LlamaIndex與Llama 2的開源演示應用。

      社區支持和資源
      社區支持

      如果您有任何功能請求、建議、錯誤報告,我們鼓勵您在相應的github倉庫中報告問題。如果您正在與Meta合作開發Llama 2,請請求訪問Asana并使用Asana報告任何問題。

      資源Github

      ?Llama2倉庫

      https://github.com/facebookresearch/llama:主要的Llama2倉庫

      ?Llama2食譜

      https://github.com/facebookresearch/llama-recipes:示例和微調

      ?代碼Llama倉庫

      https://github.com/facebookresearch/codellama:主要的代碼Llama倉庫

      ?了解Llama2

      https://github.com/facebookresearch/llama-recipes/blob/main/examples/Getting_to_know_Llama.ipynb - Jupyter筆記本

      ?代碼Llama食譜

      https://github.com/facebookresearch/llama-recipes/tree/main/examples/code_llama:示例

      性能和延遲

      ?哈梅爾的博客 - 優化和測試LLMs的延遲

      https://hamel.dev/notes/llm/inference/03_inference.html

      ?vLLM - 如何通過連續批處理在LLM推理中實現23倍的吞吐量同時降低p50延遲

      https://www.anyscale.com/blog/continuous-batching-llm-inference

      ?論文 - 通過提示工程改善壓縮LLMs的性能

      https://arxiv.org/pdf/2305.11186.pdf

      ?Llama2與GPT 4的文本摘要成本比較

      https://www.anyscale.com/blog/llama-2-is-about-as-factually-accurate-as-gpt-4-for-summaries-and-is-30x-cheaper

      微調

      ?Hugging Face PEFT

      https://github.com/huggingface/peft

      ?Llama食譜微調

      https://github.com/facebookresearch/llama-recipes/blob/main/docs/LLM_finetuning.md

      ?微調數據集

      https://github.com/facebookresearch/llama-recipes/blob/main/docs/Dataset.md

      ?GPT 3.5與Llama2微調

      https://ragntune.com/blog/gpt3.5-vs-llama2-finetuning

      ?https://deci.ai/blog/fine-tune-llama-2-with-lora-for-question-answering/

      ?https://www.databricks.com/blog/efficient-fine-tuning-lora-guide-llms

      Code Llama

      ?https://www.snowflake.com/blog/meta-code-llama-testing/

      ?https://www.phind.com/blog/code-llama-beats-gpt4

      ?https://news.ycombinator.com/item?id=37248494

      其他

      ?Hugging Face上的Llama

      https://huggingface.co/meta-llama

      ?為生產構建LLM應用

      https://huyenchip.com/2023/04/11/llm-engineering.html

      ?提示技巧 https://www.promptingguide.ai/

      特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。

      Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

      相關推薦
      熱點推薦
      巴拿馬總統強硬回應中方警告,外媒:中國或暫停與巴方全部協議

      巴拿馬總統強硬回應中方警告,外媒:中國或暫停與巴方全部協議

      頭條爆料007
      2026-02-05 18:45:01
      女子用20g黃金打造新年美甲,稱用自己穿戴甲定做的,最新回應:是真金,過年就要裝一把

      女子用20g黃金打造新年美甲,稱用自己穿戴甲定做的,最新回應:是真金,過年就要裝一把

      揚子晚報
      2026-02-04 22:40:57
      慘烈!網傳某新能源汽車起火,路人救出3人,1人未能救出全程慘叫

      慘烈!網傳某新能源汽車起火,路人救出3人,1人未能救出全程慘叫

      烏娛子醬
      2026-02-05 14:09:29
      賈躍亭發布人形機器人,全尺寸職業型具身智能人形機器人定價34990美元起

      賈躍亭發布人形機器人,全尺寸職業型具身智能人形機器人定價34990美元起

      大風新聞
      2026-02-05 11:36:46
      極目調查|“少年私賣長輩22克金鐲”風波:交易時金店未聯系家長,孩子留的是假身份證號,雙方起沖突后孩子外婆已被行拘

      極目調查|“少年私賣長輩22克金鐲”風波:交易時金店未聯系家長,孩子留的是假身份證號,雙方起沖突后孩子外婆已被行拘

      極目新聞
      2026-02-05 08:14:17
      美國罕見服軟,希望中方能給個“體面”,我國防部一句話亮明態度

      美國罕見服軟,希望中方能給個“體面”,我國防部一句話亮明態度

      空天力量
      2026-02-05 13:06:52
      蘿莉島文件再公開!背后更可怕的,是每年50萬“消失的孩子”

      蘿莉島文件再公開!背后更可怕的,是每年50萬“消失的孩子”

      秋楓凋零
      2026-02-04 21:04:24
      7個省級政府領導班子調整

      7個省級政府領導班子調整

      上觀新聞
      2026-02-05 12:39:09
      中國高凈值人群:家庭資產6100萬,66%的人不考慮移民,主要買美股

      中國高凈值人群:家庭資產6100萬,66%的人不考慮移民,主要買美股

      六子吃涼粉
      2026-02-05 14:23:50
      2026央視春晚第三次聯排!近十年最強陣容,網友直呼廁所都不敢上

      2026央視春晚第三次聯排!近十年最強陣容,網友直呼廁所都不敢上

      派大星紀錄片
      2026-02-05 16:33:38
      “出差遭老板性侵”當事人崔麗麗發視頻:將對網暴者發起刑事自訴,并稱“自己從未進行任何直播帶貨”;此前其傷殘十級鑒定結論生效

      “出差遭老板性侵”當事人崔麗麗發視頻:將對網暴者發起刑事自訴,并稱“自己從未進行任何直播帶貨”;此前其傷殘十級鑒定結論生效

      揚子晚報
      2026-02-05 14:48:01
      科學家立大功!成功研發全球首款超高密度固態電池,續航翻4倍

      科學家立大功!成功研發全球首款超高密度固態電池,續航翻4倍

      胖福的小木屋
      2026-02-04 11:42:49
      這些冷門城市,竟是最具幸福感的地方?

      這些冷門城市,竟是最具幸福感的地方?

      大象新聞
      2026-02-05 19:21:08
      讀懂情緒,才能講清道理:2025企業公關的進化之路

      讀懂情緒,才能講清道理:2025企業公關的進化之路

      豹變
      2026-02-05 08:00:03
      孫準浩為何沒被全球禁足?FIFA認定中國足協證據不足+程序不正當

      孫準浩為何沒被全球禁足?FIFA認定中國足協證據不足+程序不正當

      念洲
      2026-02-05 19:44:22
      5-4!斯諾克8強誕生4席:冠軍名將逆轉絕殺!趙心童連續3輪遇強敵

      5-4!斯諾克8強誕生4席:冠軍名將逆轉絕殺!趙心童連續3輪遇強敵

      球場沒跑道
      2026-02-05 17:19:59
      1-0爆大冷!就在今天晚上,U19國足掀翻亞洲冠軍,進世界杯在望

      1-0爆大冷!就在今天晚上,U19國足掀翻亞洲冠軍,進世界杯在望

      侃球熊弟
      2026-02-05 18:35:37
      股價飆升!爆賺近10倍,英皇娛樂酒店賣出79公斤黃金,原本放在大堂

      股價飆升!爆賺近10倍,英皇娛樂酒店賣出79公斤黃金,原本放在大堂

      證券時報e公司
      2026-02-05 12:19:46
      太諷刺了!具俊曄為大S守墓一年原因曝光,帶韓國攝制組拍成綜藝

      太諷刺了!具俊曄為大S守墓一年原因曝光,帶韓國攝制組拍成綜藝

      烏娛子醬
      2026-02-05 16:13:46
      俄鉀肥巨頭前CEO確認身亡,遺體在塞浦路斯英軍基地海灘被發現

      俄鉀肥巨頭前CEO確認身亡,遺體在塞浦路斯英軍基地海灘被發現

      紅星新聞
      2026-02-05 18:37:26
      2026-02-05 21:56:49
      Web3天空之城 incentive-icons
      Web3天空之城
      美好,有趣的,值得銘記的
      106文章數 92關注度
      往期回顧 全部

      科技要聞

      美團7.17億元收購叮咚買菜

      頭條要聞

      多家醫美機構可"造腹肌" 有人花7萬元打了83支玻尿酸

      頭條要聞

      多家醫美機構可"造腹肌" 有人花7萬元打了83支玻尿酸

      體育要聞

      奇才:我學生……獨行俠:成交!

      娛樂要聞

      微博之夜卷入座位風波!楊冪超話淪陷

      財經要聞

      中美"只會有好消息" 經濟冷暖看房價

      汽車要聞

      李想為全新L9預熱 all in AI造更好的車

      態度原創

      教育
      游戲
      親子
      手機
      公開課

      教育要聞

      高考地理中的過渡性思維+尺度思想,太重要了

      PS官號下場吃瓜?《絕地潛兵》發布神秘代碼引熱議

      親子要聞

      萌娃向爸爸告狀:媽媽欺負我,我現在急需一個冰激凌安慰

      手機要聞

      為什么iQOO 15 Ultra會引起熱議?對比完iQOO 15,原因很真實

      公開課

      李玫瑾:為什么性格比能力更重要?

      無障礙瀏覽 進入關懷版