AI Personal Learning
und praktische Anleitung
Sitzsack Marscode1

DeepCoder-14B-Preview: ein Open-Source-Modell, das sich bei der Codegenerierung auszeichnet

Allgemeine Einführung

DeepCoder-14B-Preview ist ein quelloffenes Codegenerierungsmodell, das vom Agentica-Team entwickelt und auf der Hugging Face-Plattform veröffentlicht wurde. Es basiert auf DeepSeek-R1-Distilled-Qwen-14B, optimiert durch Distributed Reinforcement Learning (RL)-Techniken, und kann bis zu 64K Token von sehr langen Kontexten. Das Modell hat 14 Milliarden Parameter und erreichte bei LiveCodeBench v5-Tests (1. August 2024 bis 1. Februar 2025) eine Pass@1-Genauigkeit von 60,6%, eine Verbesserung von 8% gegenüber dem Basismodell und eine Leistung, die nahe an die von OpenAIs o3-mini heranreicht. es ist vollständig quelloffen, einschließlich der Modellgewichte, Trainingsdaten und Skripte. Das Ziel von DeepCoder ist es, Entwicklern zu helfen, komplexen Code effizient zu schreiben, insbesondere für Programmierwettbewerbe und Großprojekte.

DeepCoder-14B-Preview: ein Open-Source-Modell, das sich bei der Codegenerierung auszeichnet-1


 

Funktionsliste

  • Generierung von langem Code: unterstützt Kontexte mit bis zu 64K Token und kann sehr langen Code generieren und verarbeiten.
  • Hochpräzise Ausgabe: 60,6% Pass@1 in LiveCodeBench v5 für zuverlässige Codequalität.
  • Open Source: Modelldateien, Datensätze und Trainingsskripte stehen zum kostenlosen Download und zur Anpassung zur Verfügung.
  • Unterstützt eine breite Palette von Programmieraufgaben: geeignet für die Beantwortung von Wettbewerbsfragen, Code-Debugging und Projektentwicklung.
  • Langes kontextuelles Reasoning: optimiert durch GRPO+ und DAPO-Techniken, um lange Code-Generierungsfähigkeiten zu gewährleisten.

 

Hilfe verwenden

DeepCoder-14B-Preview ist ein leistungsfähiges Tool, das Ihnen bei der Codegenerierung und der Bewältigung komplexer Programmieraufgaben helfen kann. Im Folgenden finden Sie eine detaillierte Installations- und Nutzungsanleitung.

Einbauverfahren

Um DeepCoder-14B-Preview lokal zu verwenden, müssen Sie die Umgebung vorbereiten und das Modell herunterladen. Die Schritte sind wie folgt:

  1. Vorbereiten von Hardware und Software
    • Ein Computer mit einem Grafikprozessor ist erforderlich, empfohlen wird eine NVIDIA H100 oder eine Grafikkarte mit mindestens 24 GB RAM.
    • Installation von Python 3.10: Ausführen conda create -n deepcoder python=3.10 -yAktivieren Sie dann die Umgebung conda activate deepcoder.
    • Abhängige Bibliotheken installieren: run pip install transformers torch huggingface_hub vllm.
  2. Modelle herunterladen
    • Besuchen Sie die offizielle Seite unter https://huggingface.co/agentica-org/DeepCoder-14B-Preview.
    • Unter "Dateien und Versionen" finden Sie die Modelldateien (z.B. model-00001-of-00012.safetensors).
    • Verwenden Sie den Befehl download:
      huggingface-cli download agentica-org/DeepCoder-14B-Preview --local-dir ./DeepCoder-14B
      
    • Nach dem Herunterladen werden die Modelldateien lokal gespeichert ./DeepCoder-14B Mappe.
  3. Modelle laden
    • Laden Sie das Modell in Python:
      from transformers import AutoModelForCausalLM, AutoTokenizer
      model_path = "./DeepCoder-14B"
      model = AutoModelForCausalLM.from_pretrained(model_path, torch_dtype="auto", device_map="auto")
      tokenizer = AutoTokenizer.from_pretrained(model_path)
      
    • Dadurch wird das Modell auf den Grafikprozessor geladen und kann verwendet werden.

Verwendung der wichtigsten Funktionen

Das Herzstück von DeepCoder ist die Erzeugung von Code und der Umgang mit langen Kontexten. So funktioniert es:

Code generieren

  1. Anforderungen an die Eingabeprogrammierung
    • Bereiten Sie eine Aufgabe vor, z. B. "Schreiben Sie eine Python-Funktion, die den größten Wert in einem Array findet".
    • Anforderungen in Text umwandeln:
      prompt = "写一个 Python 函数,找出数组中的最大值"
      
  2. Code generieren
    • Verwenden Sie den folgenden Code, um die Antwort zu generieren:
      inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
      outputs = model.generate(**inputs, max_new_tokens=512, temperature=0.6, top_p=0.95)
      result = tokenizer.decode(outputs[0], skip_special_tokens=True)
      print(result)
      
    • Mögliche Ausgaben:
      def find_max(arr):
      if not arr:
      return None
      max_value = arr[0]
      for num in arr:
      if num > max_value:
      max_value = num
      return max_value
      
  3. Optimierte Erzeugung
    • Wenn ein längerer Code erforderlich ist, passen Sie die max_new_tokens 1024 oder höher ist.
    • aufstellen max_tokens=64000 Es wird eine optimale Leistung im langen Kontext erreicht.

Umgang mit langen Kontexten

  1. Geben Sie den langen Code ein
    • Angenommen, Sie haben einen Code, der 32K Token lang ist, und Sie möchten, dass das Modell ihn erneuert:
      long_code = "def process_data(data):\n    # 几千行代码...\n    return processed_data"
      prompt = long_code + "\n请为这个函数添加异常处理"
      
  2. Erzeugen einer Fortsetzung
    • Eingeben und erzeugen:
      inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
      outputs = model.generate(**inputs, max_new_tokens=512, temperature=0.6, top_p=0.95)
      result = tokenizer.decode(outputs[0], skip_special_tokens=True)
      print(result)
      
    • Die Ausgabe kann sein:
      def process_data(data):
      try:
      # 几千行代码...
      return processed_data
      except Exception as e:
      print(f"错误: {e}")
      return None
      
  3. Ergebnisse der Überprüfung
    • Prüfen Sie, ob der Code die Anforderungen erfüllt. Ist dies nicht der Fall, beschreiben Sie die Anforderungen deutlicher.

Ausgewählte Funktionen Bedienung Ablauf

Das Highlight von DeepCoder ist seine Fähigkeit zur Erzeugung von langem Code, die es für Wettbewerbe und große Projekte geeignet macht.

Lösen von Wettbewerben

  1. Titel erhalten
    • Suchen Sie ein Thema aus Codeforces, z. B. "Geben Sie bei einem Array alle möglichen Teilmengen zurück".
    • Geben Sie eine Beschreibung des Themas ein:
      prompt = "给定一个数组,返回所有可能的子集。例如,输入 [1,2,3],输出 [[],[1],[2],[3],[1,2],[1,3],[2,3],[1,2,3]]"
      
  2. Code generieren
    • Führen Sie den Befehl generate aus:
      inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
      outputs = model.generate(**inputs, max_new_tokens=512, temperature=0.6, top_p=0.95)
      result = tokenizer.decode(outputs[0], skip_special_tokens=True)
      print(result)
      
    • Die Ausgabe kann sein:
      def subsets(nums):
      result = [[]]
      for num in nums:
      result += [curr + [num] for curr in result]
      return result
      
  3. Testergebnisse
    • Um den Code in Python auszuführen, geben Sie [1,2,3]Prüfen Sie, ob die Ausgabe korrekt ist.

Debugging-Code

  1. Geben Sie den Fragecode ein
    • Angenommen, es gibt ein Stück fehlerhaften Code:
      buggy_code = "def sum_numbers(n):\n    total = 0\n    for i in range(n)\n        total += i\n    return total"
      prompt = buggy_code + "\n这段代码有语法错误,请修复"
      
  2. Korrekturen generieren
    • Eingeben und erzeugen:
      inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
      outputs = model.generate(**inputs, max_new_tokens=512, temperature=0.6, top_p=0.95)
      result = tokenizer.decode(outputs[0], skip_special_tokens=True)
      print(result)
      
    • Die Ausgabe kann sein:
      def sum_numbers(n):
      total = 0
      for i in range(n):
      total += i
      return total
      
  3. Korrekturen der Verifizierung
    • Überprüfen Sie die Syntax auf ihre Richtigkeit und führen Sie den Code aus, um das Ergebnis zu bestätigen.

Empfehlungen für die Verwendung

  • Fügen Sie keine Systemabfrage hinzu, sondern geben Sie die Anforderung direkt in der Benutzerabfrage an.
  • aufstellen temperature=0.6 im Gesang antworten top_p=0.95 für optimale Ergebnisse.
  • Oberbefehlshaber (Militär) max_tokens Setzen Sie den Wert auf 64000, um die Vorteile langer Kontexte zu nutzen.

 

Anwendungsszenario

  1. Programmierwettbewerb
    DeepCoder generiert schnell Antworten auf Wettbewerbsfragen und ist für komplexe Aufgaben in LiveCodeBench oder Codeforces geeignet.
  2. Entwicklung groß angelegter Projekte
    Es kann lange Codemodule generieren, um Entwickler bei der Fertigstellung großer Projekte zu unterstützen.
  3. Bildung und Lernen
    Die Schüler können damit Beispielcode generieren, Algorithmen lernen oder Aufgaben debuggen.

 

QA

  1. Ist DeepCoder-14B-Preview kostenlos?
    Ja, es ist MIT-lizenziert, vollständig quelloffen und für jeden frei nutzbar.
  2. Welche Hardware ist für den Betrieb erforderlich?
    Es wird empfohlen, einen Computer mit einem Grafikprozessor und mindestens 24 GB Videospeicher zu verwenden. Wenn Sie eine CPU verwenden, wird es viel langsamer sein.
  3. Welche Programmiersprachen unterstützt es?
    Es ist hauptsächlich auf Python spezialisiert, kann aber auch Code in Java, C++ und anderen Sprachen generieren, je nachdem, wie klar die Eingabeaufforderung ist.
Darf nicht ohne Genehmigung vervielfältigt werden:Leiter des AI-Austauschkreises " DeepCoder-14B-Preview: ein Open-Source-Modell, das sich bei der Codegenerierung auszeichnet
de_DEDeutsch